About Petodo
Petodo is a task-list service with a CLI and MCP server for people using AI assistants. It lets assistants manage the same account-backed list as the desktop pet app, including recurring tasks and reports.
Key features
- 01List and filter tasks
- 02Add, edit, and delete tasks
- 03Complete and undo tasks
- 04Parse due times and repeats
- 05Report overdue tasks and streaks
Use cases
- 01Manage tasks through an AI assistant
- 02Schedule a task from a time in its title
- 03Set up recurring daily or weekly tasks
- 04Review overdue and upcoming tasks
MCP support
The `petodo mcp` command runs an MCP server over stdin and stdout. Connected assistants can list, add, complete, edit, delete, and summarize tasks in the user's account.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
6Saved tool list · updated 1d ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| day | enum | No | Defaults to all.today | tomorrow | all |
| status | enum | No | Defaults to open.open | done | all |
Details
From the project READMEpetodo-cli
Your Petodo to-do list from the terminal: and an MCP server, so Claude Code, Claude Desktop and Cursor can work the same list directly.
Petodo itself is a desktop pet that holds your to-do list. This is the same list, reached over the network, so it works whether or not the app is running on the machine you are typing on.
npx petodo-cli login
npx petodo-cli add "call Sam 2pm"
Install it properly if you use it more than once:
npm install -g petodo-cli
petodo list
Node 18 or newer. No dependencies.
Signing in
petodo login
Prints a short code and opens your browser. Check the code on screen matches the one in the terminal before approving. That is what stops someone else's sign-in attempt landing in your account.
The token is written to ~/.petodo/config.json, readable only by you. petodo logout revokes it and removes the file.
Everyday use
petodo list [--all|--done] [--today|--tomorrow]
petodo add "call Sam 2pm" times in the text are understood
petodo done <id> an id prefix, or part of the title, is enough
petodo undo <id>
petodo rm <id>
petodo edit <id> [--title "..."] [--due "3pm"] [--clear-due] [--today|--tomorrow]
petodo report what is overdue, due soon, and your streak
petodo whoami
Ids are UUIDs and petodo list shows the first eight characters, which is all
you ever need to type. If that is still ambiguous the command says so rather
than guessing:
$ petodo done bbbb
"bbbb" matches 2 tasks. Use more of the id.
Words that name a time are read out of the title in your own clock:
petodo add "call Sam 2pm" files the task for 2pm today and arms the
reminders. Pass --due only when you want to override that.
So are words that mean "again":
$ petodo add "gym every weekday at 6pm"
repeating 4f2a91cc gym
Every weekday at 6:00 PM
first one 6:00 PM
A repeat appears one day at a time. petodo list shows today's with a ↻,
and the rules themselves underneath. petodo done on one finishes that day;
petodo rm on a rule stops it repeating and takes the days still to come.
With an assistant
petodo mcp runs an MCP server on stdin and
stdout. You do not normally run it yourself; you register it once:
petodo connect claude-code # or claude-desktop, or cursor
petodo connect --print # the config, to paste yourself
The assistant can then list, add, complete, edit, delete and summarise your tasks. Everything it does is under your own account and shows up in the app immediately.
For an assistant that wants HTTP rather than MCP, make it its own key:
petodo keys create "Claude"
petodo keys list
petodo keys revoke <id>
A key reaches the list and nothing else. It cannot read your email address, make another key, or remove a device. Take one away and only that assistant loses access.
Environment
| Variable | What it does |
|---|---|
PETODO_TOKEN | Use this token instead of the signed-in one, for this command only. |
PETODO_ENDPOINT | Point at a different API. Defaults to https://app.petodoapp.com/api. |
PETODO_HOME | Where the config lives. Defaults to ~/.petodo. |
The environment always wins over the stored config, so a one-off override stays a one-off.
Licence
MIT.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.