Corvee
A single-machine, non-git-tracked, persistent, multi-agent-aware CLI task tracker and fact store. Track any work that outlives one session, whether a person or an AI agent picks it back up.
Are you sick of losing track of work across sessions, or of agents that hallucinate and forget between them? Then Corvee might be a helpful tool for you and your agents!
Work loses context between sessions, and concurrent workers collide mid-task. corvee tracks tasks, todos, decisions, and checked-true facts in a local SQLite database instead of chat history or a markdown file, so a person or an agent picks up exactly where the last session left off, and several of them share one project without silently overwriting each other's edits.
See the documentation site for the full pitch, the Quickstart, the Commands reference, the Specification, and the MCP server for hosts that speak Model Context Protocol natively instead of shelling out to the CLI.
flowchart LR
subgraph sessions["Sessions, same project"]
A1["Agent session A"]
A2["Agent session B"]
H["Human"]
end
A1 -->|claim / update| CLI["corvee CLI"]
A2 -->|claim / update| MCP["corvee MCP server"]
H -->|claim / update| CLI
CLI <--> LDB[("Local SQLite\ntasks + facts")]
CLI <--> GDB[("Global SQLite\ntasks + facts")]
MCP <--> LDB
MCP <--> GDB
LDB -.->|"already claimed -> exit 4"| A2
Every task and fact lives in exactly one of these two independent databases,
picked with --global at creation time and encoded in the id from then on.
--scope all (the default for listing) reads both.
Use cases
corvee is not tied to code. A project is any workspace you return to, and a task is any unit of work worth resuming.
- Software work. One repository's backlog, with each agent session claiming the task it works on.
- Research. A reading queue, open questions, and checked findings stored with the source that established each one.
- Writing and editing. Chapters, revisions, and reviews, plus editorial decisions you do not want to look up twice.
- Operations and home labs. Recurring chores and machine-wide facts such
as certificate expirations, filed with
--global. - Personal tracking. Anything with a state and a history, run straight from the terminal with no agent involved.
See Use cases for worked examples.
corvee itself is built with spec-driven development: docs/spec.md
is written and extended before any code, then implemented and refined
across many iterations.
Install
uv tool install corvee
Hosts that speak MCP natively instead of shelling out to the CLI need the
mcp extra and corvee mcp serve (see MCP server for
per-host setup):
uv tool install 'corvee[mcp]'
Quickstart
cd your-project
corvee init # once per project
corvee task add "Fix the flaky auth test" --description "..."
corvee task list --json
corvee task claim TASK-1
corvee task update TASK-1 --state done # claim clears automatically
corvee fact add "requests is Apache-2.0 licensed" --proof "pip show requests"
corvee fact search "license" --json
corvee explain prints a compact, agent-oriented cheat sheet from inside
any initialized project. See Quickstart for facts,
global scope, and the full core loop.
License
Contributing
See CONTRIBUTING.md for the development setup and the project's quality gate.
Release files for corvee 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| corvee-0.2.0.tar.gz | 246.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| corvee-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 373.5 kB
Release files / corvee-0.2.0.tar.gz
| Download URL | corvee-0.2.0.tar.gz |
|---|---|
| Size | 246.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d145b78757648729b2011c85c3918e944a9f8c2b720cf7244a80477b0076916b
|
|
BLAKE2b-256 checksum How to use checksums |
a1e7237798d85fb421d16b4fc119157a08808a21e455ee93ff03537afcc57eaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.
Transparency logRelease files / corvee-0.2.0-py3-none-any.whl
| Download URL | corvee-0.2.0-py3-none-any.whl |
|---|---|
| Size | 127.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9f081e898739eab2647eb190536c53456bf3460a30ddb1a890e93b62fffd19ab
|
|
BLAKE2b-256 checksum How to use checksums |
f6c96fe2a3d9b7c14108195e8ad5e8ea0b5819aff9ce846ea37a8d28bf9e88c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.
Transparency log