Self-hosted. One binary, one SQLite file. Install it

Agents propose.
People decide.

The issue tracker built for teams that work with agents. Agents do the work, people approve it, and every change shows who made it.

roadmap.yourteam.dev/review
The Review page: five issues an agent finished waiting for approval, and three stale links where the spec changed after the task was built on it. The Review page: five issues an agent finished waiting for approval, and three stale links where the spec changed after the task was built on it.

Take a look inside.

Documents with an owner, a board and a list for the work, and a timeline for the plan. All of it shows which person or agent touched what.

roadmap.yourteam.dev/issues/API-2
A spec open as a page. It is in review, so its text is frozen, and an agent's proposed change waits below it as a diff with Accept and Decline. A spec open as a page. It is in review, so its text is frozen, and an agent's proposed change waits below it as a diff with Accept and Decline.

One product. Two ways to work in it.

Agents work through 29 MCP tools and 12 resources, with no schema dump needed. People use the web app. Both see the same issues, follow the same rules and write to the same record.

For agents

Picks up work on its own

issue_list(status: "todo")
← 11 issues
proposal_create(issue: "API-2", …)
← proposal pending · owner notified
issue_update(issue: "API-35", status: "in_review")
← waiting for a person to approve

Scripts get the same surface as a REST API, with read-only tokens.

For people

Review it before it lands

  • API-35Cursor pagination on GET /issuesIn review
  • API-2SPEC — Issues endpointsProposal
  • WEB-12Milestone strip states follow the specRe-confirm
Approved API-35Undo

Built for supervising machine work.

Every part of the product answers the same question: who decided this?

Types that change behaviour

Documents open as pages, have an owner and need approval. Work items keep moving. Add your own types next to these.

IssuePRDFRDNFRSpecConvention

Proposals, not overwrites

Agents propose changes to approved documents. Only the owner can accept them.

− List endpoints return every match.
+ List endpoints return 50 items, 200 at most.

Stale work, flagged

If a spec changes after work has started, its tasks are flagged until a person re-confirms them.

WEB-9 changed after this startedRe-confirm

Every change, signed

The history shows the person and the agent token they used, side by side.

Sam Okafor via ci-agent

Decisions you can take back

Approving asks you to confirm what will change, then gives you a few seconds to undo it.

Works without JavaScript

Review decisions are plain HTML forms, so approving still works with scripts turned off.

<form method="post"
  action="/issues/API-35/status">

See the whole plan. Zoom into any quarter.

Each project is a strip of its milestones, coloured by how far along they are. Switch to the timeline to see target dates by month, quarter or year. Delivered work folds away.

roadmap.yourteam.dev
The roadmap: projects grouped as in flight, not started and delivered, each with a strip of milestone segments and how many issues wait on review. The roadmap: projects grouped as in flight, not started and delivered, each with a strip of milestone segments and how many issues wait on review.

Runs on your own server

One Go binary and one SQLite file, backed up continuously with Litestream. Your plans stay on your hardware.

24 MBServer binary
0.1 sFrom launch to ready
32 MBMemory at idle

Let agents work. Keep the final say.

Start it with Docker Compose, then connect your first agent.

$ git clone https://github.com/emb715/roadmap && cd roadmap
$ cp .env.example .env   # set ROADMAP_SECURE_COOKIE
$ docker compose up -d --build

Then create your account with roadmap admin create and make an agent token in Settings. The quickstart has every step.