适合快速搭建轻量待办管理工具,在终端或浏览器中处理个人与团队任务。项目基于 Node.js 零依赖实现,提供 CLI、REST API 和 Web 界面,支持子任务、重复任务、依赖、计时、看板、日历、统计、批量操作与导出。【此简介由AI生成】
当前项目代码仓暂无内容
todo-cli
English | 简体中文
一个零依赖的 Node.js 待办事项管理器,支持 CLI + Web 界面。完整的增删改查、
子任务、循环任务、任务依赖、时间追踪、置顶、批量操作、分类/标签、优先级排序、
截止日期、搜索、统计、看板、日历视图、时间线、导出(JSON / CSV / Markdown)
和自动更新。数据保存在 ~/.todo-cli/todos.json。
环境要求
- Node.js >= 18
快速安装
通过 npm:
npm install -g @walknpm/todo-cli
todo --version # → todo v2.0.0
通过 git:
git clone https://gitcode.com/hw_aishell_projects/todo_cli.git
cd todo_cli
npm install -g .
todo --version # → todo v2.0.0
🚀 Web 界面
启动 Web 服务器:
todo web # 默认端口 3456
todo web 8080 # 自定义端口
npm run web # 通过 npm 脚本
然后在浏览器中打开 http://localhost:3456。
Web 界面功能
| 功能 | 说明 |
|---|---|
| 仪表盘 | 统计卡片、完成率、最近待办、即将到期 |
| 列表视图 | 完整待办列表,支持行内操作、筛选、排序、搜索 |
| 看板 | 拖拽在"待办"和"已完成"列之间移动 |
| 日历 | 月历视图,待办按截止日期显示 |
| 时间线 | 所有待办的时间顺序活动流 |
| 添加/编辑弹窗 | 完整表单,包含循环和置顶 |
| 详情视图 | 子任务管理、依赖关系、时间戳、快捷操作 |
| 时间追踪 | 启动/停止计时器,浮动计时器组件 |
| 深色/浅色主题 | 切换并保存到 localStorage |
| 响应式 | 适配桌面、平板和手机 |
| 键盘快捷键 | n = 新建待办,/ = 搜索,Esc = 关闭弹窗 |
命令
核心命令
| 命令 | 说明 |
|---|---|
add <标题> |
添加新待办 |
list |
列出待办(默认命令) |
show <id> |
查看待办详情 |
done <id> |
标记完成(done --all = 全部完成) |
toggle <id> |
切换完成/待办状态 |
edit <id> |
编辑待办 |
delete <id> |
删除待办(别名:rm、remove) |
duplicate <id> |
复制待办(别名:dup) |
pin <id> |
切换置顶状态 |
search <关键词> |
搜索标题/标签/分类/备注/负责人 |
stats |
显示统计信息 |
export [json|csv|md] |
导出所有待办 |
archive |
归档(删除)所有已完成的待办 |
clear |
删除所有待办 |
web [端口] |
启动 Web 界面服务器(默认:3456) |
update |
更新到最新版本(--check = 仅检查) |
help |
显示帮助 |
子任务
todo subtask add <id> <标题> # 添加子任务
todo subtask done <id> <sid> # 切换子任务完成状态
todo subtask edit <id> <sid> <标题> # 编辑子任务标题
todo subtask delete <id> <sid> # 删除子任务
循环任务
todo recur <id> daily [间隔] # 每 N 天重复
todo recur <id> weekly [间隔] # 每 N 周重复
todo recur <id> monthly [间隔] # 每 N 月重复
todo recur <id> yearly [间隔] # 每 N 年重复
todo recur <id> off # 取消循环
当循环待办被标记为完成时,会自动创建一个新的待办实例,截止日期按循环间隔推进。
任务依赖
todo dep add <id> <依赖id> # 添加依赖(阻止完成)
todo dep remove <id> <依赖id> # 移除依赖
时间追踪
todo timer start <id> # 开始计时(会停止其他正在运行的计时器)
todo timer stop <id> # 停止计时并记录时间
todo timer log <id> <分钟> # 手动记录时间
todo timer # 查看活动计时器
批量操作
todo bulk done <ids...> # 批量完成
todo bulk delete <ids...> # 批量删除
todo bulk priority <ids...> -p <值> # 批量设置优先级
todo bulk category <ids...> -c <值> # 批量设置分类
todo bulk assign <ids...> --assignee <值> # 批量设置负责人
示例
# 添加包含所有字段的待办
todo add "提交报税单" -p high -d 2025-01-31 -c finance -t urgent,monthly --note "附上收据" --estimate 120 --assignee bob
# 列表与筛选
todo list --status pending --sort due
todo list --overdue
todo list --category work --priority high
# 子任务
todo subtask add 1 "调研方案"
todo subtask add 1 "撰写草稿"
todo subtask done 1 1
# 循环任务
todo recur 3 weekly 1
todo done 3 # 自动创建下周的新实例
# 任务依赖
todo dep add 5 3 # 待办 #5 在 #3 完成前被阻止
# 时间追踪
todo timer start 2
todo timer stop 2
todo timer log 2 30
# 置顶与复制
todo pin 1
todo duplicate 3
# 批量操作
todo bulk done 1 2 3
todo bulk priority 1 2 3 -p high
# Web 界面
todo web 8080
# 统计
todo stats
# 导出
todo export csv > todos.csv
todo export md
# 自动更新
todo update --check
todo update
项目结构
todo_cli/
├── bin/
│ └── todo.js # 可执行入口
├── src/
│ ├── store.js # JSON 文件持久化层
│ ├── todo.js # 领域逻辑(增删改查、子任务、循环、依赖、计时、批量...)
│ ├── cli.js # 命令解析、ANSI 颜色、表格输出
│ └── server.js # 零依赖 HTTP 服务器(REST API + 静态文件)
├── web/
│ ├── index.html # SPA 外壳
│ ├── css/
│ │ └── style.css # 现代响应式设计(深色/浅色主题)
│ └── js/
│ └── app.js # SPA 应用逻辑(仪表盘、列表、看板、日历、时间线)
├── skill/
│ ├── SKILL.md
│ ├── README.md
│ └── CHANGELOG.md
├── package.json
├── README.md # 英文文档
└── README.zh-CN.md # 中文文档
许可证
MIT