CLI watch
shipr watch — live frontier + attempts from the shared ledger. No agent session required.
Eidos AGI
Your toolkit for delivering software and monitoring every shipment — across orgs, agents, and humans.
Bronze means something is shipping. Mark, primary action, in-flight chip: same metal.
The age of AI
Agents can open a PR, kick Actions, and talk like they own the release. Then the session ends. The next agent starts cold.
Without a frontier, every new session rediscovers the same blocker — and burns tokens proving it again.
One agent wants a checklist in Slack. Another writes a one-off script. None of it lives next to the product.
Production deploy, secrets, “did staging actually go green?” — the messy middle that dashboards never owned.
Yesterday
Useful. Incomplete. None of them were designed as shared memory for agents that ship overnight.
× not enough
A run list is not a shipment ledger. It does not say what was tried, what blocked, or what the next agent should do.
× wrong inventory
Great at hosts. Shipping paths — Actions, Railway, a forge publish, waiting on a person — are a different inventory.
× no memory
Threads scroll away. Status lives in someone’s head. Agents cannot frontier a Slack channel.
× wrong job
You do not need poetry about delivery. You need a committed model of how this product ships, and a live watch on it.
The gap
How this product ships should live next to the code — channels, proof commands, who must approve, modules — not in a wiki nobody updates.
Attempts should pile up as evidence. Agents read the frontier. Humans see the same ledger on phone, Mac, tablet, or a Chrome side panel.
Shipr
Treat shipping paths as plugins. The committed release model is the playbook. Deliver with the CLI. Monitor from every surface.
Write how the product ships once. Agents load it with shipr model and frontier. Humans watch the same state without opening twelve tabs.
GitHub Actions, Railway via railguey, Cloudflare via clawdflare, proofs via testr, a person who has to approve — each plugs in as a plugin. Same shipment record. Different backend.
// committed next to the product { "role": "shipment_control", "channels": ["github_actions", "railway", "pypi"], "proof_commands": ["go test ./..."], "approvals": ["production_deploy"], "plugins": { "testr": { "channel": "proofs" }, "railguey": { "channel": "railway" }, "clawdflare": { "channel": "cloudflare" } }, "attempts": "/.shipr/release-attempts/" }
Deliver + monitor
Agents keep the CLI. You keep shipr watch — and soon a dock badge, phone strip, or Chrome panel — keyed to the same ledger when AI prompts AI and needs a person.
shipr watch — live frontier + attempts from the shared ledger. No agent session required.
Side panel on the repo, PR, or Actions page.
BuildingBadge bumps when something is shipping across paired orgs.
BuildingIn-flight and blockers without opening a laptop.
BuildingInstall
Write the ship config down. Stop reinventing the release every session. Fleet UI comes after the memory exists.
$ go install github.com/eidos-agi/shipr/cmd/shipr@latest $ shipr model --project . --write --json $ shipr frontier --project . --json $ shipr watch --project .