
Todoist CLI
CLITodoist 官方命令行 td:用自然语言快速添加任务,查看今日、收件箱与各项目的待办,支持只读授权,还能一键为 Claude Code、Codex 等安装配套 skill。需要 Todoist 账号。
Todoist CLI
A command-line interface for Todoist.
Installation
npm install -g @doist/todoist-cli
Agent Skills
Install skills for your coding agent:
td skill install claude-code
td skill install codex
td skill install copilot
td skill install cursor
td skill install gemini
td skill install pi
td skill install universal
Skills are installed to ~/<agent-dir>/skills/todoist-cli/SKILL.md (e.g. ~/.claude/ for claude-code, ~/.agents/ for universal, etc.). When updating the CLI, installed skills are updated automatically. The universal agent is compatible with Amp, OpenCode, and other agents that read from ~/.agents/.
The gemini agent installs to ~/.gemini/config/skills/todoist-cli/SKILL.md, the global location read by Antigravity, Antigravity CLI and Antigravity IDE alike. For project-scoped Antigravity skills use td skill install universal --local, which writes to .agents/skills/ — the workspace directory Antigravity reads.
td skill list
td skill uninstall <agent>
Uninstallation
First, remove any installed agent skills:
td skill uninstall <agent>
Then uninstall the CLI:
npm uninstall -g @doist/todoist-cli
Local Setup
git clone https://github.com/Doist/todoist-cli.git
cd todoist-cli
npm install
npm run build
npm link
This makes the td command available globally.
Setup
td auth login
This opens your browser to authenticate with Todoist. Once approved, the token is stored in your OS credential manager:
- macOS: Keychain
- Windows: Credential Manager
- Linux: Secret Service/libsecret
Secure storage is required by default. If it is unavailable, login fails without writing a credential to disk. To explicitly use plaintext config-file storage, pass --credential-store=plaintext; the CLI always prints a warning when it writes a credential this way. Existing plaintext tokens are migrated automatically the next time the CLI reads them successfully from the config file.
For a read-only OAuth token (scope data:read), run:
td auth login --read-only
To explicitly store a credential in plaintext instead of the OS credential manager:
td auth login --credential-store=plaintext
In read-only mode, commands that change Todoist data (create/update/delete/complete/move/archive, etc.) are blocked by the CLI.
Some commands need opt-in OAuth scopes, requested via --additional-scopes=<list> (comma-separated):
td auth login --additional-scopes=app-management # td apps ...
td auth login --additional-scopes=backups # td backup ...
td auth login --additional-scopes=billing # td billing ...
Run td auth login --help for the full list. When a command fails for lack of a scope, the error suggests a re-login command that preserves whichever flags were originally used.
Alternative methods
Manual token: Get your API token from Todoist Settings > Integrations > Developer:
td auth token "your-token"
Manual tokens use the system credential manager by default too. To explicitly store one
in plaintext, add --credential-store=plaintext; the CLI prints a warning after the write.
Environment variable:
export TODOIST_API_TOKEN="your-token"
TODOIST_API_TOKEN always takes priority over the stored token.
Note: externally provided tokens (TODOIST_API_TOKEN or td auth token) are treated as unknown scope and assumed write-capable. The CLI cannot currently auto-detect OAuth scope for these tokens.
Auth commands
td auth status # check if authenticated + mode (read-only/read-write/unknown)
td auth logout # remove saved token and auth metadata
To switch back to normal write access, re-run:
td auth login
Usage
td add "Buy milk tomorrow #Shopping" # quick add with natural language
td today # tasks due today + overdue
td inbox # inbox tasks
td task list # all tasks
td task list --project "Work" # tasks in project
td task list --project "Work" --ids-only # one task ID per line
td project list # all projects
td task view https://app.todoist.com/app/task/buy-milk-8Jx4mVr72kPn3QwB # paste a URL
Run td --help or td <command> --help for more options.
Supported list commands accept --ids-only when each result has a stable ID. It prints one
ID per line and no human-readable empty-state text. When more pages exist, the pagination
notice goes to stderr so stdout remains safe for pipes. --ids-only, --json, and --ndjson
are mutually exclusive.
Accessibility
For users who rely on screen readers or cannot distinguish colors, use the --accessible flag or set TD_ACCESSIBLE=1 to add text labels to color-coded output:
td today --accessible
# or
export TD_ACCESSIBLE=1
td today
When active, due dates get a due: prefix, deadlines get a deadline: prefix, durations get a ~ prefix, and favorite items get a ★ suffix. Default output without the flag is unchanged.
Extensions
Extensions add commands to td. An extension is an executable named td-<name> that runs as td <name>, and it can be written in any language:
td extension install owner/td-standup # from GitHub
td standup
td extension list
To write your own, start with td extension create <name> and see docs/extensions.md.
Shell Completions
Tab completion is available for bash, zsh, fish, and PowerShell:
td completion install # prompts for shell
td completion install bash # or: zsh, fish, pwsh
Restart your shell or source your config file to activate. To remove:
td completion uninstall
Development
npm install
npm run build # compile
npm run dev # watch mode
npm run type-check # type check
npm run fix # auto-fix lint + format
npm test # run tests
相關資源

Todoist MCP Server
MCPTodoist 官方 MCP:让 agent 查找、创建、更新和完成任务与项目,按日期查看待办;官方提供托管的远程服务并通过 OAuth 登录,也可作为工具库接入自己的 AI 应用。
Doist/todoist-mcp559
lark-cli(飞书 CLI)
CLI飞书官方命令行,200 多条命令覆盖消息、文档、多维表格、电子表格、日历、邮件、审批、OKR、会议与妙记,自带 20 多个 lark-* Agent Skill,输出结构化;需先创建飞书应用并登录授权。
larksuite/cli17.7k
Taskwarrior
CLI老牌命令行待办管理工具,支持项目、标签、优先级、截止日期与自定义报表,可导出 JSON,并有丰富的钩子与扩展生态,适合让 agent 记录和跟踪任务。
GothenburgBitFactory/taskwarrior6.1k
DingTalk Workspace CLI (dws)
CLI钉钉官方开源命令行 dws,覆盖 AI 表格、日程、通讯录、群聊与机器人、待办、审批、考勤、日志、文档、听记与邮箱,输出结构化 JSON 并自带 Agent Skills;需企业管理员开通 CLI 访问后登录授权。
DingTalk-Real-AI/dingtalk-workspace-cli3.7k
wecom-cli(企业微信 CLI)
CLI企业微信官方命令行,覆盖消息、邮件、文档、在线表格与智能表格、待办、日程、会议纪要、微盘与通讯录,配套 Agent Skills;需 Node.js 18+ 与企业微信账号扫码授权。
WecomTeam/wecom-cli3.2k
Basecamp CLI
CLIBasecamp 官方命令行,可管理项目、待办、看板卡片、消息与文件,在项目群聊发言、跨项目搜索,输出带下一步提示的 JSON,自带 Agent Skill 与 Claude Code、Codex 插件。需 Basecamp 账号,安装脚本会引导浏览器授权。
basecamp/basecamp-cli290