Git Product home page Git Product logo

todoist's Introduction

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.18.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 by default stored in $HOME/.config/todoist/config.json

It has following parameters:

{
  "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # todoist api token, required
  "color": "true",                                     # colorize all output, not required, default false
  "shortdatetimeformat": "06/01/02(Mon) 15:04",        # golang datetime format, not required
  "shortdateformat": "06/01/02(Mon)"                   # golang date format, not required
}

Install

Homebrew (Mac OS)

$ brew tap sachaos/todoist
$ brew install todoist

AUR

Nix/NixOS

nix-env -iA nixos.todoist

It's important to notice that if you're using NixOS, the cache and config file will be present at your home directory: ~/.todoist.cache.json and ~/.todoist.config.json.

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. In order to get your API token go to https://todoist.com/prefs/integrations

Sync

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

$ todoist sync

Use with peco/fzf

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.

fish version is here. mordax7/fish-fzf-todoist

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

If installed via homebrew

If installed via homebrew and using zsh (usually this is added to your .zshrc without the $, usually before loading your ZSH plugin manager):

For peco:

$ source $(brew --prefix)/share/zsh/site-functions/_todoist_peco

For fzf:

$ source $(brew --prefix)/share/zsh/site-functions/_todoist_fzf

TODO: fish + homebrew

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

Enable shell completion

You can also enable shell completion by adding the following lines to your .bashrc/.zshrc files.

# Bash
PROG=todoist source "$GOPATH/src/github.com/urfave/cli/autocomplete/bash_autocomplete"
# Zsh
PROG=todoist source "$GOPATH/src/github.com/urfave/cli/autocomplete/zsh_autocomplete"

Author

sachaos

todoist's People

Contributors

aapit avatar andreoliwa avatar blaradox avatar brualan avatar dotcs avatar dsalahutdinov avatar duckunix avatar dwrdx avatar erikboesen avatar felixlinker avatar gitbluub avatar hacdan avatar hokorobi avatar jacobtomlinson avatar kenliu avatar lindenk avatar mordax7 avatar mthowe avatar mursts avatar nv1t avatar pniedzwiedzinski avatar sachaos avatar squiter avatar strangeman avatar tclinken avatar themaxdavitt avatar ubuntudroid avatar wizeman avatar wjchen-vlsi avatar xrendan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.