VibeKit Remote Agent: Drive Your Laptop's Claude Code from iPhone
A small Node CLI you install on your laptop. It links to your VibeKit account, listens for tasks from your iPhone, and runs Claude Code or OpenAI Codex locally against your real codebase. Same agent loop, same model quality, your phone is just the input device.
Install + link
npm install -g vibekit-agent
vibekit-agent link
Latest published version: [email protected]. The link command prints a code; open the iOS app, paste it under Remote Agents, done. Then:
cd ~/code/your-project
vibekit-agent start
The agent now listens. Send a task from iOS ("fix the 500 on /api/users"), the agent runs Claude Code in this directory, commits the fix, and sends the result back to your phone.
Claude Code uses your Claude subscription or API key. To run OpenAI Codex instead, log in once with codex login (your own ChatGPT account), then link with vibekit-agent link codex, or switch a computer that is already linked with vibekit-agent start codex. The choice is remembered for this computer. On both engines the app streams replies, shows tool cards, takes images, has Stop, and handles "Ask before actions" approvals from the app or the lock screen. You can also change settings by asking in chat.
Commands
--directory changes scope, and vibekit-agent start codex (or start claude) switches the coding agent.Why outbound WebSocket (not SSH / tunnel)
The agent opens a WebSocket to app.vibekit.bot as a normal HTTPS connection. No inbound ports, no SSH config, no ngrok. Works behind corporate firewalls, hotel wifi, NAT, anywhere an outbound HTTPS call goes through.
The gateway sits between your laptop and the mobile client. Your laptop never has a public address.
Hosted app vs Remote agent, when to use which
| Hosted app on VibeKit | Remote agent (vibekit-agent) | |
|---|---|---|
| Where the code lives | VibeKit's EFS | Your laptop's disk |
| Where the agent runs | VibeKit Fargate | Your laptop's CPU |
| Stays online when laptop sleeps? | Yes | No |
| Has a public URL? | Yes (*.vibekit.bot) | No (local-only) |
| Best for | Apps you want to ship + share | Driving your existing local project from your phone |
Tool safety
By default the agent has full access: it edits files and runs commands on your behalf, because you linked the computer for that. Narrow it with vibekit-agent config --tools, or reset to a read-only set with vibekit-agent config --reset-tools. Claude Code follows the exact tool list; Codex runs with full access or read-only. Turn on "Ask before actions" to approve each command and edit from the app or the lock screen.
If you're skittish: link a project-specific worktree (git worktree add ../scratch) and run the agent against that, so even if you tell the operator something rash, the blast radius is limited.
Related packages
- Claude Code remote control, the hosted alternative: run the agent in the cloud so there's no machine to keep awake
- vibekit-mcp, expose your VibeKit account as MCP tools for Claude Desktop / Cursor
- vibekit-cli, kick off agent tasks from your terminal, schedule recurring jobs
FAQ
What is vibekit-agent?
A small Node CLI that runs on your laptop and listens for tasks dispatched from the VibeKit iOS app. When a task arrives, it invokes Claude Code locally, or OpenAI Codex if you link it with vibekit-agent link codex, same agent loop, same file-system access, same model quality. You're running the real coding agent on your own machine, with mobile as the input device.
How does this differ from a hosted app on VibeKit?
A hosted app runs on VibeKit's Fargate cluster, we own the container. The remote agent runs on YOUR laptop, you own the file system. Use remote agent when you want to drive your existing local codebase from your phone (the bug fix you noticed while away from the laptop). Use hosted apps when you want VibeKit to do the hosting too.
Does it require port forwarding or a public IP?
No. vibekit-agent opens an outbound WebSocket to VibeKit's gateway. The mobile client also connects to the gateway. Both ends talk through that bridge, your laptop never needs an inbound public port, NAT-busting, or ngrok. It works from a coffee-shop wifi, from behind a corporate firewall, from your kitchen.
Is my code private?
The code stays on your laptop. The WebSocket carries the user's prompt and the agent's response messages; the agent's file reads / writes are local. VibeKit's gateway sees the messages (encrypted in transit) but doesn't host your code. If you don't want VibeKit to see prompts either, run the agent against your own Anthropic key, the agent talks directly to Anthropic for model calls.
