Spin up. Code on. Zap zap ⚡️
Local dev, zero cognitive load. For busy devs.
1. Install
Install the zapper-cli.
npm install --global pm2 zapper-cli
2. Configure
Create a zap.yaml file.
project: myappenv_files: [.env.base, .env]bare_metal:frontend:aliases: [fe]repo: myorg/myapp-frontendcmd: pnpm run devcwd: ./frontendenv: [API_KEY]backend:repo: myorg/myapp-backendaliases: [be]cmd: python run main.pycwd: ./backendenv: [API_KEY, DB_PASS]docker:database:aliases: [db]image: postgres:17envs: [DB_PASS]tasks:sync:cmds:- cd frontend; pnpm install- cd backend; poetry install- cd backend; poetry run alembic upgrade head
3. Profit
Easy process management!
zap clone # clone all the reposzap pull # pull all the reposzap task sync # run taskszap up # start the entire projectzap down # stopzap restart # restartzap up frontend # filter by servicezap logs frontend # view logszap exec db psql # run one off commandszap l fe # shortcuts for lazy ppl
Be in control. Stop juggling tabs, containers and environment variables across projects.
Features
Isolated 🍱
All state lives in a .zap within your project. Processes are assigned names like zap.projectname.servicename for easy management.
Unified 🤝
Processes, containers, one-off tasks and pipelines all brought under a single readable config and one simple CLI interface.
Lightweight 🪶
Just a thin wrapper on top of pm2 and docker. Straightforward to peer under the hood. Works well with other tools like orbstack, asdf, taskfile and friends.
Watch this space 🔮
More to come! Such as one off tasks, ability to register projects globally, assign aliases, and more.