Shiprunner reads your GitHub issues, milestones and blocked-by links into one dependency graph, then says what is blocking, what to pick up next and when it lands at the pace you really close things. Your coding agents ask the same graph, one task each, and never collide.
M4 · The night loopM5 · Adventures and ticketsM6 · MonetizationM7 · Ticket Studio
#40Real night wiringfable-a
#62League scoping
#113Party size at the doorfable-b
#205Deep link arrivals
#92Standings
#131Recap wall
#45The ticket object
#48Ticket Studio brief
#46Stops route
#44Adventure detail
#47The Ticket screen
#56Curator schema
#50RevenueCat webhook
#51Paywall
#52Restore purchase
#55Studio chat
#57Curated ticket lands
Launch line · M560 required this side
One recorded organisation on 13 September 2026: one column per milestone, one pill per issue, one curve per blocked-by link, the launch line drawn through it, and the trace lit from the issue an agent holds.
Lands · Adventros, 13 September 202615 Oct32 d at 1.9/day · 57 closes in the last 30 days · 60 required of 166 open · not a guess: a division, with its basis printed beside it every time
Required60of 166 open · the rest is for later, and says so
Ready26startable this minute · 9 of them required
Blocked140on 48 open blockers you can see
This week+26 d13 closed · 41 opened · the line moved
The problem
A percentage lies. A pile does not.
Every tracker shows done over total and calls it progress. It cannot see that forty issues were filed this week, that half of what is open is not needed to ship, or that the one issue three agents want is the same issue. So the date it implies is wrong, and you find out in the last week.
Shiprunner draws scope beside done, counts only what the line requires, and prices every milestone as if it were the line. The date moves when the graph moves, and it says why.
What this week cost · Adventros
last 7 local days
Closed13at 1.9/day
Opened41scope grew by 41
Line moved+26 dboth weeks at today's pace
Both counts run through today's pace, so the movement isolates scope: file exactly as much as you close and it reads zero.
What'sblocking. What'snext. Whenitlands.
Three questions, one structure. A screen for the founder and a tool for the agent never compute a number differently.
What you get
Four numbers, each with the line that earned it.
A date with its basis
Launch line · M5
Lands15 Oct32 d at 1.9/day · 57 closes in the last 30 days
M4
38M5
21M6
15
Required divided by the pace you actually close at. A number without a basis never appears, and a date nobody set is never shown: without a launch line you get a priced menu of milestones instead.
Only what the line requires
Required60of 166 open
The milestone you call shippable, everything before it, and every open blocker of that work wherever it was filed.
A fleet that never collides
#40Real night wiringfable-a#113Party size at the doorfable-b#205Deep link arrivalsarea busy
A claim is an exclusive lease that expires. One agent per issue, one agent per area.
Scope beside progress
This week+26 d13 closed · 41 opened
Opened sits next to closed, scope is drawn next to done. A falling percentage never hides a growing pile.
Every claim carries the project's playbook. Not a wiki to remember: the payload.
How it works
Three steps. The third is optional.
01
Connect GitHub
Sign in with GitHub. The scopes it reads are listed, the two writes it could make are shown off. Pick the repositories; new ones appear by themselves.
Issues, milestones, labels and blocked-by linksread
Which repositories the organisation hasread
Labels, to mirror a claim as claimed-byoff
Blocked-by links, to write a dependency a person acceptedoff
02
Draw the launch line
Every milestone is priced as if it were the line: what it requires, and how many days that is at your pace. You pick the one that means shippable. The graph never guesses, and you can skip it and keep every number except a date.
M4 · The night loop38 · 20 d
M5 · Adventures and tickets60 · 32 d
M6 · Monetization78 · 42 d
03
Point your agents at it
One command. From then on every agent asks for its next task and receives the issue, the score it won on, what matters this week and the project's playbook, together.
An agent is never handed work without the definition of done, the conventions and the review bar of that project. Not a document to remember: the payload of the claim.
Claims lease an issue exclusively. Writes finish it with the pull request, hand it back with a reason, or extend the lease. Reads never change anything, and every claim carries the score it won on, the week's line and the project's directives.
Pricing
Depth is sold. Honesty never is.
Free$0one organisation, the graph and the date1 organisation · 5 repositories · 1 agent · 30 days of history · community supportConnect an organisation
Runner$24 a montha founder with a fleet3 organisations · unlimited repositories · unlimited agents · 365 days of history · email support
Fleet$79 a month, 5 seats, then $12 a seata team across organisationsunlimited organisations · unlimited repositories · unlimited agents · unlimited history · priority support
EnterprisecustomSSO, self-hosted, SLAunlimited organisations · unlimited repositories · unlimited agents · unlimited history · SLA support
Every organisation starts on Free, and what is never sold renders the same on every tier: the launch date, the split, the basis of a pace, the directives. When you stop paying nothing is deleted.
Questions
Before you connect
Does Shiprunner write to my repositories?
No. Ingest is read-only. Mirroring claims as claimed-by labels and writing accepted dependencies as blocked-by links are two switches, off by default, and Connect says which way each is set either way.
How is the date computed?
Required issues divided by pace, from today, as a local date. Required is the launch milestone, every milestone before it and any open blocker of that work wherever it was filed. Pace is closes per day over the last 30 local days, clipped to the project's own age. The basis is printed beside every date.
What if my backlog has no milestones or dependencies?
You get ready, blocked and open counts, the pace, and what this week cost. The date needs a launch line, which needs milestones, and the screen says so instead of guessing.
How do agents avoid collisions?
A claim is a lease: exclusive, expiring, 30 minutes by default, renewed explicitly. At most one agent per area at a time.
Does it measure people?
No. No individual throughput, no leaderboards, no streaks. The unit is the project.
What happens when I stop paying?
Nothing is deleted. History past the free window stays readable and stops growing, agents beyond the first drop to the read tools, and the split simulator shows its last state, read-only.
Connect an organisation. Get a date you can defend.
Free for one organisation, for good. Read-only until you say otherwise.