/seatbelt init
Set up, once
Run once. Creates a small .seatbelt/ latch, reads your git remote so it knows GitHub from GitLab, and can add a push gate so an open gate cannot reach main. Optional. Everything works without it.
Set up, once
Run once. Creates a small .seatbelt/ latch, reads your git remote so it knows GitHub from GitLab, and can add a push gate so an open gate cannot reach main. Optional. Everything works without it.
The Ship Read
The check before you show anyone. Scans the seven surfaces (code execution, login, payments, secrets, customer data, databases, risky shortcuts) and returns one plain verdict: clear, a quick polish, or not yet. This scan is what creates the report link.
Fix in your agent
Applies the fixes as edits in the same chat. No copy and paste, no second tool. Then it rechecks.
The gate at go-live
Say /seatbelt ship, or "commit," "push," or "ship it," and Seatbelt scans first, since a push is usually the live site. Clean goes through; an open gate stops and asks. Set ship_mode: "pr" to open a stamped PR or MR every time instead of pushing to main. Secrets are never committed. The scan makes the report; shipping attaches it.
Get the share link
The public link for your last scan. Forward it as proof. No account or repo access needed to open it.
See the ledger
The committed history of checks, fixes, and ships for this project, newest first.
Same actions, no slash
Every command is also an MCP tool: seatbelt_scan, seatbelt_fix, seatbelt_report, seatbelt_ship, seatbelt_init, seatbelt_status, seatbelt_log, seatbelt_assist, seatbelt_accept. seatbelt_scan makes the report; seatbelt_ship records the ship.
.seatbelt/config.json
Optional keys, committed, no secrets:
forge: github or gitlab.ship_branch: a working branch instead of main.ship_mode: pr opens a stamped PR on every cleared ship.build_command: a broken build is a hard gate.install_hooks: bolt the push gate into the repo.