One Command. Local Stack For You and Your Agent
A Simple UI, Task Runner, and MCP server that brings up your local stack in dependency order, watches liveness, wires up keyboard shortcuts, and allows your agent to see exactly what you can see. All driven by a single config file in your monorepo or meta-repo, Built for your coding agent as much as for you. Your agent can write the config for you, drive and observe the stack via MCP, and reload it on the fly, no restart needed.
npx vibestackr
View on GitHub
npx vibestackr with no config yet, then vibestackr init handing off to a
coding agent to generate one, then starting the stack from the result, and asking claude to debug a startup issue —
agent wait time cut from the recording.
Check out the demo monorepo to see it in action.
Get going with one command
Navigate to the root of your monorepo / meta-repo and run:
npx vibestackr init
This will call your CLI agent to generate your multi-service config.
Have more than one agent installed? Use --agent to specify which CLI agent to use for config generation.
Dependency-ordered startup
Declare dependsOn between services, and on installed tools.
Real liveness checks
Port, HTTP, or command checks flip a service to ready.
One-shot steps
Migrations, builds, one-off docker runs — mark them oneShot and they run to completion instead of being treated as long-running.
Keyboard shortcuts
Restart a service or run an arbitrary command with a shortcut key, or from your agent.
Background & reattach
Detach the UI and the stack keeps running as a daemon; run npx vibestackr again from anywhere in the project to reattach.
Per-service logs
Every service gets its own scrollback tab, with an optional --persist-logs if you want them on disk too.
Built for you and your AI coding agent
Not a human-facing Terminal UI with an API bolted on after the fact — the agent-facing surface is a first-class citizen.
vibestackr inithands an agent the job of writing your config in the first place.vibestackr mcplets an agent read status/logs, restart a service, or trigger a shortcut mid-session, without leaving its own context.vubestackr config "add a postgres docker instance and make the java service depend on it"updates your config file using your installed agent cli
you agent can now write code, restart the running service, check the status, read the logs, debug the issue and intterate.
One YAML file, your whole stack
name: MyApp
services:
- name: postgres
cwd: .
command: sh
args: ["-c", "docker start myapp-postgres 2>/dev/null || docker run -d --name myapp-postgres -e POSTGRES_PASSWORD=password -p 5432:5432 postgres:16"]
oneShot: true
liveness: { type: command, command: docker exec myapp-postgres pg_isready -U postgres }
- name: api
cwd: api
command: npm
args: ["run", "dev"]
note: http://localhost:4000
dependsOn: ["postgres"]
liveness: { type: http, url: http://localhost:4000/health }
Every field, every check type, and full examples are in the complete configuration guide →