A small, fast, scriptable command-line client for FreeTodoList. Pipe your tasks through Unix tools, automate them in cron jobs and CI, and let AI agents like Claude Code add tasks while you work.
Web UIs are great for browsing. But your todos live next to your code, your calendar, your email, your shell history. The terminal is where the rest of your tools already are.
Add an item in 200 milliseconds without leaving the terminal. No tab switch, no page load, no mouse.
--json on every command. Pipe to grep, jq, awk, fzf — your existing toolbelt just works.
Daily morning brief from cron. Auto-create a "Ship release" task from a GitHub Action. Bash glue you can write in five minutes.
AI agents already speak shell. Hand them freetodolist and they can manage your list as another tool.
Tools like Claude Code, Cursor, Aider, and Codex CLI are running in the same terminal as you. When you give them freetodolist, your todo list becomes a tool they can use — same as git or curl.
No MCP server to install. No plugin to configure. No glue code. Just a binary on $PATH and an OAuth login.
Prefer a deeper integration? FreeTodoList also speaks MCP natively for Claude Desktop, claude.ai, and ChatGPT Connectors.
Single static binary — no runtime, no dependencies. Pick your platform.
All releases, checksums, and source builds:
github.com/seanbehan/freetodolist-cli/releases.
Prefer to build from source? git clone github.com/seanbehan/freetodolist-cli && cd freetodolist-cli && go build.
The xattr step is needed once on macOS because the binary isn't yet code-signed — without it, Gatekeeper blocks unsigned executables downloaded via the browser.
Windows: unzip and put freetodolist.exe on your PATH.
Token resolution: --token flag > FREETODOLIST_TOKEN env > saved credentials at ~/.config/freetodolist/credentials.json.
We publish a SKILL.md at a discoverable URL, indexed in our agent-skills catalog. Drop it into Claude Code's project skills directory, paste it into a system prompt, or let an agent fetch it on demand — your model now knows how to drive freetodolist idiomatically.
A few examples of the kind of thing the CLI makes easy.
Show the day's overdue tasks every time you open a new terminal.
Wrap it in a one-letter alias for friction-free capture.
Pipe items through fzf, mark the picked one done.
File a "Investigate flaky test" task whenever a CI job fails.
freetodolist login walks you through the same OAuth 2.1 + PKCE flow our MCP integration uses: it spawns a loopback server, opens your browser, and exchanges the resulting code for a Bearer token saved at ~/.config/freetodolist/credentials.json (mode 0600). The token also works as your API Bearer — the same one documented in the
API reference.
You can revoke it any time from
your Profile page after logging in.
Want even tighter AI integration? Try the MCP server.