Cadence
There are thousands of todo CLIs. Cadence is the one built for an AI agent to run as a first-class user, not a bolted-on chat wrapper on top of a human tool — and it turns git, which you already have installed, into the undo/history/audit/sync layer instead of building a bespoke (and weaker) version of all four.
What that buys you, concretely:
- Hand your agent a messy brain-dump and get tracked subtasks back.
cadence decompose 12 --into "book flights" "book hotel" "pack"(or thedecompose_taskMCP tool) turns one vague task into real, independently completable children — no more one giant to-do that never gets checked off. - Ask "why did this get bumped to top priority" and get a real answer.
Every
reprioritise,schedule, and edit is a git commit under the hood, so the answer isgit log/git blameon your own task store, not a guess or a feature nobody built. - Undo a bad agent action instantly, with the same guarantee git gives
your code.
cadence undoreverts the last change — yours or your agent's — because it is a git revert, not a bespoke undo stack that only covers some operations. - Keep two devices' task lists in sync without running a server.
cadence syncpulls and pushes against a git remote you already control (a repo, a USB stick, anything git can reach) — no account, no hosted backend, no uptime to worry about.
The plan is to publish Cadence as a public, installable, open-source project by 6 November 2026. That date is a delivery commitment, not an estimate.
Status
Published on PyPI as cadence-todo
— install with pip install cadence-todo. It builds, runs, and is tested
from a fresh clone, and CI is green on a clean GitHub-hosted runner (see the
finish-line checklist below for what's still outstanding). See
docs/bakeoff.md for the five candidate concepts we
researched, the evidence behind each, and which one we chose and why, and
docs/human-surface.md for the CLI's binding
design spec.
Install
pip install cadence-todo
cadence add "Buy milk" --due 2026-09-01 --priority high
cadence list
cadence done 1
By default tasks live in ~/.cadence/cadence.db (a local SQLite file) with
a git-backed history alongside it. Set CADENCE_DB_PATH to point at a
scratch file instead (used by the test suite and useful for an agent that
wants an isolated store).
Start the MCP server (agent surface) over stdio, exposing tools such as
add_task, list_tasks, complete_task, schedule_task,
decompose_task, reprioritise_task, undo, and sync_tasks with
structured JSON returns:
cadence mcp
Building from source
git clone https://github.com/dominicplouffe/Cadence.git
cd Cadence
pip install -e .
pip install pytest
pytest -q
What "agentic-first" means here
- Primary interface is agent-legible by design. An agent that has never read the docs should be able to work out what each tool does, what it returns, and what it did wrong, from the interface itself.
- A human surface is not optional. A capability that exists only for agents is half-built, and so is one that exists only for humans.
- Local-first bias. We prefer something a person installs with a single command and owns the data of, over a hosted multi-tenant web app.
The finish line
Three things must be true and independently checkable by someone outside this company, on or before the committed date:
- Published on a public package registry, installable with one command.
- CI on a clean GitHub-hosted runner goes green on the full suite, including an end-to-end test that installs the published artifact and drives it.
- A committed transcript exists of an agent with no access to this repository completing a fixed ten-step script using only the published package.
Contributing
Not yet open for external contributions — the project is pre-publication. Once published, this section will describe how to build from a fresh clone, run the test suite, and submit changes.
License
MIT — see LICENSE.
Metadata
Release files for cadence-todo 0.2.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cadence_todo-0.2.7.tar.gz | 53.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cadence_todo-0.2.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.0 kB
Release files / cadence_todo-0.2.7.tar.gz
| Download URL | cadence_todo-0.2.7.tar.gz |
|---|---|
| Size | 53.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0cecb4c7bf9d8abb78bd05843cdceab17977450cdd0e5f0513245ff7fe13363
|
|
BLAKE2b-256 checksum How to use checksums |
d7ef5280fec08bfc32a8127f3b576800f6f7a1c8e1f70a02f38bdd3dfcc7a184
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / cadence_todo-0.2.7-py3-none-any.whl
| Download URL | cadence_todo-0.2.7-py3-none-any.whl |
|---|---|
| Size | 38.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ec25669380cabc3a86d6175ecfa48431443bfac0d12fb8d0e906eb5d54d9d98a
|
|
BLAKE2b-256 checksum How to use checksums |
342d5107f7cdd2bdb1ccaad17ae4b5bf7561c2dd93c25d77f7c125900d80291b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for cadence-todo 0.2.7
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.