โ† Back to DevOps & Cloud
DevOps & Cloud by @basher83

vibetunnel

Manage VibeTunnel terminal sessions

0
Source Code

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 name
  • workingDir: string โ€” working directory
  • cols: 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