Skills vibetunnel

Manage VibeTunnel terminal sessions. Create, list, monitor, and control terminal sessions visible in the VibeTunnel web dashboard.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/basher83/vibetunnel" ~/.claude/skills/clawdbot-skills-vibetunnel && rm -rf "$T"
manifest: skills/basher83/vibetunnel/SKILL.md
source content

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

VariableDefaultDescription
VT_URL
http://localhost:8080
VibeTunnel server URL