todo-cli(命令行待办事项工具)
这个待办事项应用,真的能帮你把事情办成。
一个基于终端的任务管理器,其中AI代理为您完成待办事项。由Gemini CLI和MCP工具提供支持。 为什么? 最好的待办事项清单不是用来追踪任务的,而是用来完成任务的。
- 📧 查看你的电子邮件并打打电话
- 🗺️ 搜索服务并请求报价
- 📅 安排会议并管理您的日历
- 🔍 研究课题并编制报告
……以及任何你能在提示中描述的其他内容
特点/功能
- 📋 代表“清单”或“待办事项列表”。 终端用户界面(Terminal UI) - 使用blessed库构建的全屏待办事项列表
- 🤖 机器人 AI代理集成 - 每个任务都会在tmux会话中自动获得一个Gemini CLI代理
- 👀 眼睛图标(表示看或好奇) 实时预览 - 在分屏视图(40/60 布局)中查看代理输出
- ⌨️(键盘) 键盘驱动 - 类Vim的导航和快捷键
- 💾 磁盘 持久化存储 - 任务已保存至
~/.config/todo-cli/tasks.json - 🎯(瞄准靶心) YOLO模式 - 可选的代理操作自动审批
- ✏️ 外部编辑器 - 按 Ctrl+E 在 vim/nano 中编辑
先决条件
- Node.js v18+
- tmux(终端复用器) - 安装指南
- Gemini 命令行界面 (CLI)
使用方法
设置Gemini-cli:
允许Gemini-cli使用自定义系统提示符 .gemini
cp .env.example .env有一个例子 system.md 在……之下 .gemini,它包括 ElevenLabs Agent 提示词指南 优化电话沟通。更新系统提示,以调整您希望客服人员执行的操作
设置工具
一些有用的MCP(多通道处理器/模块等,具体含义根据上下文确定):
- 谷歌地图 获取位置数据
- Gmail(谷歌邮箱) 访问Gmail,获取信息或发送电子邮件
- 谷歌日历 访问日历,获取事件或更新日历
- Eleven Labs(十一实验室) 为电话交流创建对话代理
注: MCP服务器以与您的用户帐户相同的权限运行。请仅连接到可信任的MCP服务器,并在使用前审查其代码。
为您的代理提供上下文
在(指定位置)创建文本文件 /user_data 目录,以便您的代理能够访问重要信息。代理可以在需要时使用Gemini CLI内置的文件读取和搜索功能来阅读这些文件。
这种基于文件的简单方法提供了持久性存储——您的偏好设置、账户详情和上下文信息都以常规文本文件的形式存储,您可以轻松查看和编辑这些文件。
开始使用
启动应用程序:
npm start快捷键
任务管理
a- 添加新任务(标题 → 详细信息 → YOLO模式)Enter- 打开/附加到代理会话(按 Ctrl+q 返回)x- 切换任务完成/未完成状态d- 删除任务并终止会话j/k或者↑/↓- 导航任务
预览导航
[- 向上滚动预览]- 向下滚动预览g- 跳转到预览的底部
应用程序
q- 退出应用程序
输入模式
Enter- 提交并进入下一步Ctrl+E- 打开外部编辑器($EDITOR)以实现完整的光标控制Escape- 取消
创建任务
当你添加任务时,系统会提示你:
- 任务标题 - 简要说明要做什么
- 详情 (可选)- 为代理提供的额外上下文
- YOLO模式 (y/N) - 自动批准所有代理操作
提示: 在任意输入框中按 Ctrl+E 打开您的 $EDITOR 使用 (vim/nano) 进行全文编辑,并支持光标移动!
用户界面布局
┌─ TODO ──────────────┬─ AGENT PREVIEW ──────────────────┐
│ │ │
│ > ☐ Task 1 │ [Session: gemini-task-abc123] │
│ ☐ Task 2 │ [Started: 10:30:45 AM] │
│ ✓ Task 3 (done) │ │
│ │ Agent output appears here... │
│ │ │
│ [3 tasks] │ │
│ │ │
└─────────────────────┴───────────────────────────────────┘
Status: ✓ Task created: gemini-task-abc123
[a]Add [Enter]Open session(Ctrl+q) [x]Done [d]Delete | "["/""]" Scroll [g]Bottom [q]Quit建筑学
- 蒙福的;幸运的 - 终端用户界面框架
- lowdb(注:在中文语境中,"lowdb"通常不直接翻译,因为它可能是一个特定领域或技术中的术语,且没有直接对应的中文含义。如果这是一个数据库或数据处理工具的名称,可以保留原样或根据具体上下文进行意译,如“低级数据库”等,但需注意这可能不是其准确的中文表达。) - JSON文件存储
- tmux(一个终端复用器) - 代理会话的进程隔离
- 纳米标识符(或纳米ID) - 唯一ID生成
目录结构
todo-cli/
├── bin/
│ └── todo-cli.js # Entry point with dependency checks
├── src/
│ ├── app.js # Main application logic
│ ├── models/
│ │ └── task.js # Task data model
│ ├── services/
│ │ ├── storage.js # lowdb persistence layer
│ │ └── tmux.js # tmux session management
│ └── ui/
│ ├── screen.js # blessed UI layout
│ └── modal.js # Task creation modal
└── package.json它是如何工作的
- 创建任务 - 输入标题、详细信息以及YOLO模式偏好
- 生成代理(或:孵化代理) - 创建一个正在运行的tmux会话
gemini -i "{prompt}"(或与--yolo) - 预览输出 - 每秒捕获tmux面板的输出
- 自动滚动 - 自动显示最新的代理输出
- 手动控制 - 向上滚动
[要读取历史记录,请按g跳转到底部 - 附加会话 - 按回车键进入全屏模式,按Ctrl+q返回
小贴士
- 光标移动在输入框中按 Ctrl+E 打开 vim/nano 进行完整编辑
- YOLO模式启用YOLO模式的任务允许代理无需确认即可执行操作
- 自动滚动预览自动滚动以显示新输出;手动向上滚动以暂停
- 会话隔离每个任务都在一个独立的 tmux 会话中运行,该会话将持续存在直到被删除
- 干净利落的终止当你删除一个任务时,其对应的tmux会话会被自动终止
下一步
- 想出一个更好的方法来管理作为上下文的个人信息。
- 允许使用不同的代理(如codex、claude-code),如果它们有替换系统提示的方法
- 代理与待办任务之间进行通信,目前gemini-cli没有钩子(或插件),所以没有直接的方法来检查任务是否完成。仍然需要手动更新
- 更好的MCP/扩展安装,目前其设置过程仍然繁琐
许可证
麻省理工学院(MIT)
