Skip to content
This repository was archived by the owner on Aug 27, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.release-notes/
# Dependencies
/node_modules

Expand Down
93 changes: 93 additions & 0 deletions docs/basic-usage/task-todo-list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Task Todo List

**The big picture**: Never lose track of complex development tasks again. Task Todo Lists create interactive, persistent checklists that live right in your chat interface.

**Why it matters**: Complex workflows have lots of moving parts. Without structure, it's easy to miss steps, duplicate work, or forget what comes next.

<img src="/docs/img/task-todo-list/task-todo-list-1.png" alt="Task Todo List overview showing interactive checklist in Kilo Code" width="500" />

## How to trigger todo lists

**Automatic triggers**:
- Complex tasks with multiple steps
- Working in Architect mode
- Multi-phase workflows with dependencies

**Manual triggers**:
- Ask Kilo to "use the [update_todo_list tool](/features/tools/update-todo-list)"
- Say "create a todo list"

**The bottom line**: Kilo decides what goes in the list, but you can provide feedback during approval dialogs.

---

## The old way vs. the new way

**Before**: You juggled task steps in your head or scattered notes, constantly wondering "what's next?"

**Now**: Kilo creates structured checklists that update automatically as work progresses. You see exactly where you are and what's coming up.

---

## Where todo lists appear

**1. Task Header Summary**
Quick progress overview with your next important item

<img src="/docs/img/task-todo-list/task-header.png" alt="Task header summary showing todo list progress" width="500" />

**2. Interactive Tool Block**
Full todo interface in chat where you can:
- See all items and their status
- Edit descriptions when Kilo asks for approval
- Stage changes using the "Edit" button

**3. Environment Details**
Background "REMINDERS" table that keeps Kilo informed about current progress

## Task status decoded

**Pending** → Empty checkbox (not started)

<img src="/docs/img/task-todo-list/not-started.png" alt="Pending todo item with empty checkbox" width="300" />

---

**In Progress** → Yellow dot (currently working)

<img src="/docs/img/task-todo-list/in-progress.png" alt="In progress todo item with yellow dot indicator" width="300" />

---

**Completed** → Green checkmark (finished)

<img src="/docs/img/task-todo-list/complete.png" alt="Completed todo item with green checkmark" width="300" />

---

## Common questions

**"Can I create my own todo lists?"**
Yes, just ask Kilo to use the update_todo_list tool. But Kilo stays in control of the content and workflow.

**"What about simple tasks?"**
Kilo typically skips todo lists for simple tasks. The overhead isn't worth it.

**"Why can't I directly edit the list?"**
Design choice. Kilo maintains authority over task management to ensure consistent progress tracking. You provide input, Kilo executes.

---

:::tip

## Pro tip: Auto-approval

**What it does**: Automatically approves todo list updates without confirmation prompts.

**When to use it**: Long workflows where constant interruptions slow you down.

