VibeTunnel
Manage VibeTunnel terminal sessions via REST API. Create, list, monitor, and control sessions visible in the web dashboard.
Setup
VibeTunnel must be running. Default: http://localhost:8080. Override with VT_URL env var.
Health Check
curl -s ${VT_URL:-http://localhost:8080}/api/health | jq .
List Sessions
curl -s ${VT_URL:-http://localhost:8080}/api/sessions | jq .
Compact view:
curl -s ${VT_URL:-http://localhost:8080}/api/sessions | jq -r '.[] | "\(.status | if . == "running" then "●" else "○" end) \(.name) [\(.id | .[0:8])]"'
Create Session
curl -s -X POST ${VT_URL:-http://localhost:8080}/api/sessions \
-H "Content-Type: application/json" \
-d '{"command": ["zsh", "-l", "-i"], "name": "my-session", "workingDir": "/path/to/dir"}' | jq .
Parameters:
command: array — command + args (default:["zsh", "-l", "-i"])name: string — display nameworkingDir: string — working directorycols: number — terminal width (default: 120)rows: number — terminal height (default: 30)
Get Session
curl -s ${VT_URL:-http://localhost:8080}/api/sessions/<id> | jq .
Delete Session
curl -s -X DELETE ${VT_URL:-http://localhost:8080}/api/sessions/<id> | jq .
Send Input
curl -s -X POST ${VT_URL:-http://localhost:8080}/api/sessions/<id>/input \
-H "Content-Type: application/json" \
-d '{"text": "ls -la\n"}' | jq .
Note: include \n to execute the command.
Resize Session
curl -s -X POST ${VT_URL:-http://localhost:8080}/api/sessions/<id>/resize \
-H "Content-Type: application/json" \
-d '{"cols": 150, "rows": 40}' | jq .
Examples
Launch Claude Code session:
curl -s -X POST ${VT_URL:-http://localhost:8080}/api/sessions \
-H "Content-Type: application/json" \
-d '{"command": ["claude"], "name": "claude-code", "workingDir": "~/repos/my-project"}' | jq .
Launch tmux session:
curl -s -X POST ${VT_URL:-http://localhost:8080}/api/sessions \
-H "Content-Type: application/json" \
-d '{"command": ["tmux", "new", "-A", "-s", "work"], "name": "tmux-work"}' | jq .
Clean up exited sessions:
curl -s ${VT_URL:-http://localhost:8080}/api/sessions | jq -r '.[] | select(.status == "exited") | .id' | \
xargs -I {} curl -s -X DELETE ${VT_URL:-http://localhost:8080}/api/sessions/{}
Environment Variables
| Variable | Default | Description |
|---|---|---|
VT_URL |
http://localhost:8080 |
VibeTunnel server URL |