Getting Started with Vibecontrols
This guide walks you through setting up Vibecontrols from scratch — from installing the binaries on your machine to running your first session.
The whole process takes about five minutes.
Two binaries
Vibecontrols ships two separate binaries distributed as npm packages:
| Package | Binary | Purpose |
|---|---|---|
@vibecontrols/agent | vibe | The agent runtime — runs on each machine where you want to host sessions, tunnels, AI workflows |
@vibecontrols/cli | vibecontrols | The CLI for managing everything from the backend side (vibes, sessions, vibedecks, webhooks, etc.) |
You install both.
Step 1: Sign in to the web app
- Go to app.vibecontrols.com and sign in (Burdenoff Workspaces identity).
- If you don't have an account, click Register to start.
- Pick or create a workspace.
Step 2: Install the CLI + agent
On the machine where your code lives:
npm install -g @vibecontrols/agent @vibecontrols/cli
# or:
bun install -g @vibecontrols/agent @vibecontrols/cli
Verify:
vibe --version
vibecontrols --version
Step 3: Authenticate the CLI
vibecontrols auth login
OAuth2 device-code flow opens a browser. After you authorize:
vibecontrols auth status
vibecontrols workspace list
vibecontrols workspace set <workspace-id>
CLI tokens are stored at ~/.config/vibecontrols-cli/auth.json (mode 0600). Platform tokens auto-refresh every ~1 hour; workspace tokens every ~15 minutes.
Step 4: Start the agent
vibe start
On first run, the agent:
- Detects missing system dependencies (tmux, ttyd, cloudflared) and offers to install them via
vibe setup. - Picks port 3005 (or the next free port if 3005 is taken).
- Stands up an outbound Cloudflare tunnel so the backend can reach it.
- Generates an
agentApiKeyand stores it locally. - Persists data under
~/.boff/vibecontrols/agents/<agentId>/(encrypted SQLite) and per-profile config under~/.boff/vibecontrols/profiles/<profile>.json.
Background it as a daemon so it survives logout:
vibe autostart install
This registers a systemd user service (Linux/WSL), launchd plist (macOS), or Task Scheduler entry (Windows). On Linux you may need loginctl enable-linger <user> first.
Step 5: Register the target in the web app
Navigate to Targets → Add Target in the web app. The platform pushes OAuth credentials to your running agent via POST /api/agent/gateway-auth, after which the agent finalizes (fetches the per-workspace encryption key, loads plugins) and appears in your Agents list with Active status.
Step 6: Create your first vibe
vibecontrols vibes create \
--name my-api \
--path /home/me/code/my-api \
--type REPOSITORY \
--description "My REST API project"
Vibe types: PROJECT, WORKSPACE, REPOSITORY, MONOREPO, PACKAGE, CUSTOM.
List your vibes:
vibecontrols vibes list
Step 7: Open a session inside the vibe
vibecontrols sessions create \
--name dev \
--vibe-id <vibe-id> \
--agent <agent-id> \
--type TMUX
Session types: TMUX, WEZTERM, ZELLIJ, SSH, TERMINAL, SCRIPT, CUSTOM. The session gets a browser-accessible URL (via ttyd, exposed through the agent's outbound tunnel) for in-browser attach + sharing.
Verify everything works
vibe health # local agent health probe
vibecontrols agents list --active
vibecontrols sessions list --status RUNNING
What's next
- Working with Vibes — full CRUD, env vars, git metadata, hierarchy
- Sessions & Terminals — all seven session types, attach, share, send commands
- VibeDecks — build a Stream-Deck-style grid of action buttons
- AI Prompts — define reusable prompts and dispatch them
- Tunnels — expose ports via Cloudflare quick tunnels or VibeTunnels (frp)