Agent-agnostic CLI dashboard — see every AI agent across runtimes from your terminal.
Primary implementation: Go (single binary, Bubbletea TUI). The Python package in vantage/ is legacy and kept for reference during migration.
# One-liner install (after release published)
# curl -L https://github.com/ewardGPT/vantage/releases/download/v0.3.0/vantage-0.3.0-linux-arm64 -o ~/.local/bin/vantage && chmod +x ~/.local/bin/vantage
# Build from source
make build && make install # → ~/.local/bin/vantage
# Verify
vantage version
vantage adapters
vantage dashboardmake cross-compile VERSION=0.3.0
# → dist/vantage-0.3.0-{linux,darwin}-{amd64,arm64} + .sha256
make smoke # quick CLI validationPush a git tag v0.3.0 to trigger the GitHub release workflow.
| Command | Description |
|---|---|
vantage ps |
List sessions (with quality score) |
vantage dashboard |
Live Bubbletea TUI (j/k navigate, a active filter, d/t/l views) |
vantage tree <id> |
Agent hierarchy |
vantage logs <id> |
Merged chronological logs |
vantage adapters |
Runtime probe status |
vantage health |
Diagnostic report + recommendations |
vantage quality <id> |
Session quality score (0–100) |
vantage quality --trend |
Quality trend across sessions |
vantage route <prompt> |
Suggest runtime/model |
vantage memory --list |
Cross-session lessons |
vantage memory --inject "prompt" |
Preview memory injection |
vantage run <runtime> <prompt> |
Submit task (--retry N, --fallback MODEL) |
cmd/vantage/main.go
└── internal/cmd/ Cobra CLI
└── internal/tui/ Bubbletea dashboard
└── internal/registry/ Adapter discovery + cache merge
└── internal/adapters/ hermes, claude-code, opencode
└── internal/quality/ Quality scoring engine
└── internal/health/ Health reports
└── internal/recovery/ Failure retry strategies
└── internal/router/ Model routing
└── internal/memory/ Cross-session memory store
Adapters implement a common interface (Probe, ListSessions, GetTree, GetLogs, Run). Registry polls adapters in deterministic sorted order.
~/.config/vantage/config.json (or $VANTAGE_CONFIG):
{
"refresh_seconds": 2,
"run_timeout_seconds": 600,
"cache_enabled": true,
"disabled_adapters": []
}| Adapter | Go status | Source |
|---|---|---|
| Hermes | ✅ | ~/.hermes/state.db |
| Claude Code | ✅ | ~/.claude/sessions/ |
| OpenCode | ✅ | ~/.local/share/opencode/opencode.db |
| Codex | ✅ | ~/.codex/sessions.db or JSONL |
| Cursor | ✅ | ~/.cursor/projects/*/agent-transcripts/ |
| Burrow | ⏳ Run+Stop only | Warren/Burrow HTTP API (:8999) |
- All 6 adapters ported to Go
vantage stop <id>with PID kill + Burrow cancel- Concurrent goroutine polling in registry
vantage runlive follow TUI (Bubbletea,--backgroundto skip)
- Adapter iteration: sorted by runtime name
- Session merge:
started_at DESC, id ASC - Log merge: stable sort on
(timestamp, runtime, role) - Memory match: score DESC, id ASC tiebreaker
make test # go test ./...
make build # bin/vantage
go test ./internal/quality -vpip install -e ".[dev]"
pytest tests/ # reference implementation
python -m vantage.cli adaptersVantage migrated from Python (Rich TUI) to Go (Bubbletea):
- Complete (5 of 6): CLI, dashboard, run TUI, quality/health/memory/router/recovery, stop, concurrent polling
- 5 adapters: Hermes, Claude Code, OpenCode, Codex, Cursor
- Burrow: Run+Stop only (ListSessions/GetSession/GetTree/GetLogs not yet implemented)
- Python legacy: kept in
vantage/for reference (pytest tests/)
- Single static binary, no venv
- Native goroutines for multi-runtime polling
- Bubbletea TUI (Lazygit/Glow ecosystem)
- Cross-compile for linux/darwin/arm64