GitHub

Whoosh...

and deployed.

A single-binary, no-deps, deployment tool.

# single binary# no agent on targets# SSH or local# tasks & hooks# rollback
Features

Everything in one binary

Single binary, no agent
One static Go binary runs from your laptop or CI. Targets need only git, tar and a POSIX shell - there is no daemon, agent or runtime to install on them.
Separated releases
Timestamped releases under deploy_to, shared files/dirs symlinked into each, an atomic `current` swap, pruning, and one-command rollback.
SSH or local
Run over a real SSH connection (golang.org/x/crypto/ssh, no openssh needed) or directly on the box with local: true. Both transports mix freely in one stage.
Tasks & hooks
A cmds, scripts, deps, roles, per-task env - wired to lifecycle phases with before/after hooks.
Templating built in
Go templates with sprig in commands and scripts, and the whole deploy context exported to the shell as $RELEASE_PATH, $HOST, $STAGE, … too.
Dynamic inventory & AWS
A bundled aws plugin discovers EC2 hosts from tags, bakes AMIs, rolls ASGs, and renders dotenv files from SSM Parameter Store or Secrets Manager.
Secret redaction
Command echoes, host output, dry-run plans and logs are scrubbed for known secret formats, mark any value sensitive to mask it everywhere whoosh prints.
Safe by default
Offline validate, --dry-run plans that touch no host, host-key verification, a per-stage deploy lock, and a configurable unreachable-host policy.