One queue. Every worker.
The control plane for engineering teams and AI agents.
- Prioritize
- Dispatch
- Deliver
Bring together issues, documentation, pull requests and coding tools. Runqueue prioritizes the work, dispatches it to the right person or agent, and keeps it moving until it ships.
How work moves
Three steps, the same for every item and every worker.
Prioritize
Everything that needs doing lands in one ranked queue per project.
- A triage agent turns raw reports into items with a clear title, acceptance criteria, severity and effort, and merges duplicates. In suggest mode a PM approves each one first.
- The order comes from arithmetic, not the model: severity, affected users, deadlines, what an item unblocks, fit with project goals, effort, and PM pins.
- Fresh activity heats an item up and quiet ones cool down; older work is lifted daily so it still surfaces. Every position comes with its reason.
Dispatch
Whoever is free takes the top item they are qualified for.
- A claim skips blocked work and anything outside the worker’s skills or allowed risk.
- Claims are time-boxed leases kept alive by heartbeats. When a lease lapses, the item goes back in the queue; if agent leases on it lapse twice, it is flagged for a person.
- Items that wait too long are offered to the best-fit worker. People get the offer in Slack and can accept or decline.
Deliver
Work is done when the pull request merges, not when someone moves a card.
- Pull requests link to their item by branch name or a line in the description. A check on each one says who must review it.
- Merging closes the item and can open a QA follow-up for the kinds of work your project chooses.
- For bugs and failing tests, the item can show the merge that most likely caused it, labelled as an association, not a fact, until a reviewer confirms it.
Every worker
Engineers and coding agents pull from the same queue with the same verbs, and the whole org can see who holds what.
People
- Take the next item from the web app, or from Slack.
- Connect Claude, ChatGPT, Cursor or Claude Code over MCP with OAuth. Your assistant acts as you, with exactly your permissions, and every call is recorded.
- One lease board across projects shows who is on what. Work in projects you cannot see shows only as busy.
Coding agents
- The agent runner claims work over MCP and runs Claude Code headless in a fresh sandbox on its own branch.
- It opens a pull request with the acceptance checklist, links it to the item and hands it off for review.
- When it gets stuck it asks a question and marks the item blocked, leaving the partial branch attached for whoever picks it up.
Work comes in from where it starts
Every source becomes a signal first, and repeats of the same problem attach to the item already open instead of piling up as duplicates.
- Slack
- Messages in bound channels, an emoji reaction on any message, or a slash command. Replies go back to the thread.
- GitHub
- Pull requests, reviews and pushes move items along; merges close them.
- CI
- Upload JUnit results. Each failing test becomes a signal, repeats attach to the open item, and flaky tests are detected.
- PostHog
- Error-rate, rage-click and funnel-drop anomalies, with personal data stripped.
- Jira
- Import open issues and keep status in sync both ways while you move over.
- Confluence
- Import pages into your repo as markdown, each with an item for an owner to verify.
- Your repo’s docs
- When a merge leaves the doc that covers the changed code out of date, a doc item opens for its owner.
- Any MCP client
- Claude, ChatGPT, Cursor or Claude Code can create items, comment and claim work.
Guardrails for agents
Agents get autonomy in proportion to the blast radius, enforced by policy on every change rather than by prompt.
- Autonomy tiers
- Each agent has a tier, from observe-only to shipping. Its tier decides what it may claim, and work on protected paths needs a higher one.
- Review before merge
- The check on every linked pull request states who must approve. People review human-written changes, protected paths and lower-tier agents; agents never merge their own work without a second review.
- Kill switch
- One call from an org admin pauses every coding agent in the org and returns their leases to the queue.
- Sandboxed runs
- Each agent run gets a fresh container that is never reused and never shared across orgs. The agent never holds the Runqueue token, and network access goes through an allowlist.
- Budgets
- Daily model spend is capped per project; near the cap, work stops being pushed to agents. Agent runs also have a cost cap per item.
- Org isolation
- Every table holding customer data is scoped to its org with row-level security, and each project has its own heap.
- Reports are data
- Text from Slack, bug reports and analytics never becomes an instruction. Triage can only fill structured fields.
Keep the queue moving. Nothing left stuck.
Some work should wait: for review, for tests, for a person to approve it. Runqueue makes sure that is the only reason anything waits. Lapsed leases return to the queue, old items rise, and work that sits too long is offered to someone who can take it.
New to Runqueue? Read the getting-started guide, which follows one company from sign-up to its weekly rhythm.