仅支持 Python 3,必须用 pip3 安装;Windows 上使用交互模式需额外安装 windows-curses;默认编辑器为 vi,需用 EDITOR 环境变量或配置项覆盖
pip3 install td-cliREADME 未说明,仅要求 Python 3,无 GPU 或显存要求
用 Python 写的命令行 todo 管理器,支持跨多个项目分组管理待办事项
命令行待办管理工具,用简单命令记录和整理任务,适合习惯在终端里工作的人。
核心能力
- 按 group 分组管理待办,可为每个 git 项目单独设默认组
- 用 id 子串即可完成待办,无需输入完整 id
- 支持交互模式,Windows 需额外安装 windows-curses
- 待办详情可用编辑器打开,格式可配为 Markdown 等
- 通过 TD_CLI_HOME 等环境变量控制数据库与配置位置
容易踩的坑
- v.1.3.0Version 1.3.0最新正式版2020-07-08 · 2020-07-08 23:04 UTC
Allow setting per-project config that works for a monorepo directory style.
- v1.2.4Version 1.2.42019-11-21 · 2019-11-21 15:09 UTC
查看更新说明
Contains fix for piping output
- v1.1.0Version 1.1.02019-02-25 · 2019-02-25 21:54 UTC
查看更新说明
Allows firing up interactive mode for an empty list of todos.
Allows adding a todo from
deletedmode. - v1.0.0Version 1.0.02019-02-24 · 2019-02-24 22:18 UTC
查看更新说明
Adds more features to the interactive mode (add, edit, delete)
Adds the
countcommand to get the todos count based on filtertd count --completed --group my-group
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Installation
td-cli only works for python 3, so it needs to be installed with pip3
pip3 install td-cli
Windows 10
In order to use the interactive mode on Windows, you'll have to install windows-curses
pip install windows-curses
In addition to that, Windows Terminal is recommended for better UX.
Getting started
Run td --help to see possible commands.
Here are some to get you started:
-
Run
tdto list all your todos. -
Run
td add "my new awesome todo"to add a new todo. -
Run
td <id> completeto complete your todo. You don't have to specify the wholeid, a substring will do. It'll fetch the first one that it finds in the same order as when you list your todos.
Note that global is a preserved group name where you can list all your global groups. You can always set it as the default with:
td group global preset
API
Check out the api.
Configuring
The location of your todos and your configuration will depend on these environment variables (in this order):
- TD_CLI_HOME: determines where your
todo.dbandtodo.cfgfile will live - XDG_CONFIG_HOME: a fallback if
$TD_CLI_HOMEis not set - HOME: a fallback if
$XDG_CONFIG_HOMEis not set. If$HOMEis used; all files will be transformed to a dotfile, i.e.~/.todo.dband~/.todo.cfg.
Database name
Your database instance will be located in in the before-mentioned configuration directory.
By default the database will be named todo.
You can change your database name by specifying database_name in your $TD_CLI_HOME/.todo.cfg file:
[settings]
database_name: something_else
This results in a database instance at $TD_CLI_HOME/.something_else.db
Format
You can specify your preferred format of your todo's details via the format config keyword:
format: md
This would result in the .md (Markdown) file extension when editing a todo. This allows you to use the power of your editor to e.g. syntax highlight the details, and etc.
Editor
When editing a todo, td <id> edit, you can both specify the todo's name and the todo's details via options (see td <id> edit --help). If no option is specified, your todo will be opened in vi by default (your environement EDITOR will override this) where you can edit the todo's details. You can change the default editor by updating your config:
[settings]
editor: nvim
Only list uncompleted todos
When listing todos, by default td-cli will list both completed and uncompleted todos. If you want to only list uncompleted todos by default, then you can apply the completed config:
[settings]
completed: 0
Group
When listing todos, you have the option of specifying what group to list from:
td -g my-group
# or
td g my-group
If no group is provided, td will list from the current default group. You can globally set the default group with:
td g my-group preset
However, there's an option to set the default group per git project (this is not possible from the root config $TD_CLI_HOME/.todo.cfg).
In any root of your projects, you can create a .td.cfg config file to specify what group to default on (this will override the global default group):
[settings]
group: my-group
If you run td within your git project, td will default to my-group.
I recommend globally ignoring .td.cfg in ~/.gitignore.