Skip to content
An Alfred workflow for adding tasks to Todoist
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
__mocks__ test: add integration tests Oct 9, 2018
dist chore(release): 5.7.0 [skip ci] Mar 16, 2019
src chore(project): fix typescript error Mar 16, 2019
test fix: allow labels to be hyphenated Nov 11, 2018
.coveralls.yml build: update build process Oct 2, 2018
.travis.yml ci: fix build failing on greenkeeper branch Dec 5, 2018
LICENSE docs: updated Oct 14, 2018
package-lock.json chore(release): 5.7.0 [skip ci] Mar 16, 2019
package.json ci(project): change asset name Mar 18, 2019
tsconfig.json test: add integration tests Oct 9, 2018
tslint.json test: disable broken tslint rule Oct 27, 2018

Build Status Coverage Status


Add and search Todoist tasks straight from Alfred. It uses Todoist v8 REST API.

Getting started Installation Configuration Usage Contributing

Getting started

  • For this workflow to work you need version 3.x of Alfred and a powerpack licence.
  • Node.js version 8.3 or up. If you install node.js in a non-standard way be advised that the workflow expects the binary to be in /usr/local/bin or /usr/bin


Download and import workflow.


Name Notation Explanation
token ^[0-9a-fA-F]{40}$ (default empty) The todoist API token.
language en, da, pl, zh, ko, de, pt, ja, it, fr, sv, ru, es, nl (default en) The language for natural language date processing (by todoist) and to calculate time to complete a task.
cache_timeout A positive number (default 3600, an hour) The time (in seconds) until the cache is refreshed (until that time todoist information is stored locally to make things a little faster)
anonymous_statistics true or false (default true) Doesn't do much at the moment but I intent to use it to track installs

todo:setting token {api token}

Example: todo:setting token 2d2e2a334c5f36e7a7c43b46e

todo:setting language {language}

Example: todo:setting language nl

todo:setting cache_timeout {time in seconds}

Example: todo:setting cache_timeout 13

todo:setting anonymous_statistics {true or false}

Example: todo:setting anonymous_statistics false


Name Notation Explanation
task Any text except , The task title.
date A date string See the Todoist documentation for supported date formats.
project Either #personal or #[next actions] Use either the hashtag notation or bracket notation if the project name has spaces in it. The project name is case insensitive.
label @label Label names can't contain any whitespace characters. Labels are case insensitive.
priority Either p2 or !!2 A value between 1 (urgent) and 4 (normal)

Search for tasks

todos {query}


Any search query one character or longer. Uses fuzzy search to find the tasks.

Example: todos car => returns (because of fuzzy search):

  • Rent car
  • New cat recipe's
  • Cut Gras tomorrow

Create task

todo {task}, {date}

Example: todo Get things done, tomorrow @ 9 Example: todo Build tree house #home !!2 @15min, tomorrow @ 9


Read the docs.





- Fork and clone the repo
- Install dependacies
- Symlink to project workflow folder

  git clone
  npm install
  npm run setup:dev


Create a new build with

npm run build

Run tests

Run Jest test suite with:

npm run test npm run test:prod

Or run a watcher with

npm run test:watch


For commits I follow the angular commit guidelines and use semantic release to automate builds, semver version updates and changelog creation. The way to make sure this all works is to run:

npm run commit

Which guides you through the motions

Code of conduct


License MIT © Martien Oranje

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.