Real-time communication hub for human-executor interaction in vega-missile.
vega-hub enables direct communication between humans and Claude Code executors via:
- Hook interception of
AskUserQuestiontool calls - Web UI for answering questions in real-time
- Markdown persistence for Q&A history
- Executor lifecycle management (spawn, monitor, stop)
- Desktop notifications when executors need attention
vega-hub is automatically downloaded when you start a vega-missile session. The version is pinned in tools/.vega-hub-version.
Download the latest release for your platform:
# Linux (amd64)
curl -sL https://github.com/lasmarois/vega-hub/releases/latest/download/vega-hub-linux-amd64 -o vega-hub
chmod +x vega-hub
# macOS (arm64)
curl -sL https://github.com/lasmarois/vega-hub/releases/latest/download/vega-hub-darwin-arm64 -o vega-hub
chmod +x vega-hubAvailable binaries: linux-amd64, linux-arm64, darwin-amd64, darwin-arm64
./vega-hub --port 8080 --dir /path/to/vega-missilemake buildThis creates ./dist/vega-hub - a single binary with embedded React UI.
# Start frontend (hot reload) and backend (hot reload)
make dev- Frontend: http://localhost:5173
- Backend API: http://localhost:8080
| Endpoint | Method | Description |
|---|---|---|
/api/ask |
POST | Submit question (blocks until answered) |
/api/answer/{id} |
POST | Answer a pending question |
/api/questions |
GET | List pending questions |
/api/events |
GET | SSE stream for real-time updates |
/api/health |
GET | Health check |
The PreToolUse hook intercepts AskUserQuestion and routes to vega-hub:
# .claude/hooks/vega-hub-ask.sh
#!/bin/bash
# Extract question from stdin, POST to vega-hub, return answerResponse format:
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "deny",
"permissionDecisionReason": "[vega-hub] User answered: ..."
}
}vega-hub/
├── cmd/vega-hub/ # Entry point
├── internal/
│ ├── api/ # HTTP handlers, SSE
│ ├── hub/ # Core state management
│ └── markdown/ # Goal file writing
├── web/ # React frontend
├── Dockerfile # Production build
├── Dockerfile.dev # Development with hot reload
└── docker-compose.yml # Dev and build profiles
vega-hub is designed to work with vega-missile, a multi-project orchestration system for Claude Code.
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Manager (you) │────▶│ vega-hub │◀────│ Executors │
│ Claude session │ │ localhost:8080 │ │ (in worktrees) │
└──────────────────┘ └──────────────────┘ └──────────────────┘
How it works:
- Manager starts vega-hub (automatic on session start)
- Manager spawns executors via vega-hub API
- Executors route
AskUserQuestioncalls through vega-hub hooks - Human answers questions in the web UI
- vega-hub persists Q&A to goal markdown files
Releases are automated via GitHub Actions. To create a new release:
- Update
VERSIONfile with new version (e.g.,0.3.0) - Update
CHANGELOG.mdwith release notes - Push to master
- GitHub Actions builds binaries and creates the release
MIT