A review you can do in a few minutes
The inbox shows one scenario at a time, in plain language. Approve it, ask for changes or reject it. Only then does the agent start building.
OpenUsecase is for people who work with coding agents. Before it builds, an agent writes down the behaviour. You approve it, and tests carry its ID.
Feature: Change the primary colour
UC-142/S2 Reject an invalid colour
Given I am on the settings page
When I enter a value that isn't a colour
Then I see an error
And the app keeps the current colour
✓ Approved by Mia
✓ UC-142/S2 rejects an invalid colour
done · passing
An agent turns a short request into code, then writes tests for that code. Every test passes. You find out what it decided when you read the diff, or when a customer does.
Agreed too lateYou see the decisions after they're built, inside a diff.
Plans disappearThe plan lives in a chat that ends with the task.
Nothing to askMonths later, nobody can say what the product should do.
Each use case goes from a proposal to a permanent record of what your product does.
The inbox shows one scenario at a time, in plain language. Approve it, ask for changes or reject it. Only then does the agent start building.
A use case is done when tagged tests pass on the default branch. A broken test turns
it to done · failing.
An admin sets one mode per agent, and each use case records how it was approved. No agent can change its own mode.
Agents answer from the catalogue and tell you how well it's backed up: tested, only proposed or not covered.
It fails unless the PR names approved use cases, or says why it has none, and every scenario has a tagged test.
Use cases stay after they ship, grouped by area and searchable. Rejected ones stay too, so nobody proposes them again unaware.
Agents work over MCP, people in the inbox, and CI sends test results. Each has its own identity, so you can see who did what.
One Docker image and Postgres, configured with environment variables, with a default for every setting.
Link OpenPurpose to mark glossary terms in the inbox and keep agents to them. It's optional.
Some things have no test. A person can verify a scenario, and it says so.
Everything you put in comes out again, and goes back in.
Run it on your own server, then add a team, a project and an agent in Settings.
$ git clone https://github.com/openstuff-dev/open-usecase
$ cd open-usecase && cp .env.example .env
$ docker compose up --build
OpenUsecase is an MCP server, and it tells an agent the workflow when it connects. Ask for something a user can see. The agent proposes a use case and stops.
Approve it in the inbox and the agent builds it. Name tests with the scenario's ID,
and CI turns the use case to done · passing.
| What matters | A plan in a chat or a file | OpenUsecase |
|---|---|---|
| You agree before it's built | PartlyIf you read it, and the agent waits. | YesThe agent stops until a use case is approved. |
| Tests point back at what you agreed | NoNothing links a test to a plan. | YesEach test carries a scenario's ID. |
| Still true a year later | NoIt goes stale without saying so. | YesA failing test shows on the use case. |
| You own the data | PartlyA file is yours. A chat may not be. | YesSelf-host it, and export everything. |
$ git clone https://github.com/openstuff-dev/open-usecase
$ cd open-usecase && cp .env.example .env
$ docker compose up --build
Part of the OpenStuff family: tools built on one shared toolkit.
Each team has its own projects, people and agents, kept apart from the other teams in the database itself.
A project can span several repositories, with its use cases grouped by area.
Separate teams on one server, kept apart with Postgres row-level security.
An agent can't manage tokens or permissions, not even its own.
Admins manage the team. Members review. Agents and CI each have their own token.
Tokens are stored as hashes, and each one belongs to a single agent or CI job.
Move a team's use cases, with their IDs and history, to another server.
Yes. OpenUsecase is open source under the MIT licence, so self-hosting costs nothing but your server.
Yes, and for now that's the only way to run it. Docker Compose starts the app and Postgres, configured with environment variables.
In your own Postgres. CI reports are read and thrown away, and you can export a team's data at any time.
No, only changes a user can see. Refactors, dependency bumps and CI need none. If an agent is unsure, it asks.
Any agent that speaks MCP. So far, we've run it with Claude Code. Test results come in as JUnit XML, which most test runners can write.
The server can prove that an approving token didn't write the use case, but it can't see who holds a token. A sub-agent normally counts as its parent. For a real second opinion, run the reviewer in CI with a token the proposing agent can't read.