Watch and record software shipments across your orgs. How each product ships lives in a config file next to the code.
live Go CLI + committed release memory · phone / Mac / tablet / Chrome add-in in design
Thesis
Like Ansible treating hosts as inventory, Shipr treats shipping paths as modules: GitHub Actions, Railway, a forge publish, or a human gate.
The committed release model is the playbook. Agents and humans read the same ledger of what was tried and what blocked.
// committed next to the product { "role": "shipment_control", "channels": ["github_actions", "railway", "pypi"], "proof_commands": ["go test ./..."], "approval_gates": ["production_deploy"], "modules": { "actions": { "orgs": ["eidos-agi", "…"] }, "railway": { "via": "railguey" } }, "attempts": "/.shipr/release-attempts/" }
Modules
Plug in each shipping path. Watch the fleet from here, run a shipment, and keep the outcome next to the product.
shipr model, attempt, and frontier: how this product ships, and what the last agent already tried.
Watch runs across hundreds of repos and many orgs. Dock badge when something is moving. Sidebar when you are on the page.
Project-token deploys without the silent GitHub-App failure mode. Same shipment record, different backend.
Sibling .testr/ feeds proof_commands. Shipr records whether they ran; it does not invent ceremony.
Surfaces
Monitor shipments from your phone, your Mac, a tablet, or a Chrome add-in. Pair once to GitHub and your orgs; every surface reads the same shipment state. Agents keep the CLI.
Canonical UI defaults live on ui.eidosagi.com · Shipr surfaces (Chrome 360px panel, phone, Mac dock badge, tablet split).
Check in-flight shipments and blockers without opening a laptop.
NextShipr.app on the dock. Badge bumps when something is shipping across your orgs.
NextSide panel keyed to the repo, PR, or Actions page you are looking at.
NextAgents load the model and record attempts. Daemon keeps badges current without a pile of open tabs.
CLI shippingInstall
Build the fleet UI after the ship config is written down. Install the Go binary, write a model next to a product, and stop reinventing the release steps every session.
$ go install github.com/eidos-agi/shipr/cmd/shipr@latest $ shipr model --project . --write --json $ shipr frontier --project . --json