#todoist #command-line #todo #api-client #cli

bin+lib doist

doist 是一个用于与 Todoist API 交互的非官方命令行应用程序

30 个版本

0.2.7 2024 年 4 月 23 日
0.2.6 2024 年 2 月 19 日
0.2.5 2023 年 9 月 3 日
0.2.4 2023 年 7 月 5 日
0.1.12 2022 年 7 月 29 日

#465 in 命令行工具

Download history 16/week @ 2024-04-26 1/week @ 2024-05-03 2/week @ 2024-06-28 80/week @ 2024-07-05 185/week @ 2024-07-26 20/week @ 2024-08-02

每月 205 次下载

MIT 许可证

660KB
4K SLoC

doist - Todoist 命令行客户端

Crates.io GitHub Workflow Status

用 Rust 编写的非官方 Todoist API 命令行客户端。

关于

这是一个专注于易用的非官方 Todoist CLI。目前功能尚不完整,但已覆盖一些基本常用场景,并将随着时间不断添加更多功能。

安装

从 crates.io 安装

目前仅通过 cargo install 安装

# Install Rust first: https://www.rust-lang.net.cn/tools/install
cargo install doist
# Binary now available in $HOME/.cargo/bin/doist

从源代码构建

# Install Rust first: https://www.rust-lang.net.cn/tools/install
git clone [email protected]:chaosteil/doist
cd doist
cargo build --release
./target/release/doist

最终会有更多选项。

如何使用

认证

首先,设置您的 API 令牌。进入您的 Todoist 设置,转到 集成 并复制出 API 令牌。将其插入到工具中

doist auth MY_TOKEN

现在您已经认证并通过可以使用工具的其他功能。

列出任务

列出任务并与它们进行交互式操作是使用 CLI 的推荐方式。

默认情况下,列表视图显示今天的任务并允许您与之交互

doist
# Alternatively: `doist list` or `doist l`.

这将允许您输入输出的一部分,直到选择您想要操作的任务(模糊搜索)。选择后,您可以选择各种其他子命令,如关闭、更改到期日期或甚至编辑任务。

您还可以禁用交互模式,以便将输出重定向到其他位置

doist list --nointeractive
# Alternatively: `doist l -n`

默认情况下,所有交互式命令都应用了一个过滤器,以显示最相关的任务。请参阅 文档 了解接受的输入。要使用过滤器,请将其添加到命令参数中

doist list --filter "all"
# Alternatively: `doist l -f all`

交互式(连续)模式

要继续使用 doist list 并在每次操作后应用当前过滤器(例如,您可以一次关闭多个任务),还提供了一个超级交互式(连续)模式。这使得体验更接近官方应用程序。

doist list --interactive
# Alternatively: `doist -i`

要在主列表选择期间退出此模式,请按 ESC

添加任务

添加任务的一个快速方法是

doist add "Do the laundry" --desc "I always forget" --due "tomorrow"
# Alternatively: `doist a "Do the laundry" -D "I always forget" -d tomorrow`

只需任务名称即可,其他所有内容都将默认为

交互式任务创建

另一种完全交互式创建任务的方法是

doist create
# Alternatively: `doist A`

这将提示您输入任务名称,然后提供一个交互式菜单,您可以在其中根据需要填写详细信息。

关于任务的更多信息

您还可以为任务设置优先级

doist add "Party hard" --priority 1
# Alternatively: `doist a "Party hard" -p1`

您还可以执行其他操作以向任务添加更丰富的信息。所有输入都可以部分提供,并将模糊匹配到您可能想到的最近的名字

# Adding project information
doist add "Party hard" --project "personal"
# Alternatively: `doist a "Party hard" -P personal`
# Adding section information. Will automatically attach to the correct project,
# but setting the project will narrow it down.
doist add "Party hard" --section "weekend"
# Alternatively: `doist a "Party hard" -S weekend`
doist add "Party hard" --project personal --section weekend
# Alternatively: `doist a "Party hard" -P personal -S weekend`
# Multiple labels can be provided when creating tasks as well
doist add "Party hard" --label dance --label happy
# Alternatively: `doist a "Party hard" -L dance -L happy`

如果您使用此工具进行自动化工具,您可以直接提供它们的API ID而不是匹配名称。

关闭任务

快速关闭今天任务之一的方法是

doist close
# Alternatively: `doist c`

然后模糊查找您想要关闭的任务。如果您更习惯直接提交ID,这也可以工作

doist close "BIG_ID_FROM_API"
# Alternatively: `doist c BIG_ID_FROM_API`

查看详情

要查看任务及其相关评论的详细信息

doist view
# Alternatively: `doist v`

这接受与doist list相同的参数用于任务选择。

配置设置

禁用颜色

如果您不喜欢表情符号或颜色,您可以通过设置环境变量NO_COLOR来禁用所有doist引起的颜色

NO_COLOR=1 doist

自定义默认过滤器

如果您不喜欢默认过滤器(今天 | 即将到来),您可以在~/.config/doist/config.toml中设置不同的默认过滤器,如下所示

default_filter="all"

有关更多信息,请参阅Todoist关于过滤器的文章

帮助

请随意浏览帮助输出以获取更多帮助

doist help

依赖关系

~18–33MB
~543K SLoC