Skip to content
Todoist CLI Client. I ❤️ Todoist and CLI.
Go Yacc Shell Makefile Dockerfile
Branch: master
Clone or download
Latest commit ef5aa3d Jan 11, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml Oct 7, 2019
lib Fix typo in due date JSON Sep 12, 2019
snap fixed snapcraft.yaml Apr 7, 2019
.gitignore Add generated filter_parser Jan 11, 2019
Dockerfile Fix issue with 'go get' in Dockerfile Nov 23, 2019
LICENSE 🎉 Add LICENSE Apr 9, 2017
Makefile Add release target Jan 11, 2020
README.md Update version Jan 11, 2020
add.go Change priority mapping on add command Aug 7, 2019
cache.go Construct item & project tree Aug 15, 2019
close.go ♻️ Fit to new API Jun 4, 2017
completed.go Construct item & project tree Aug 15, 2019
delete.go Fix a few minor issues identified during review. Jan 5, 2018
filter_eval.go Fix bug of priority filter Aug 15, 2019
filter_eval_test.go Fix bug of priority filter Aug 15, 2019
filter_parser.go Add generated filter_parser Jan 11, 2019
filter_parser.y Implement labels parser Sep 26, 2018
filter_parser_test.go Implement labels parser Sep 26, 2018
format.go Construct item & project tree Aug 15, 2019
go.mod drop mitchellh/go-homedir dependency Apr 29, 2019
go.sum drop mitchellh/go-homedir dependency Apr 29, 2019
karma.go ♻️ Fit to new API Jun 4, 2017
labels.go Add header option Sep 25, 2018
list.go Add more confortable error message Aug 26, 2019
main.go Update version Jan 11, 2020
modify.go Fix modify command bug Aug 15, 2019
projects.go Construct item & project tree Aug 15, 2019
quick.go Quick command now syncs afterwards Nov 10, 2017
show.go Construct item & project tree Aug 15, 2019
sync.go
todoist_functions.sh 👍 Fix gnu date is incompatible with bsd date issue May 5, 2017
todoist_functions_fzf.sh add functions to use fzf as task picker Jul 3, 2019
utils.go Add csv format option Jan 20, 2017

README.md

Todoist CLI client

Todoist CLI Client, written in Golang.

Description

Todoist is a cool TODO list web application. This program will let you use the Todoist in CLI.

color image

Demo (with peco)

Add Task

Add task

Close Task

Close task

Usage

$ todoist --help
NAME:
   todoist - Todoist CLI Client

USAGE:
   todoist [global options] command [command options] [arguments...]

VERSION:
   0.15.0

COMMANDS:
     list, l                  Show all tasks
     show                     Show task detail
     completed-list, c-l, cl  Show all completed tasks (only premium users)
     add, a                   Add task
     modify, m                Modify task
     close, c                 Close task
     delete, d                Delete task
     labels                   Show all labels
     projects                 Show all projects
     karma                    Show karma
     sync, s                  Sync cache
     quick, q                 Quick add a task
     help, h                  Show a list of commands or help for one command

GLOBAL OPTIONS:
   --color              colorize output
   --csv                output in CSV format
   --debug              output logs
   --namespace          display parent task like namespace
   --indent             display children task with indent
   --project-namespace  display parent project like namespace
   --help, -h           show help
   --version, -v        print the version

list --filter

You can filter tasks by --filter option on list subcommand. The filter syntax is base on todoist official filter syntax.

Supported filter is here.

e.g. List tasks which over due date and have high priority

todoist list --filter '(overdue | today) & !p1'

Config

Config stored in $HOME/.todoist.config.json

It has following parameters:

{
  "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # todoist api token, required
  "color": "true"                                      # colorize all output, not required, default false
}

Install

Homebrew (Mac OS)

$ brew tap sachaos/todoist
$ brew install todoist

AUR

Docker

$ git clone https://github.com/sachaos/todoist.git
$ cd todoist
$ make docker-build token=xxxxxxxxxxxxxxxxxxxx
$ make docker-run

You will be running the next commands from inside the container.

PS: We add a step that is run sync before any command, so you will be always up to date!

Build it yourself

You need go 1.12.

$ mkdir -p $GOPATH/src/github.com/sachaos
$ cd $GOPATH/src/github.com/sachaos
$ git clone https://github.com/sachaos/todoist.git
$ cd todoist
$ make install

Register API token

When you run todoist first time, you will be asked your Todoist API token. Please input Todoist API token and register it.

Sync

After register API token, you should sync with todoist.com by sync sub command, like below.

$ todoist sync

Use with peco

RECOMMENDED

install peco and load todoist_functions.sh on your .zshrc, like below.

fish version is here. ka2n/fish-peco_todoist Thanks @ka2n!

If you would prefer to use fzf instead load todoist_functions_fzf.sh like below.

$ source "$GOPATH/src/github.com/sachaos/todoist/todoist_functions.sh"

keybind

<C-x> t t: select task with peco
<C-x> t p: select project with peco
<C-x> t l: select labels with peco
<C-x> t c: select task and close with peco
<C-x> t d: select date
<C-x> t o: select task, and open it with browser when has url

Author

sachaos

You can’t perform that action at this time.