VibeKit CLI
Terminal client for the VibeKit task API. Start a cloud coding project or continue one of yours, wait for the task to commit and deploy, check status, all from your shell. Built to compose with the rest of your dev environment.
Install
npm install -g vibekit-cli
vibekit auth
auth saves your VibeKit API key (from your Profile page) to ~/.vibekit/config.json; VIBEKIT_API_KEY overrides it. A Claude or OpenAI key or subscription is connected in the app, not the CLI.
Commands
vibekit auth status shows the key in use and your connected providers.--repo it starts a new project in a repo VibeKit creates; pass that repo (--repo vibekit-apps/name) to continue it. Returns a task ID immediately.--repo vibekit-apps/name --every daily (hourly, daily, weekly, or a cron expression in UTC). Every plan; on Free, at most once every 6 hours.Tasks write only to projects VibeKit created for you. The CLI cannot work on an existing GitHub repo of your own.
Useful patterns
Start a project, then keep building it
out=$(vibekit task "build a landing page with an email signup" --json)
id=$(echo "$out" | jq -r .taskId); repo=$(echo "$out" | jq -r .repo)
vibekit wait "$id"
vibekit task "add a pricing section" --repo "$repo"
Commit without deploying
vibekit task "add a /health route that returns 200" --repo vibekit-apps/your-project --no-deploy
Recurring work on a deployed project
vibekit schedule "check every page for broken links and fix them" --repo vibekit-apps/your-project --every "0 9 * * 1"
Each run is the project's own agent working in its workspace, billed like a chat message. Its report is posted in the project's chat and sent to you as a notification. daily is 9:00 UTC and weekly is Monday 9:00 UTC.
CI integration
# In a GitHub Action, kick off a task on one of your VibeKit projects
- run: vibekit task "run the tests and fix anything that fails" --repo vibekit-apps/your-project
env:
VIBEKIT_API_KEY: ${{ secrets.VIBEKIT_API_KEY }}
How this fits with the other packages
- vibekit-agent on your laptop = lets the VibeKit iPhone app drive Claude Code or Codex on your own machine
- vibekit-cli on any machine (or in CI) = the dispatcher
- vibekit-mcp = the same dispatcher, but exposed as MCP tools so Claude Desktop / Cursor can call it directly
The CLI's sweet spot is shell-driven automation: scripts, cron, CI pipelines. The MCP server's sweet spot is in-editor agent workflows. Both call the same underlying API.
FAQ
What does vibekit-cli do?
It's a terminal client for the VibeKit task API. You can fire off a cloud coding task that starts a new project or continues one of yours ('add a signup form to my landing page'), wait for it to complete, and check status; the task commits its change and deploys it unless you pass --no-deploy. Useful for automating agent workflows that don't fit into the iOS or web UI.
Does it deploy hosted apps?
A task deploys its result by default. For the rest of the hosted-app lifecycle (create, redeploy, restart, env vars), use the MCP server or the REST API directly. The CLI is focused on task dispatch. The two systems overlap but the CLI's sweet spot is shell-driven automation.
How do I authenticate?
Run `vibekit auth vk_...` with the VibeKit API key from your Profile page. It saves the key to ~/.vibekit/config.json (or set VIBEKIT_API_KEY instead), and every command uses it.
Does this replace vibekit-agent?
No, they do different jobs. `vibekit-agent` runs on your laptop so the VibeKit iPhone app can drive Claude Code or Codex there. `vibekit-cli` sends cloud coding tasks that run on VibeKit against a project repo VibeKit manages, from any machine or CI. Neither dispatches work to the other.