Dev stack as code

Spin up. Code on. Zap zap.

Define processes, containers, env vars, and one-off tasks in one zap.yaml. Start it all with `zap up`.

1. Install

Install the CLI (built on PM2 + Docker).

npm install --global pm2 zapper-cli

2. Configure

Check in a single zap.yaml for your whole stack.

project: myapp
env_files: [.env.base, .env]
native:
frontend:
repo: myorg/myapp-frontend
cmd: pnpm dev
cwd: ./frontend
env: [API_KEY]
backend:
repo: myorg/myapp-backend
cmd: python main.py
cwd: ./backend
env: [API_KEY, DB_PASS]
depends_on: [database]
docker:
database:
image: postgres:15
ports: [5432:5432]
env: [POSTGRES_PASSWORD]
tasks:
sync:
cmds:
- cd frontend; pnpm install
- cd backend; poetry install
- cd backend; poetry run alembic upgrade head

3. Run

Start everything (or just one service), then tail logs when you need them.

zap clone # clone all repos
zap task sync # run tasks
zap up # start everything
zap down # stop everything
zap restart # restart all
zap status # check what's running
zap up --service frontend # start specific service
zap logs --service backend # view logs for a service

What you stop doing

Before
  • - 8 terminal tabs to babysit
  • - Startup order you forget every time
  • - Random scripts + docker-compose sprawl
  • - Secrets leaking into the wrong process
After
  • - One `zap.yaml` checked into git
  • - `zap up` starts everything (in order)
  • - `zap logs` when you need it, not forever
  • - Env vars whitelisted per service

How it works

Declare your stack

Processes, containers, env vars, and tasks live in a single `zap.yaml`.

Start everything predictably

Run `zap up`. Dependencies start first. Logs keep running even if your terminal dies.

Operate from your editor

Use the VS Code/Cursor extension to start/stop services and tail logs.

Extension for VS Code & Cursor

Manage your Zapper projects directly from your IDE. Start, stop, and monitor your services with a beautiful interface that integrates seamlessly with your development workflow.

Zapper VS Code Extension Interface

Features

One file, entire stack ๐Ÿ—‚๏ธ

Declare processes, containers, env files, and tasks in a single `zap.yaml`.

Zero mental overhead ๐Ÿง 

Come back months later: `zap up` and you're running. No remembering ports or order.

Detached logs ๐Ÿงพ

Built on PM2 so logs persist even if your terminal/editor crashes.

Secure by default ๐Ÿ”

Whitelist which env vars each service can see. Secrets stay out of services that don't need them. No more accidental leakage.

Dependencies ๐Ÿ”—

Start services in the right order with `depends_on`. Works great for multi-repo stacks.

Tasks ๐Ÿงฐ

Define one-off commands with parameters and pass-through args: `zap task seed`.