Skip to content

Zapper

A lightweight dev environment runner for local multi-service projects.

Install

bash
npm install -g pm2 @mp-lb/zapper

Create zap.yaml

yaml
project: myapp
env: [.env]

native:
  backend:
    cmd: pnpm dev
    env: "*"

  frontend:
    cmd: pnpm dev
    cwd: ./frontend
    env: "*"

docker:
  postgres:
    image: postgres:15
    ports:
      - 5432:5432

Run

bash
zap up
zap status
zap down

Add Tasks

Use tasks for one-off project commands that should share the same local environment.

yaml
tasks:
  seed:
    preconditions:
      - test -n "$DATABASE_URL"
    cmds:
      - pnpm db:seed

  console:
    interactive: true
    silent: true
    cmds:
      - psql "$DATABASE_URL"
bash
zap task seed
zap task console

For full reference docs, see Commands, Configuration, Services, and Tasks.

For profile-based env files, service selection, and isolated stacks, see Profiles.

For readiness waits and dependency startup behavior, see Health Checks.

For packaging and local machine runtime plans, see Local Runtime Compatibility.

For the command result and rendering contract, see Command Output.

For CLI development, testing, and release workflow, see CLI Development.

For the local menu bar app development loop, see macOS Development.