One Command. Local Stack For You and Your Agent

npm version GitHub Packages

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.

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 →