**How to enable it**: Check the [Update Todo List auto-approval settings](/features/auto-approving-actions#update-todo-list).

**The catch**: Less control, but faster execution.

:::
59 changes: 59 additions & 0 deletions docs/features/auto-approving-actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ Click the toolbar to expand it and configure individual permissions:
| **Switch modes** | Changes between Kilo Code modes automatically | Low |
| **Create & complete subtasks** | Manages subtasks without confirmation | Low |
| **Retry failed requests** | Automatically retries failed API requests | Low |
| **Answer follow-up questions** | Selects default answer for follow-up questions| Low |
| **Update todo list** | Automatically updates task progress | Low |

## Master Toggle for Quick Control

Expand Down Expand Up @@ -222,3 +224,60 @@ This setting allows terminal command execution with controls. While risky, the w
- "Add" button to add new prefixes
- Clickable command buttons with X to remove them
:::

### Follow-Up Questions

:::info Follow-Up Questions (Risk: Low)

**Setting:** `Always default answer for follow-up questions`

**Description:** Automatically selects the first AI-suggested answer for a follow-up question after a configurable timeout. This speeds up your workflow by letting Roo proceed without manual intervention.

**Visual countdown:** When enabled, a countdown timer appears on the first suggestion button, showing the remaining time before auto-selection. The timer is displayed as a circular progress indicator that depletes as time passes.

**Timeout slider:** Use the slider to set the wait time from 1 to 300 seconds (Default: 60s).

**Override options:** You can cancel the auto-selection at any time by:
- Clicking a different suggestion
- Editing any suggestion
- Typing your own response
- Clicking the timer to pause it

**Risk level:** Low

**Use cases:**
- Overnight runs where you want Roo to continue working
- Repetitive tasks where the default suggestions are usually correct
- Testing workflows where interaction isn't critical
:::

### Update Todo List

:::info Update Todo List (Risk: Low)

**Setting:** "Always approve todo list updates"

**Description:** "Automatically update the to-do list without requiring approval"

**Risk level:** Low

This setting allows Roo to automatically update task progress and todo lists during work sessions. This includes:
- Marking tasks as completed
- Adding new discovered tasks
- Updating task status (pending, in progress, completed)
- Reorganizing task priorities

**Benefits:**
- Maintains real-time task progress visibility
- Reduces interruptions during multi-step workflows
- Keeps project status accurately reflected
- Helps track complex task dependencies

**Use cases:**
- Long-running development sessions
- Multi-step refactoring projects
- Complex debugging workflows
- Feature implementation with many subtasks

This is particularly useful when combined with the Subtasks permission, as it allows Roo to maintain a complete picture of project progress without constant approval requests.
:::
9 changes: 8 additions & 1 deletion docs/features/tools/tool-use-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Tools are organized into logical groups based on their functionality:
| **Browser Group** | Web automation | [browser_action](/features/tools/browser-action) | Web testing and interaction |
| **Command Group** | System command execution | [execute_command](/features/tools/execute-command) | Running scripts, building projects |
| **MCP Group** | External tool integration | [use_mcp_tool](/features/tools/use-mcp-tool), [access_mcp_resource](/features/tools/access-mcp-resource) | Specialized functionality through external servers |
| **Workflow Group** | Mode and task management | [switch_mode](/features/tools/switch-mode), [new_task](/features/tools/new-task), [ask_followup_question](/features/tools/ask-followup-question), [attempt_completion](/features/tools/attempt-completion) | Context switching and task organization |
| **Workflow Group** | Mode and task management | [switch_mode](/features/tools/switch-mode), [new_task](/features/tools/new-task), [ask_followup_question](/features/tools/ask-followup-question), [attempt_completion](/features/tools/attempt-completion), [update_todo_list](/features/tools/update-todo-list) | Context switching and task organization |

### Always Available Tools

Expand All @@ -25,6 +25,7 @@ Certain tools are accessible regardless of the current mode:
- [attempt_completion](/features/tools/attempt-completion): Signal task completion
- [switch_mode](/features/tools/switch-mode): Change operational modes
- [new_task](/features/tools/new-task): Create subtasks
- [update_todo_list](/features/tools/update-todo-list): Manage step-by-step task tracking

## Available Tools

Expand Down Expand Up @@ -65,6 +66,7 @@ These tools help manage the conversation and task flow:
- [attempt_completion](/features/tools/attempt-completion) - Presents final results
- [switch_mode](/features/tools/switch-mode) - Changes to a different mode for specialized tasks
- [new_task](/features/tools/new-task) - Creates a new subtask
- [update_todo_list](/features/tools/update-todo-list) - Tracks task progress with step-by-step checklists

## Tool Calling Mechanism

Expand Down Expand Up @@ -207,6 +209,11 @@ Tools are made available based on the current mode:
[new_task](/features/tools/new-task) → [switch_mode](/features/tools/switch-mode) → [execute_command](/features/tools/execute-command)
```

4. **Progress Tracking**
```
[update_todo_list](/features/tools/update-todo-list) → [execute_command](/features/tools/execute-command) → [update_todo_list](/features/tools/update-todo-list)
```

## Error Handling and Recovery

### Error Types
Expand Down
159 changes: 159 additions & 0 deletions docs/features/tools/update-todo-list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# update_todo_list

The `update_todo_list` tool replaces the entire TODO list with an updated checklist reflecting the current state. It provides step-by-step task tracking, allowing confirmation of completion before updating and dynamic addition of new todos discovered during complex tasks.

## Parameters

The tool accepts these parameters:

- `todos` (required): A markdown checklist with task descriptions and status indicators

## What It Does

This tool manages a comprehensive TODO list that tracks task progress through different status states. It replaces the entire list with each update, ensuring the current state accurately reflects all pending, in-progress, and completed tasks. The system displays the TODO list as reminders in subsequent messages.

## When is it used?

- When tasks involve multiple steps requiring systematic tracking
- When new actionable items are discovered during task execution
- When updating the status of several todos simultaneously
- When complex projects benefit from clear, stepwise progress tracking
- When organizing multi-phase workflows with dependencies

## Key Features

- Maintains a single-level markdown checklist with three status states
- Updates multiple task statuses in a single operation
- Dynamically adds new todos as they're discovered during execution
- Provides visual progress tracking through status indicators
- Integrates with the reminder system for persistent task visibility
- Supports task reordering based on execution priority
- Preserves all unfinished tasks unless explicitly removed
- Enables efficient batch status updates

## Limitations

- Limited to single-level checklists (no nesting or subtasks)
- Cannot remove tasks unless they're completed or no longer relevant
- Requires complete list replacement rather than incremental updates
- Status changes must be explicitly managed through tool calls
- No built-in task dependency tracking
- Cannot schedule tasks for future execution
- Limited to three status states (pending, in-progress, completed)

## Status Indicators

The tool uses three distinct status indicators:

- `[ ]` **Pending**: Task not yet started
- `[-]` **In Progress**: Task currently being worked on
- `[x]` **Completed**: Task fully finished with no unresolved issues

## How It Works

When the `update_todo_list` tool is invoked, it follows this process:

1. **Status Validation**:
- Parses the markdown checklist format
- Validates status indicators are properly formatted
- Ensures task descriptions are clear and actionable

2. **List Replacement**:
- Completely replaces the existing TODO list
- Preserves task order as specified in the update
- Maintains task descriptions and status states

3. **Reminder Integration**:
- Integrates updated list with the reminder system
- Displays current tasks in subsequent message headers
- Provides persistent visibility of task progress

4. **Progress Tracking**:
- Tracks completion status across multiple updates
- Maintains task history for reference
- Supports workflow continuation across sessions

## Best Practices

### Task Management Guidelines

- Mark tasks as completed immediately after all work is finished
- Start the next task by marking it as in-progress
- Add new todos as soon as they are identified during execution
- Use clear, descriptive task names that indicate specific actions
- Order tasks by logical execution sequence or priority

### Status Update Patterns

- Update multiple statuses simultaneously when transitioning between tasks
- Confirm task completion before marking as finished
- Keep in-progress tasks focused on current work
- Add blocking tasks when dependencies are discovered

### When to Use

Use this tool when:
- The task involves multiple steps or requires ongoing tracking
- New actionable items are discovered during task execution
- Multiple todos need status updates simultaneously
- Complex tasks benefit from clear progress visualization

Avoid using when:
- There is only a single, trivial task
- The task can be completed in one or two simple steps
- The request is purely conversational or informational

## Examples When Used

- When implementing a multi-component feature requiring frontend, backend, and database changes
- When debugging issues that reveal multiple related problems requiring fixes
- When setting up development environments with multiple configuration steps
- When documenting systems that require research, writing, and review phases
- When refactoring code that affects multiple files and requires testing

## Usage Examples

Initial task breakdown:
```
<update_todo_list>
<todos>
[-] Analyze requirements and create technical specification
[ ] Design database schema and API endpoints
[ ] Implement backend authentication service
[ ] Create frontend login components
[ ] Write comprehensive tests
[ ] Update documentation
</todos>
</update_todo_list>
```

Updating progress and adding discovered tasks:
```
<update_todo_list>
<todos>
[x] Analyze requirements and create technical specification
[x] Design database schema and API endpoints
[-] Implement backend authentication service
[ ] Create frontend login components
[ ] Write comprehensive tests
[ ] Update documentation
[ ] Add password reset functionality
[ ] Implement rate limiting for login attempts
</todos>
</update_todo_list>
```

Completing multiple tasks and transitioning focus:
```
<update_todo_list>
<todos>
[x] Analyze requirements and create technical specification
[x] Design database schema and API endpoints
[x] Implement backend authentication service
[x] Create frontend login components
[-] Write comprehensive tests
[ ] Update documentation
[ ] Add password reset functionality
[ ] Implement rate limiting for login attempts
</todos>
</update_todo_list>
2 changes: 2 additions & 0 deletions sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ const sidebars: SidebarsConfig = {
label: 'Basic Features',
items: [
'basic-usage/orchestrator-mode',
'basic-usage/task-todo-list',
'basic-usage/git-commit-generation',
'features/browser-use',
'features/code-actions',
Expand Down Expand Up @@ -159,6 +160,7 @@ const sidebars: SidebarsConfig = {
'features/tools/read-file',
'features/tools/search-files',
'features/tools/switch-mode',
'features/tools/update-todo-list',
'features/tools/use-mcp-tool',
'features/tools/write-to-file',
],
Expand Down
Binary file added static/img/task-todo-list/complete.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/task-todo-list/in-progress.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/task-todo-list/not-started.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/task-todo-list/task-header.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/task-todo-list/task-todo-list-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.