onvibe.run

← All docs

Deploy Flow

The only way to deploy is: stage files first, then call deploy.

Normal flow

stage_files("my-app", [file1, file2, ..., file12])
→ "Staged 12 file(s). Total staged for 'my-app': 12 file(s)."

stage_files("my-app", [file13, ..., file24])   ← split into chunks if needed
→ "Staged 12 file(s). Total staged for 'my-app': 24 file(s)."

deploy("my-app")
→ deploys all staged files, returns live_url

For small edits to existing files, use edit_file instead:

edit_file({ project_id: "my-app", path: "main.ts", old_string: "...", new_string: "..." })
deploy("my-app")   ← no files needed; applies the staged edit

Uploading files from disk (token-efficient)

If the files already exist on disk, you can stage them over HTTP instead of passing their contents through the MCP protocol — this saves tokens, especially for many or large files:

POST https://onvibe.run/api/projects/{project_id}/stage
Authorization: Bearer <api_key>     ← create one with create_api_key
Content-Type: multipart/form-data   ← one form field per file, field name = file path

curl -X POST "https://onvibe.run/api/projects/my-app/stage" \
  -H "Authorization: Bearer onv_..." \
  -F "main.ts=@./main.ts" \
  -F "static/icon-192.png=@./icon-192.png" \
  -F "static/favicon.ico=@./favicon.ico"
→ {"staged": 3, "total": 3}

deploy("my-app")

Rules

Checking staged files

Use list_project_files("my-app") to see paths and sizes, then read_project_files("my-app", ["main.ts"]) to read specific files.

Read this page as Markdown (best for LLMs) · plain text
onvibe.run · home · all docs