en un clic
todoist-cli
// Manage Todoist tasks, projects, labels, comments, and more via the td CLI
// Manage Todoist tasks, projects, labels, comments, and more via the td CLI
Detailed technical walkthrough covering architecture, test coverage, product tour, and key design decisions.
Generate a hands-on browser walkthrough of a PR's user-facing changes to exercise before review; --publish posts the final version to the PR for QA.
Quick 2-minute status update on current phase, completed work, blockers, and health check.
Pre-PR advisory check for deviations from the project spec. Read-only analysis.
Convert a Markdown file to PDF with GitHub-style formatting using the md2pdf tool.
Audit and update a project README, or bootstrap a new one. Detects tech stack, versions, and services.
| name | todoist-cli |
| description | Manage Todoist tasks, projects, labels, comments, and more via the td CLI |
Use this skill when the user wants to interact with their Todoist tasks.
td <command> --help for available subcommands, flags, and usage examples where provided.td <command> --help for exact flags when you already know the command family.id:..., or a Todoist web URL as a reference.td task <ref>, td project <ref>, td workspace <ref>, td comment <ref>, and td notification <ref> default to view.--project, --task, and --workspace.p1 highest (API 4) through p4 lowest (API 1).--json, but other output and pagination flags vary by family. Many list commands support subsets of --ndjson, --full, --raw, --limit <n>, --all, --cursor <cursor>, or --show-urls; check td <command> --help for the exact surface.--json to return the created or updated entity.--dry-run to preview actions without executing them.--yes.--quiet / -q suppresses success messages. Create commands still print the bare ID for scripting (e.g. id=$(td task add "Buy milk" --quiet)).--no-spinner, --progress-jsonl, -v/--verbose, --accessible, --quiet.td auth login
td auth login --read-only
td auth token
td auth status
td auth logout
Tokens are stored in the OS credential manager when available, with fallback to ~/.config/todoist-cli/config.json. TODOIST_API_TOKEN takes precedence over stored credentials.
td today, td inbox, td upcoming, td completed, td activitytd task list/view/add/update/reschedule/move/complete/uncomplete/delete/browsetd project list/view/create/update/archive/unarchive/delete/move/join/browse/collaborators/permissionstd project progress/health/health-context/activity-stats/analyze-healthtd label ..., td filter ..., td section ..., td workspace ...td comment ..., td notification ..., td reminder ...td template ..., td attachment view <file-url>td stats, td settings ..., td completion ..., td view <todoist-url>, td doctor, td update, td changelogTasks, projects, labels, and filters can be referenced by:
id:xxx - Explicit IDhttps://app.todoist.com/app/task/buy-milk-8Jx4mVr72kPn3QwB or https://app.todoist.com/app/project/work-2pN7vKx49mRq6YhT)Some commands require id: or URL refs (name lookup unavailable): task uncomplete, section archive/unarchive/update/delete/browse, comment update/delete/browse, reminder update/delete, notification view/accept/reject.
td today
td inbox --priority p1
td upcoming 14 --workspace "Work"
td completed --since 2024-01-01 --until 2024-01-31
td activity --type task --event completed
td task add "Buy milk" --due tomorrow
td task list --project "Work" --label "urgent" --priority p1
td task view "Buy milk"
td task add "Plan sprint" --project "Work" --section "Planning" --labels "urgent,review"
td task update "Plan sprint" --deadline "2026-06-01" --assignee me
td task reschedule "Plan sprint" 2026-03-20T14:00:00
td task move "Plan sprint" --project "Personal" --no-section
td task complete "Plan sprint"
td task uncomplete id:123456
td task delete "Plan sprint" --yes
td task browse "Plan sprint"
Useful task flags:
--stdin reads the task description from stdin.--parent, --section, --project, --workspace, --assignee, --labels, --due, --deadline, --duration, and --priority cover most task workflows.td task complete --forever stops recurrence; td task update --no-deadline clears deadlines; td task move --no-parent and --no-section detach from hierarchy.td project list --personal
td project view "Roadmap" --detailed
td project collaborators "Roadmap"
td project create --name "New Project" --color blue
td project update "Roadmap" --favorite
td project archive "Roadmap"
td project unarchive "Roadmap"
td project move "Roadmap" --to-workspace "Acme" --folder "Engineering" --visibility team --yes
td project join id:abc123
td project delete "Roadmap" --yes
td project progress "Roadmap"
td project health "Roadmap"
td project health-context "Roadmap"
td project activity-stats "Roadmap" --weeks 4 --include-weekly
td project analyze-health "Roadmap"
td project archived-count --workspace "Acme"
td project permissions
td workspace list
td workspace view "Acme"
td workspace projects "Acme"
td workspace users "Acme" --role ADMIN,MEMBER
td workspace insights "Acme" --project-ids "id1,id2"
td label list
td label view "urgent"
td label create --name "urgent" --color red
td label update "urgent" --color orange
td label delete "urgent" --yes
td label browse "urgent"
td filter list
td filter view "Urgent work"
td filter create --name "Urgent work" --query "p1 & #Work"
td filter update "Urgent work" --query "p1 & #Work & today"
td filter delete "Urgent work" --yes
td filter browse "Urgent work"
td section list "Roadmap"
td section create --project "Roadmap" --name "In Progress"
td section update id:123 --name "Done"
td section archive id:123
td section unarchive id:123
td section delete id:123 --yes
td section browse id:123
Shared labels can appear in td label list and td label view, but standard update and delete actions only work for labels with IDs.
td comment list "Plan sprint"
td comment list "Roadmap" --project
td comment add "Plan sprint" --content "See attached" --file ./report.pdf
td comment update id:123 --content "Updated text"
td comment delete id:123 --yes
td comment browse id:123
td attachment view "https://files.todoist.com/..."
td notification list --unread
td notification view id:123
td notification accept id:123
td notification reject id:123
td notification read --all --yes
td reminder list "Plan sprint"
td reminder list --type time
td reminder add "Plan sprint" --before 30m
td reminder update id:123 --before 1h
td reminder delete id:123 --yes
td attachment view prints text attachments directly and encodes binary content as base64. Use --json for metadata plus content.
td template export-file "Roadmap" --output template.csv
td template export-url "Roadmap"
td template create --name "New Project" --file template.csv --workspace "Acme"
td template import-file "Roadmap" --file template.csv
td template import-id "Roadmap" --template-id product-launch --locale fr
td stats
td stats goals --daily 10 --weekly 50
td stats vacation --on
td settings view
td settings update --timezone "America/New_York" --time-format 24 --date-format intl
td settings themes
td completion install zsh
td completion uninstall
td view https://app.todoist.com/app/task/buy-milk-abc123
td view https://app.todoist.com/app/today
td doctor
td doctor --offline
td doctor --json
td update --check
td update --channel
td update switch --stable
td update switch --pre-release
td changelog --count 10