VibePod is a unified CLI (vp) for running AI coding agents in isolated
Docker containers — no required configuration, no setup. Just
vp run <agent>. Includes built-in local metrics collection, HTTP traffic
tracking, and an analytics dashboard to monitor and compare agents side-by-side.
- ⚡ Zero config — no setup required;
vp run <agent>just works. Optional YAML for custom configuration - 🐳 Isolated agents — each agent runs in its own Docker container
- 🔀 Unified interface — one CLI for Claude, Gemini, Codex, Devstral, Copilot, Auggie & more
- 📊 Local analytics dashboard — track usage and HTTP traffic per agent, plus token metrics
- ⚖️ Agent comparison — benchmark multiple agents against each other in the dashboard
- 🔒 Privacy-first — all metrics collected and stored locally, never sent to the cloud
- 📦 Simple install —
pip install vibepod
VibePod is available on PyPI:
pip install vibepodvp run <agent>
# examples:
vp run claude
vp run codexThis repository contains an initial v1 implementation with:
vp run <agent>vp stop <agent|--all>vp listvp config initvp config showvp config pathvp version
VibePod collects metrics locally while your agents run and serves them through a built-in dashboard.
| Command | Description |
|---|---|
vp logs start |
Start or resume dashboard for collected metrics |
vp logs stop |
Stop the dashboard container |
vp logs status |
Show dashboard container status |
The dashboard shows per-agent HTTP traffic, usage over time, and Claude token metrics. It also lets you compare agents side-by-side. All data stays on your machine.
By default, agent images use the vibepod namespace for Claude, Codex, and platform services, and nezhar for Gemini/OpenCode/Devstral/Auggie/Copilot.
Current defaults are aligned to existing container repos:
claude->vibepod/claude:latestgemini->nezhar/gemini-container:latest(repo)opencode->nezhar/opencode-cli:latest(repo)devstral->nezhar/devstral-cli:latest(repo)auggie->nezhar/auggie-cli:latest(repo)copilot->nezhar/copilot-cli:latest(repo)codex->vibepod/codex:latestdatasette->vibepod/datasette:latestproxy->vibepod/proxy:latest(repo)
You can override any single image directly:
VP_IMAGE_CLAUDE=vibepod/claude:latest vp run claude
VP_IMAGE_GEMINI=nezhar/gemini-container:latest vp run gemini
VP_IMAGE_OPENCODE=nezhar/opencode-cli:latest vp run opencode
VP_IMAGE_DEVSTRAL=nezhar/devstral-cli:latest vp run devstral
VP_IMAGE_AUGGIE=nezhar/auggie-cli:latest vp run auggie
VP_IMAGE_COPILOT=nezhar/copilot-cli:latest vp run copilot
VP_IMAGE_CODEX=vibepod/codex:latest vp run codex
VP_DATASETTE_IMAGE=vibepod/datasette:latest vp logs startMIT License - see LICENSE for details.

