A command-line interface for Todoist.
npm install -g @doist/todoist-cli
git clone https://github.com/Doist/todoist-cli.git
cd todoist-cli
npm install
npm run build
npm linkThis makes the td command available globally.
td auth loginThis opens your browser to authenticate with Todoist. Once approved, the token is saved automatically.
Manual token: Get your API token from Todoist Settings > Integrations > Developer:
td auth token "your-token"Environment variable:
export TODOIST_API_TOKEN="your-token"td auth status # check if authenticated
td auth logout # remove saved tokentd 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 project list # all projects
td task view https://app.todoist.com/app/task/buy-milk-8Jx4mVr72kPn3QwB # paste a URLRun td --help or td <command> --help for more options.
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 todayWhen 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.
Tab completion is available for bash, zsh, and fish:
td completion install # prompts for shell
td completion install bash # or: zsh, fishRestart your shell or source your config file to activate. To remove:
td completion uninstallnpm install
npm run build # compile
npm run dev # watch mode
npm run type-check # type check
npm run format # format code
npm test # run tests