CLI - chirp run
Any command that already exists - no code changes.

`chirp run` is the highest-leverage Chirp integration: zero code changes, wraps any command. Opens an activity, executes the command, closes green on exit 0 / red on anything else. Stdout streams through unchanged so you can pipe through `chirp run` mid-pipeline without breaking anything.
This is the right answer for 80% of use cases. Long-running shell commands (`./deploy.sh`, `python train.py`, `xcodebuild`, `make build`) - wrap and walk away. The activity name + schema control the card's appearance; the wrapped command's exit code controls the outcome.
Prerequisites
- macOS, Linux, or WSL.
- A Chirp account.
Setup
- 1
Install the CLI
Single-line installer. Drops the
chirpbinary at~/.chirp/bin/chirpand adds it to PATH via your shell rc.shellcurl -fsSL https://chirpapp.dev/install.sh | bash - 2
Pair your laptop
chirp loginopens a browser, you sign in, the CLI receives a token and writes it to~/.chirp/credentials. One-time per machine.shellchirp login - 3
Wrap any command
Three flags:
-sschema,-nname (the card's primary label),--separator before the wrapped command. Exit code propagates: card closes green on 0, red otherwise.shell# Deploy: chirp run -s @deploy -n "prod-main" -- ./deploy.sh # Training: chirp run -s @training -n "qwen-7b sft" -- python train.py --epochs 10 # iOS archive: chirp run -s @build -n "TestFlight ship" -- xcodebuild archive -scheme MyApp # Anything that exits - even a one-liner: chirp run -n "doctl shipped" -- doctl apps create-deployment $APP_ID - 4
(Optional) Mid-pipeline use
chirp runcan sit anywhere in a pipeline. Stdout passes through; the card just observes the lifecycle.shellcat large.csv | chirp run -n "csv import" -- python import.py | tee import.log
What you’ll see
Card header: Chirp logo + the schema's prefix (e.g. "DEPLOY") + name from `-n` + machine hostname. Action line shows the wrapped command (truncated) and elapsed time. Closes green on exit 0 with the duration; red on non-zero exit with the exit code and the last line of stderr. Tap the card to deep-link to the activity log on chirpapp.dev/dashboard.
Troubleshooting
- command not found: chirp.
- The installer adds
~/.chirp/binto PATH via your shell rc. Either source the rc (source ~/.zshrc) or open a new terminal. If it's still not found, manually addexport PATH="$HOME/.chirp/bin:$PATH"to your rc. - Card opens but exit code shows as 0 even though the command failed.
- Probably the command itself swallows non-zero exits (e.g.
makewith-i, or a script withset +e).chirp runreads the wrapped process's actual exit code; if the script exits 0 explicitly despite internal failures, Chirp can't know. - I want different schema variants per command type.
- All Chirp schemas are listed at chirpapp.dev/templates. Pick the one that matches your work shape -
@deploy,@build,@training,@agent,@incident. The card layout matches the schema; pass the right one.