# Todo A todo CLI with a built-in [MCP](https://modelcontextprotocol.io/) server. The main idea is that you can tell an MCP-compatible AI assistant "add this to todo" while you're in the middle of something else, and it just works. Todos are stored in a local SQLite database and can be organized with priorities, tags, and automatic git project association. ## Install Requires Rust 1.85+ (edition 2024). ```sh cargo install --path . ``` ## Configuration Set `TODO_DB` to override the default database path (`~/.local/share/todo/todos.db`). ## Usage ```sh # add a todo todo add "fix the login bug" # add with priority and tags todo add "refactor auth module" -p high -t backend -t tech-debt # add without associating to the current git repo todo add "something general" --no-project # list open todos todo ls # list todos for the current repo only todo ls --here # filter by tag or priority todo ls -t backend todo ls -p critical # search todo ls -s "auth" # mark as done todo done 3 # edit text, priority, or tags todo edit 3 "updated description" todo edit 3 -p low todo edit 3 -t new-tag --untag old-tag # remove permanently todo rm 3 # show all tags in use todo tags # clean up completed todos todo purge ``` ## Claude Setup Todo ships with an MCP server that lets Claude manage your todos. Add this to your Claude MCP config: ```json { "mcpServers": { "todo": { "command": "todo", "args": ["mcp-serve"] } } } ``` This gives Claude access to all todo operations — adding, listing, completing, editing, removing, and purging.