todo-web:基于 Node.js 的零依赖命令行与 Web 待办管理项目

适合快速搭建轻量待办管理工具,在终端或浏览器中处理个人与团队任务。项目基于 Node.js 零依赖实现,提供 CLI、REST API 和 Web 界面,支持子任务、重复任务、依赖、计时、看板、日历、统计、批量操作与导出。【此简介由AI生成】

分支1Tags0
当前项目代码仓暂无内容

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> 删除待办(别名:rmremove
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

项目介绍

适合快速搭建轻量待办管理工具,在终端或浏览器中处理个人与团队任务。项目基于 Node.js 零依赖实现,提供 CLI、REST API 和 Web 界面,支持子任务、重复任务、依赖、计时、看板、日历、统计、批量操作与导出。【此简介由AI生成】

定制我的领域