Vibe AnywhereVibe Anywhere
Desktop CLI v1.5.0

Desktop CLI Reference

Manage workspaces, attach to terminals, forward ports, and more — all from your local terminal.

Install

# macOS (Apple Silicon) - installs to ~/.local/bin
curl -fsSL https://dev.vibeanywhere.dev/scripts/install-desktop.sh | bash

Single binary, zero dependencies. Run vibe-anywhere-desktop version to verify.

Authentication

# Login to your server (SaaS or self-hosted)
vibe-anywhere-desktop login --server https://your-server.example.com

Credentials are stored in ~/.vibe-anywhere/config.json. Use logout to revoke and remove them.

Command Reference

All available commands at a glance.

Global Commands

login --server <url>Authenticate with a Vibe Anywhere server
logoutRevoke API key and remove stored credentials
workspacesList all running workspaces and their ports
repositoriesList all repositories
statusShow connection status
versionShow CLI version

Repository-Scoped Commands

Use the full path repositories <repo> workspaces <ws> <action> to scope commands to a specific workspace. Repos and workspaces can be matched by name or ID prefix.

... forward [--port N] [--all]Forward ports from workspace to localhost
... open <type> [--name N]Create a new tab and attach interactively
... claudeOpen a Claude Chat tab (shorthand for open claude)
... tabsList terminal tabs in the workspace
... tabs <id-or-name>Attach to an existing tab
... tabs --new <type>Create a new tab and attach
... tabs --supportedShow available tab types for this workspace

Tab Management with tabs

List, create, and attach to terminal sessions inside your workspaces.

List tabs

Shows all terminal-capable tabs in the workspace. UI-only tabs (Dashboard, Git, Docker, Claude Chat) are excluded since they cannot be attached to from the CLI.

vibe-anywhere-desktop repositories my-repo workspaces main tabs
ID NAME STATUS
--------------------------------------------------
586f2f70 Terminal running
d0692d30 Claude running
b4882765 npm dev server stopped

Attach to an existing tab

Attach by ID prefix, exact name, or partial name match. The resolution order is: exact ID, ID prefix, exact name (case-insensitive), then name substring.

# By ID prefix
vibe-anywhere-desktop repositories my-repo workspaces main tabs 586f
# By name
vibe-anywhere-desktop repositories my-repo workspaces main tabs Terminal

Create a new tab

Creates a new tab and attaches to it immediately. The type is matched against available tab templates. Use --name to set a custom name.

# New terminal session
vibe-anywhere-desktop repositories my-repo workspaces main tabs --new terminal
# New Claude session with custom name
vibe-anywhere-desktop repositories my-repo workspaces main tabs --new claude --name "Refactor Auth"

Show supported tab types

Lists tab types you can create, filtered by the workspace's installed tech stacks. For example, the Claude template only appears if the claude tech stack is installed.

vibe-anywhere-desktop repositories my-repo workspaces main tabs --supported
Supported tab types for this workspace:
NAME DESCRIPTION
----------------------------------------------------------------
terminal Shell session (/bin/bash)
Claude AI coding assistant (Claude Code)
Gemini CLI Google Gemini coding assistant
Tech stacks: nodejs, claude, gemini-cli

Detach with ~ .

Disconnect from a terminal session without killing the remote process.

Like SSH and tmux, the desktop CLI supports escape sequences for detaching from a session. The remote process continues running — reconnect later with tabs <id>.

Escape Sequences

Press Enter first, then type the escape character.

~ .Detach from the tab (remote process keeps running)
~ ~Send a literal ~ character
~ ?Show escape sequence help
# Attach to a running tab
vibe-anywhere-desktop repositories my-repo workspaces main tabs Terminal
# ... do some work ...
# Press Enter, then ~ then . to detach
Detached from tab (remote process still running).
# Later, reattach to the same tab
vibe-anywhere-desktop repositories my-repo workspaces main tabs Terminal

Port Forwarding

Access services running in remote workspaces on your localhost.

# Auto-forward all discovered ports
vibe-anywhere-desktop repositories my-repo workspaces main forward --all
# Forward specific ports
vibe-anywhere-desktop repositories my-repo workspaces main forward --port 3000 --port 8080
# Map remote port 3000 to local port 3001
vibe-anywhere-desktop repositories my-repo workspaces main forward --port 3001:3000

Auto-Discovery

The --all flag detects listening ports inside containers and forwards them automatically.

WebSocket Tunnel

Traffic tunnels over the existing WebSocket connection. No SSH, no VPN, no extra firewall rules.

Full Workflow Example

A typical development session from login to detach.

# 1. Login
vibe-anywhere-desktop login --server https://vibe.example.com
# 2. Browse repositories and workspaces
vibe-anywhere-desktop repositories
vibe-anywhere-desktop repositories my-app workspaces
# 3. See what tabs are running
vibe-anywhere-desktop repositories my-app workspaces main tabs
# 4. Attach to an existing terminal
vibe-anywhere-desktop repositories my-app workspaces main tabs Terminal
kobozo@workspace:/workspace$ npm run dev
# Press Enter ~ . to detach (dev server keeps running)
# 5. Create a new Claude session
vibe-anywhere-desktop repositories my-app workspaces main tabs --new claude
# ... work with Claude ... then Enter ~ . to detach
# 6. Forward ports to test locally
vibe-anywhere-desktop repositories my-app workspaces main forward --all
Forwarding 3000 -> localhost:3000
Forwarding 5173 -> localhost:5173