VibeKit
Deploy an app in one API call, then keep it running and improving. Every app gets its own container at <subdomain>.vibekit.bot and a persistent AI agent that knows the codebase: it edits code, reads logs, runs QA, and ships changes on request, on a webhook, or on a schedule.
Built for developers and AI coding agents. Postgres, custom domains, transactional email, and Stripe payments are included. Use the REST API below, the CLI, or MCP.
Quick Start for Agents
Step 0: Get an API key (no account needed)
Create an API key instantly. No signup or email required:
curl -X POST https://vibekit.bot/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{}'
# Response: {"apiKey": "vk_xxx", "plan": "free", "credits": 0}
Or with email (unlocks $1.00 free credits):
curl -X POST https://vibekit.bot/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
# Response: {"apiKey": "vk_xxx", "plan": "free", "credits": 1.00}
Call register ONCE, then reuse the returned apiKey for every later call. Each call to /auth/register creates a brand-new empty account. Do not call it again to "refresh" or "retry"; save the key and reuse it. Ask for email only if the user wants free credits. Do NOT ask users whether they already have a key: register once and go.
Deploy in four API calls:
1. Deploy your code:
curl -X POST https://vibekit.bot/api/v1/hosting/deploy \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"repo": "owner/repo", "subdomain": "my-app"}'
# Returns: {"deployUrl": "https://my-app.vibekit.bot", "appId": "app_xyz"}
Runtime contract: your server MUST listen on
process.env.PORTand bind0.0.0.0. The container injectsPORT(andDATABASE_URLif you add a database). An app that hardcodes a port (e.g.listen(3000)) or binds127.0.0.1will fail the health check and show status: error even though the deploy "succeeded".
- Node:
app.listen(process.env.PORT || 3000, '0.0.0.0')- Static site: include an
index.htmlat the repo root and it is served automatically, no server needed.- A
buildscript inpackage.jsonruns automatically before start.
2. Iterate via AI agent:
curl -X POST https://vibekit.bot/api/v1/hosting/app/app_xyz/agent \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"message": "Add dark mode and fix mobile layout"}'
# Returns: {"response": "Added dark mode toggle...", "balance": "0.15"}
3. Add database if needed:
curl -X POST https://vibekit.bot/api/v1/hosting/app/app_xyz/database \
-H "Authorization: Bearer vk_xxx"
# Returns: {"success": true, "schema": "app_8b0eb119"}
# DATABASE_URL auto-injected on next deploy
4. Connect the user's email (recommended): After deploying, ask the user for their email so they can manage their app in the dashboard and unlock $1.00 free credits:
curl -X POST https://vibekit.bot/api/v1/auth/connect-email \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
Then share the claim link so the user can access their dashboard: "Your app is live at https://{subdomain}.vibekit.bot. Claim it at https://app.vibekit.bot/claim?key={api_key}"
Code to production in four API calls.
CLI (for agents with shell access)
Install once, deploy anywhere:
npm install -g vibekit-cli
vibekit auth $VIBEKIT_API_KEY
vibekit task "Deploy this Next.js app" --repo owner/repo
vibekit wait $TASK_ID --json
Interactive auth is also available:
vibekit auth login anthropic
vibekit auth login openai
vibekit auth status
Bring Your Own Key (BYOK)
Connect your own Anthropic or OpenAI key and pay your AI provider directly; VibeKit takes no markup on inference. See the Claude BYOK / OpenAI BYOK guide for OAuth options (Claude Pro / Max, ChatGPT Plus via Codex) and the platform-fallback path through OpenRouter.
Set your key via /account/claude-key or /account/openai-key, or pass it inline on any agent call:
{
"message": "Add user authentication",
"anthropicApiKey": "sk-ant-api03-xxx"
}
Switch providers anytime via /account/preferred-provider.
Deploy & Hosting
Register & Authentication
POST /auth/register Create account (no auth required). Email is optional: without email you get $0 credits, with email you get $1.00 free.
curl -X POST https://vibekit.bot/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{}'
# Response: {"apiKey": "vk_xxx", "plan": "free", "credits": 0}
# With email (unlocks $1.00 free credits):
curl -X POST https://vibekit.bot/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
# Response: {"apiKey": "vk_xxx", "plan": "free", "credits": 1.00}
POST /auth/connect-email (auth required) Connect email to an anonymous account and unlock $1.00 free credits.
curl -X POST https://vibekit.bot/api/v1/auth/connect-email \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
# Response: {"success": true, "credits": 1.00}
Deploy Apps
POST /hosting/deploy Deploy app to {subdomain}.vibekit.bot
Reserved subdomains (cannot be used): app, www, api, docs, admin, mail, smtp, ftp, ssh, ns1, ns2, cdn, static, staging, dev, test
curl -X POST https://vibekit.bot/api/v1/hosting/deploy \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"repo": "owner/repo", "subdomain": "my-app", "branch": "main"}'
POST /hosting/apps Create app from template
curl -X POST https://vibekit.bot/api/v1/hosting/apps \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"template": "nextjs", "subdomain": "my-app"}'
GET /hosting/apps List your hosted apps
curl https://vibekit.bot/api/v1/hosting/apps \
-H "Authorization: Bearer vk_xxx"
App Management
Control & Monitoring
GET /hosting/app/:id App details + stats + topology
GET /hosting/app/:id/logs Container logs (add ?lines=100)
POST /hosting/app/:id/restart Restart container
POST /hosting/app/:id/redeploy Rebuild and redeploy from GitHub
POST /hosting/app/:id/resize Resize memory
curl -X POST https://vibekit.bot/api/v1/hosting/app/app_xyz/resize \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"memoryLimit": 512}'
DELETE /hosting/app/:id Delete app + container + agent
Environment Variables
GET /hosting/app/:id/env List environment variables
PUT /hosting/app/:id/env Set environment variables
curl -X PUT https://vibekit.bot/api/v1/hosting/app/app_xyz/env \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"vars": {"DATABASE_URL": "postgres://...", "STRIPE_KEY": "sk_..."}}'
DELETE /hosting/app/:id/env/:key Remove environment variable
Monitoring & Events
GET /hosting/app/:id/events Activity event log (add ?limit=50)
GET /hosting/app/:id/stats Container CPU/memory/network stats
GET /hosting/app/:id/events/stream SSE stream of real-time events
AI Agent (per app)
Every app has a persistent coding agent with full context on its codebase. Use it to iterate, debug, and operate the app after deploy.
Chat with Agent
POST /hosting/app/:id/agent Send message to agent
curl -X POST https://vibekit.bot/api/v1/hosting/app/app_xyz/agent \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"message": "Add user authentication with GitHub OAuth"}'
GET /hosting/app/:id/agent/history Chat history (add ?limit=50)
GET /hosting/app/:id/agent/activity Agent status (idle/working)
Agent Management
PUT /hosting/app/:id/agent/model
Change AI model. Format is provider/model (short names like "sonnet" are rejected). See GET /models for the available list.
curl -X PUT https://vibekit.bot/api/v1/hosting/app/app_xyz/agent/model \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"model": "anthropic/claude-opus-4-6"}'
POST /hosting/app/:id/agent/restart Restart agent gateway
POST /hosting/app/:id/agent/reset Full agent reset (new session)
GET /hosting/app/:id/agent/status Full agent status (context, model, app info)
File Operations
GET /hosting/app/:id/agent/files List files in agent workspace
GET /hosting/app/:id/agent/file Read file (add ?path=app/index.html)
PUT /hosting/app/:id/agent/file Write file
curl -X PUT https://vibekit.bot/api/v1/hosting/app/app_xyz/agent/file \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"path": "app/config.js", "content": "module.exports = {...}"}'
POST /hosting/app/:id/agent/upload Upload file to workspace (multipart or JSON)
Database
Managed PostgreSQL with an isolated schema per app. DATABASE_URL is injected into the container automatically.
POST /hosting/app/:id/database Enable database
curl -X POST https://vibekit.bot/api/v1/hosting/app/app_xyz/database \
-H "Authorization: Bearer vk_xxx"
# Response: {"success": true, "schema": "app_8b0eb119"}
# DATABASE_URL auto-injected on next deploy
GET /hosting/app/:id/database Database stats (tables, storage, connections)
GET /hosting/app/:id/database/export Download SQL dump
DELETE /hosting/app/:id/database Remove database (destructive)
Domains & SSL
POST /hosting/app/:id/domain Add custom domain
POST /hosting/app/:id/domain/buy Buy a domain and attach it to the app
DELETE /hosting/app/:id/domain Remove domain
POST /hosting/app/:id/domain/ssl Provision SSL certificate
GET /hosting/domains/search Search available domains (add ?q=myapp)
Webhooks
Connect external services to trigger your app's AI agent automatically.
POST /hosting/app/:id/webhooks Create webhook
curl -X POST https://vibekit.bot/api/v1/hosting/app/app_xyz/webhooks \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{
"slug": "github-issues",
"prompt_template": "GitHub issue opened:\n{{payload}}\nAnalyze and fix if possible.",
"filters": {"action": "opened"}
}'
# Response: {"hook_token": "abc123", "url": "https://vibekit.bot/hook/abc123"}
POST /hook/:hookToken Trigger webhook (external services POST here)
GET /hosting/app/:id/webhooks List webhooks
GET /hosting/app/:id/webhooks/:whId/triggers Recent trigger log
QA Testing
AI-powered testing with browser automation and annotated screenshots.
POST /hosting/app/:id/qa Start QA test run
GET /hosting/app/:id/qa Check status + get results
GET /hosting/app/:id/qa/history Past QA runs with summaries
Worktrees
Git branch isolation for safe development.
POST /hosting/app/:id/worktree/create Create worktree
curl -X POST https://vibekit.bot/api/v1/hosting/app/app_xyz/worktree/create \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"taskId": "fix-auth"}'
POST /hosting/app/:id/worktree/merge Merge worktree back to main
GET /hosting/app/:id/worktrees List active worktrees
Auth & Account
Account Management
GET /account Plan, credits, usage, API key status
GET /account/usage Credit usage history with daily breakdown
POST /checkout Stripe checkout URL
curl -X POST https://vibekit.bot/api/v1/checkout \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"product": "pro"}'
AI Provider Keys (BYOK)
PUT /account/claude-key Save Anthropic key
curl -X PUT https://vibekit.bot/api/v1/account/claude-key \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"claudeKey": "sk-ant-api03-xxx"}'
PUT /account/openai-key Save OpenAI key
PUT /account/preferred-provider Switch provider
curl -X PUT https://vibekit.bot/api/v1/account/preferred-provider \
-H "Authorization: Bearer vk_xxx" \
-H "Content-Type: application/json" \
-d '{"provider": "anthropic"}'
Billing
Plans & Pricing
| Plan | Price | Sessions/mo | Apps | Memory | Workspace disk | Custom domains | Overage |
|---|---|---|---|---|---|---|---|
| Free | $0 | 10 | 1 | 512MB | 1.5GB | — | $0.50/session |
| Builder | $19.99/mo | 50 | 3 | 512MB | 3GB | 1 | $0.35/session |
| Pro | $49.99/mo | 200 | 10 | 1GB | 10GB | Unlimited | $0.25/session |
BYOK = $0 AI cost + unlimited sessions. Bring your own Anthropic or OpenAI key and you pay your provider directly. VibeKit takes no markup on inference, and BYOK turns don't count against your monthly session cap. Platform compute (number of apps, extra memory, and 24/7 always-on containers) is metered separately by the per-plan app limits and the Boost / Always-on add-ons, not by sessions.
Add-ons: Boost (1GB RAM + 0.5 vCPU per app, $8/mo), Always-on (no cold starts per app, $14.99/mo), Database (managed Postgres per app, $3/mo).
Integration Examples
OpenClaw Agent
# In TOOLS.md or skills
- name: vibekit
api: https://vibekit.bot/api/v1
auth: Bearer vk_xxx
MCP (Model Context Protocol)
npm install -g vibekit-mcp
{"mcpServers": {"vibekit": {"command": "vibekit-mcp", "env": {"VIBEKIT_API_KEY": "vk_xxx"}}}}
Direct API
import requests
headers = {"Authorization": "Bearer vk_xxx"}
response = requests.post("https://vibekit.bot/api/v1/hosting/deploy",
json={"repo": "owner/repo"}, headers=headers)
Additional Endpoints
App Management (continued)
POST /hosting/app/:id/rename — Rename subdomain. Body: {"subdomain": "new-name"}
GET /hosting/app/:id/infra — Infrastructure topology (container, agent, DB status)
GET /hosting/app/:id/stats — Container CPU/memory/network stats
GET /hosting/app/:id/deploy-progress — SSE stream of deploy progress
POST /hosting/app/:id/live-reload — Trigger live reload in connected browsers
GET /hosting/app/:id/always-on — Check always-on status + user plan
PUT /hosting/app/:id/always-on — Toggle always-on. Body: {"alwaysOn": true}
POST /hosting/app/:id/always-on/checkout — Stripe checkout for always-on addon ($14.99/mo per app)
GET /hosting/app/:id/notifications/prefs — Get notification preferences
POST /hosting/app/:id/notifications/prefs — Update notification preferences
GET /hosting/app/:id/notifications/read — Get unread count
POST /hosting/app/:id/notifications/read — Mark notifications as read
POST /hosting/app/:id/stop — Stop the container (keeps the app, frees compute)
POST /hosting/app/:id/start — Start a stopped container
GET /hosting/apps/task-status — Poll deploy/create task status for your apps
GET /hosting/app/:id/stats/history — Historical CPU/memory/network time series
POST /hosting/app/:id/deploy-workspace — Deploy the current agent workspace (uncommitted edits) without a GitHub push
GET /hosting/app/:id/deploy-workspace/jobs/:jobId — Status of a workspace-deploy job
GET /hosting/app/:id/pending-changes — Uncommitted / undeployed workspace changes
PUT /hosting/app/:id/repo/visibility — Toggle the app's GitHub repo public/private. Body: {"visibility": "private"}
Deploy History & Rollback
GET /hosting/app/:id/deploys — List deploy history with timestamps, commit info
POST /hosting/app/:id/deploys/:deployId/rollback — Rollback to a specific deploy snapshot (max 10 snapshots per app)
Collaborators
Only the app owner can invite/remove/change roles.
GET /hosting/app/:id/collaborators — List all collaborators
POST /hosting/app/:id/collaborators — Invite. Body: {"email": "...", "role": "editor"}
PATCH /hosting/app/:id/collaborators/:collabId — Change role. Body: {"role": "viewer"}
DELETE /hosting/app/:id/collaborators/:collabId — Remove collaborator
POST /hosting/collaborators/accept — Accept invite. Body: {"token": "..."}
Roles: owner, editor (can use agent, edit files), viewer (read-only)
GET /hosting/shared-apps — List apps shared with you as a collaborator
AI Agent (continued)
POST /hosting/app/:id/agent/upload — Upload file to workspace (multipart file field or JSON {filename, content})
POST /hosting/app/:id/agent/tts — Text-to-speech. Body: {"text": "...", "voice": "alloy"}
GET /hosting/app/:id/agent/character — Get agent character config
PUT /hosting/app/:id/agent/character — Set character. Body: {"species": 1, "palette": 0, "color": "#a78bfa"}
GET /hosting/app/:id/agent/avatar — Get agent avatar (base64)
PUT /hosting/app/:id/agent/avatar — Set agent avatar (base64, max 500KB)
POST /hosting/app/:id/agent/compact — Compact agent context (summarize old history)
POST /hosting/app/:id/agent/clear-memory — Reset agent memory (deletes MEMORY.md and daily logs)
POST /hosting/app/:id/agent/clear-sessions — Clear all session history (preserves memory)
GET /hosting/app/:id/agent/roles — List defined agent roles
PUT /hosting/app/:id/agent/roles/:roleName — Create/update a role
GET /hosting/app/:id/agent/roles/:roleName/history — Role execution history
DELETE /hosting/app/:id/agent/roles/:roleName — Delete role
GET /hosting/app/:id/agent/subagents — List active sub-agents
GET /hosting/app/:id/agent/features — Get automation feature flags
PUT /hosting/app/:id/agent/features — Update features. Body: {"features": {"qaValidation": true}}
Allowed keys: qaValidation, worktrees, autoMerge
GET /hosting/app/:id/agent/config — Get agent config (system prompt, tools, settings)
POST /hosting/app/:id/agent/config — Update agent config
GET /hosting/app/:id/agent/context — Current context-window usage + token breakdown
POST /hosting/app/:id/agent/warmup — Pre-warm the agent gateway (reduce first-message latency)
POST /hosting/app/:id/agent/stop — Interrupt the agent's current turn
DELETE /hosting/app/:id/agent/messages — Delete chat messages
GET /hosting/app/:id/agent/live-activity — Live tool-call / streaming activity
GET /hosting/app/:id/agent/models — Models available to this app's agent
POST /hosting/app/:id/agent/update-openclaw — Update the agent's OpenClaw gateway version
GET /hosting/app/:id/agent/preview — Preview proposed changes before applying
GET /hosting/app/:id/agent/changes — Diff of pending agent file changes
GET /hosting/app/:id/agent/export — Export agent (memory, sessions, config) for transfer
POST /hosting/app/:id/agent/import — Import a previously exported agent into this app
Per-App Usage
GET /hosting/app/:id/usage?days=30 — Token cost tracking by model and day (max 90 days)
Account (continued)
GET /models — List available AI models
PUT /repos/active — Set active repo. Body: {"repo": "owner/name"}
PUT /account/profile — Update display name. Body: {"name": "..."}
PUT /account/avatar — Upload profile avatar (base64)
DELETE /account/avatar — Remove profile avatar
POST /checkout Products: builder ($19.99/mo), pro ($49.99/mo), topup_<dollars> packs (topup_5, topup_10, topup_15, topup_20, topup_25, topup_50, topup_75, topup_100), container_1gb (Boost), database_addon (Database). (Always-on is billed via its own endpoint POST /hosting/app/:id/always-on/checkout, not /checkout.)
GET /account/providers — BYOK provider status (which keys are connected, preferred provider)
GET /account/preferences — Get account preferences
PUT /account/preferences — Update account preferences
PUT /account/email-notifications — Toggle email notifications. Body: {"enabled": true}
POST /account/api-key/rotate — Rotate your vk_ API key
POST /account/subscription/cancel — Cancel your active subscription
GET /account/referral — Your referral code + stats
POST /account/referral/apply — Apply a referral code. Body: {"code": "ref_xxx"}
GET /account/github — Connected GitHub account info
GET /account/github/profile — GitHub profile details
GET /account/github/connect — Start GitHub OAuth connect (browser redirect)
DELETE /account/github — Disconnect GitHub
Two-Factor Auth (2FA)
GET /account/2fa/status — Whether 2FA is enabled
POST /account/2fa/setup — Begin TOTP setup (returns secret + QR)
POST /account/2fa/enable — Confirm and enable 2FA. Body: {"code": "123456"}
POST /account/2fa/verify — Verify a 2FA code. Body: {"code": "123456"}
POST /account/2fa/disable — Disable 2FA. Body: {"code": "123456"}
Billing (continued)
GET /plans — List plans with prices, session caps, app/memory/domain limits
POST /billing/portal — Stripe customer billing-portal URL
POST /credits — Create a credits-purchase checkout session. Body: {"package": "sessions_10|sessions_30|sessions_100"}
Projects
GET /project/:id — Project details
GET /project/:id/domains — List project domains
POST /project/:id/domain — Attach a custom domain. Body: {"domain": "example.com"}
DELETE /project/:id/domain/:domain — Remove a project domain
Push Notifications (PWA)
GET /push/vapid-key — Get VAPID public key
POST /push/subscribe — Register push subscription
POST /push/unsubscribe — Remove subscription
GET /push/preferences — Notification channel preferences
PUT /push/preferences — Update preferences
POST /push/test — Send test notification
POST /push/register-device — Register a native device token
POST /push/unregister-device — Remove a native device token
POST /push/opened — Report a push notification was opened
Email API
Send transactional emails from your app. Each app sends from {subdomain}@vibekit.bot.
POST /hosting/app/:id/email/send — Send email. Body:
{
"to": "[email protected]",
"subject": "Welcome!",
"html": "<h1>Welcome</h1>",
"text": "Welcome!",
"replyTo": "[email protected]"
}
to supports comma-separated (max 10). Daily limits: Free 10, Builder 200, Pro 1000.
GET /hosting/app/:id/email/quota — Check usage and daily limit
Payments API (Stripe Connect)
GET /hosting/app/:id/payments/connect — Get Stripe OAuth URL
DELETE /hosting/app/:id/payments/connect — Disconnect Stripe
GET /hosting/app/:id/payments/status — Connection status
POST /hosting/app/:id/payments/checkout — Create checkout session. Body:
{
"mode": "payment",
"line_items": [{"price": "price_XXX", "quantity": 1}],
"success_url": "https://myapp.vibekit.bot/success?session_id={CHECKOUT_SESSION_ID}",
"cancel_url": "https://myapp.vibekit.bot/pricing"
}
POST /hosting/app/:id/payments/portal — Customer billing portal. Body: {"customer_id": "cus_XXX", "return_url": "..."}
GET /hosting/app/:id/payments/products — List products from connected Stripe account
Stripe events auto-forwarded to POST /api/stripe/webhook with X-VibeKit-Stripe-Event header.
Database (continued)
GET /hosting/app/:id/database/schema — Full schema (tables, columns, types)
GET /hosting/app/:id/database/tables/:table — Browse rows. Query: ?limit=50&offset=0&orderBy=col&orderDir=desc
POST /hosting/app/:id/database/query — Run a read-only SQL query. Body: {"sql": "SELECT ..."}
QA Testing (continued)
GET /hosting/app/:id/qa/history/:runId — Full results for one QA run
GET /hosting/app/:id/qa/history/:runId/screenshots/:filename — Annotated screenshot from a past run
GET /hosting/app/:id/qa/screenshots/:filename — Screenshot from the latest run
Worktrees (continued)
POST /hosting/app/:id/worktree/cleanup — Remove stale / merged worktrees
Schedules
Recurring agent tasks per app (cron-driven).
GET /hosting/app/:id/schedules — List the app's scheduled agent tasks
POST /hosting/app/:id/schedules — Create a schedule. Body: {"name", "message", "schedule"} (cron expression)
PATCH /hosting/app/:id/schedules/:jobId — Update a schedule. Body: {"enabled", "name", "message", "schedule"}
DELETE /hosting/app/:id/schedules/:jobId — Delete a schedule
GET /hosting/app/:id/schedules/insights — Schedule run summary / insights
GET /hosting/app/:id/schedules/:jobId/runs — Execution history for one schedule
Analytics & Ideation
GET /hosting/app/:id/analytics — App traffic / usage analytics. Query: ?days=30 (max 90)
POST /hosting/app/:id/ideation — Generate feature/improvement ideas for the app. Body: {"category", "deep": false}
Webhooks (continued)
POST /hosting/app/:id/webhooks/:webhookId/rotate-secret — Rotate a webhook's signing secret
Tasks & Templates
POST /template-deploy — Deploy directly from a template. Body: {"template", "subdomain"}
GET /apps — List apps created via the task/deploy API
Public (no auth)
GET /gallery — Public gallery of published apps
POST /feedback — Submit feedback. Body: {"message", "email?", "source?"}
POST /switchback/route — Hosted cascade-router model classifier (charges $0.001/call against credits). Body: {"userMessage", "ladder?", "recentHistory?"} → {recommended_model, tier, classifier}
Links
- Dashboard: https://app.vibekit.bot
- CLI:
npm install -g vibekit-cli - MCP:
npm install -g vibekit-mcp