Appearance
Kiro CLI 的 TODO lists 能把复杂任务拆成可追踪、可恢复的执行清单,并在会话之间保留进度。本文用迁移数据库、实现登录、配置 CI/CD 等场景,讲清 Kiro 自动创建清单的时机、/todo 命令的用法,以及如何避免把任务管理变成新的负担。
Kiro CLI TODO lists:把复杂任务拆成可恢复的执行清单
复杂任务最怕“做到一半丢上下文”。例如迁移数据库、实现登录系统、修 CI/CD、做大型重构,这些工作往往不是一个 prompt 就能完成的。Kiro CLI 的 TODO lists 功能会在合适的时候自动创建任务清单,让 agent 和你都知道当前做到哪一步、下一步是什么、哪些任务已经完成。
它不是普通的笔记功能,而是 CLI agent 工作流的一部分:Kiro 可以创建、更新和恢复 TODO lists;你可以通过 /todo 命令查看、恢复、删除和清理清单。
开启 TODO lists
先打开功能开关:
bash
kiro-cli settings chat.enableTodoList true开启后,当 Kiro 判断任务需要拆解,或你明确要求“创建 TODO list”时,它会自动生成任务清单。
最常用的两个命令是:
text
/todo view # 查看已有 TODO lists
/todo resume # 恢复某个 TODO listKiro 什么时候会自动创建 TODO list
通常有三种情况:
- 你提出的是多步骤任务;
- 问题需要先拆解再执行;
- 你明确要求 Kiro 创建 TODO list。
例如:
text
> Make a todo list with 3 read-only tasks.
Kiro 会创建类似这样的清单:
TODO:
[ ] Review project documentation
[ ] Check system status
[ ] Read latest updates在真实项目中,更常见的触发方式是“帮我迁移数据库”“实现用户认证”“排查构建失败并修复”。这些任务都有多个阶段,如果没有 TODO lists,很容易漏掉验证、回滚、清理等步骤。
Kiro 能做什么,你能做什么
Kiro 侧的 todo tool
todo tool 是给 Kiro 调用的。它可以:
- 创建 TODO lists;
- 标记任务完成;
- 添加或移除任务;
- 按 ID 加载 TODO list;
- 搜索已有 TODO lists。
用户侧的 /todo command
/todo command 是给你管理清单用的。你可以:
- 查看 TODO lists;
- 恢复某个 TODO list;
- 删除不需要的 TODO list;
- 清理已经完成的 TODO lists。
这两个角色不要混用。尤其不要直接手动编辑底层 JSON 文件,否则 Kiro 可能无法正确恢复上下文。
常用命令
/todo view:查看清单
text
/todo view这个命令会打开交互式选择界面,让你选择一个 TODO list 查看详情。列表里通常会显示已完成和未完成状态,例如:
text
? Select a to-do list to view:
> Unfinished todo list (0/3)
Completed todo list (3/3)适合在恢复工作前先看一眼进度,确认是否值得继续。
/todo resume:恢复清单
text
/todo resume选择某个清单后,Kiro 会把它加载回当前 chat session,并继续之前的上下文。例如用户认证实现做到 3/8,恢复后 Kiro 会知道前 3 个任务已经完成,下一步该继续实现 login endpoint。
/todo clear-finished:清理已完成清单
text
/todo clear-finished这个命令会删除所有已完成的 TODO lists。建议定期执行,否则项目里的历史清单会越来越多,选择时反而增加噪音。
/todo delete:删除指定或全部清单
text
/todo delete # 交互式选择并删除一个清单
/todo delete --all # 删除全部 TODO lists--all 不会进入交互选择,适合你确认当前项目清单都不再需要时使用。
存储位置和数据结构
TODO lists 会跨 session 持久化。每个清单会保存为 JSON 文件,通常位于项目目录下:
text
my-project/
├── .kiro/
│ └── cli-todo-lists/
│ ├── 1234567890-task-list.json
│ └── 1234567891-another-list.json
└── src/
└── main.py每个文件通常包含:
- 基于时间戳的唯一 ID;
- 任务描述和完成状态;
- 已完成任务产生的上下文更新;
- 相关修改文件路径;
- 清单整体描述。
因为清单是按项目保存的,所以建议在正确的项目目录里启动 Kiro CLI。否则 TODO list 会落在错误位置,恢复时也不方便。
典型场景
数据库迁移
text
> I need to migrate our database from MySQL to PostgreSQLKiro 可能会拆成:
text
TODO: Database Migration
[ ] Backup current MySQL database
[ ] Set up PostgreSQL instance
[ ] Create schema migration scripts
[ ] Test migration on staging
[ ] Perform production migration
[ ] Verify data integrity这里最重要的是“备份”和“验证完整性”不会被忘掉。数据库迁移不是只写迁移脚本,风险控制同样是任务的一部分。
实现用户认证
text
> Help me implement user authentication可能得到:
text
TODO: User Authentication Implementation
[ ] Set up authentication library
[ ] Create user model and database schema
[ ] Implement registration endpoint
[ ] Implement login endpoint
[ ] Add password hashing
[ ] Create JWT token generation
[ ] Add authentication middleware
[ ] Write tests for auth flow这种任务很适合 TODO lists,因为它天然包含 schema、endpoint、middleware、tests 等多个层面。
配置 CI/CD
text
> I need to set up CI/CD for our projectKiro 可以先创建:
text
TODO: CI/CD Setup
[ ] Choose CI/CD platform
[ ] Create pipeline configuration
[ ] Set up build stage
[ ] Add test stage
[ ] Configure deployment stage
[ ] Set up environment variables
[ ] Test pipeline如果当天只做到一半,下一次用 /todo resume 就能继续,而不是重新解释项目背景。
使用建议
让 Kiro 负责更新状态
不要手动改 .kiro/cli-todo-lists/ 里的 JSON 文件。正确做法是恢复清单后,让 Kiro 在执行过程中标记完成、添加或移除任务。
一个复杂任务对应一个清单
不要把多个无关任务塞进同一个 TODO list。比如“修登录 bug”和“重构支付模块”应该分开,否则恢复上下文时会混乱。
完成后及时清理
使用 /todo clear-finished 清理完成项;不再需要的未完成清单用 /todo delete 删除。任务管理工具本身也需要维护。
限制
当前 TODO lists 更适合顺序执行的任务管理,存在一些限制:
- 不支持手动编辑 TODO list 文件;
- 不支持合并或拆分 TODO lists;
- 创建后不能随意重排任务顺序。
如果你需要更复杂的项目管理,仍然应该使用 GitHub Issues、Linear、Jira 等专门工具。Kiro 的 TODO lists 更像是 agent 会话里的“执行清单”。
排障
任务状态没有更新
可以按以下顺序检查:
- 先用
/todo resume确认当前清单已经恢复; - 不要手动编辑 JSON 文件,让 Kiro 自己标记任务;
- 查看 chat 中是否有工具调用失败或权限错误;
- 如果上下文已经混乱,重新创建一个更小的 TODO list。
找不到之前的清单
确认你是否在同一个项目目录下启动 Kiro CLI。TODO lists 保存在项目下的 .kiro/cli-todo-lists/,换目录后自然看不到原来的清单。
相关页面
常见问题
TODO lists 会自动跨会话保存吗?
会。Kiro 会把 TODO lists 保存到项目目录下的 .kiro/cli-todo-lists/,下一次进入同一项目后可以用 /todo resume 恢复。
我可以手动修改 TODO list 的 JSON 文件吗?
不建议。手动修改可能破坏 Kiro 对任务状态和上下文的理解。需要调整任务时,让 Kiro 通过 todo tool 添加、移除或更新。
TODO lists 适合替代项目管理工具吗?
不适合。它适合管理一次 agent 会话或一个开发任务的执行步骤,不适合长期路线图、多人协作排期和跨团队项目管理。