Skip to content

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 list

Kiro 什么时候会自动创建 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 PostgreSQL

Kiro 可能会拆成:

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 project

Kiro 可以先创建:

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 会话里的“执行清单”。

排障

任务状态没有更新

可以按以下顺序检查:

  1. 先用 /todo resume 确认当前清单已经恢复;
  2. 不要手动编辑 JSON 文件,让 Kiro 自己标记任务;
  3. 查看 chat 中是否有工具调用失败或权限错误;
  4. 如果上下文已经混乱,重新创建一个更小的 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 会话或一个开发任务的执行步骤,不适合长期路线图、多人协作排期和跨团队项目管理。