> ## Documentation Index
> Fetch the complete documentation index at: https://ai.easyaf.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# TodoWriteToolResponse

> Represents the response payload returned by the Claude Code TodoWrite tool after updating the task list.

## Definition

**Assembly:** CloudNimble.ClaudeEssentials.dll

**Namespace:** CloudNimble.ClaudeEssentials.Hooks.Tools.Responses

**Inheritance:** System.Object

## Syntax

```csharp theme={null}
CloudNimble.ClaudeEssentials.Hooks.Tools.Responses.TodoWriteToolResponse
```

## Summary

Represents the response payload returned by the Claude Code TodoWrite tool after
updating the task list.

## Remarks

The TodoWrite tool creates and manages a structured task list for the current coding
session. It helps Claude track progress, organize complex tasks, and demonstrate
thoroughness to the user. This response is received in the
[TodoWritePostToolUsePayload](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Tools/TodoWritePostToolUsePayload.md) when the
`tool_name` is "TodoWrite".

The response includes both the previous state ([TodoWriteToolResponse.OldTodos](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Tools/Responses/TodoWriteToolResponse.md#oldtodos)) and the new
state ([TodoWriteToolResponse.NewTodos](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Tools/Responses/TodoWriteToolResponse.md#newtodos)) of the todo list, enabling hooks to track what changed.

Use cases for the TodoWrite tool include:

* Complex multi-step tasks requiring 3 or more distinct steps
* Tasks that require careful planning
* When the user provides multiple tasks to complete
* Tracking progress through large implementations

Example JSON payload:

```csharp theme={null}
{
  "oldTodos": [
    { "content": "Run the build", "status": "completed", "activeForm": "Running the build" },
    { "content": "Fix type errors", "status": "in_progress", "activeForm": "Fixing type errors" }
  ],
  "newTodos": [
    { "content": "Run the build", "status": "completed", "activeForm": "Running the build" },
    { "content": "Fix type errors", "status": "completed", "activeForm": "Fixing type errors" },
    { "content": "Run tests", "status": "pending", "activeForm": "Running tests" }
  ]
}
```

## Constructors

### &#x20;.ctor

#### Syntax

```csharp theme={null}
public TodoWriteToolResponse()
```

### &#x20;.ctor Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public Object()
```

## Properties

### &#x20;NewTodos

Gets or sets the new state of the todo list after this update.

#### Syntax

```csharp theme={null}
public System.Collections.Generic.List<CloudNimble.ClaudeEssentials.Hooks.Tools.Inputs.TodoItem> NewTodos { get; set; }
```

#### Property Value

Type: `System.Collections.Generic.List<CloudNimble.ClaudeEssentials.Hooks.Tools.Inputs.TodoItem>`

#### Remarks

This contains the complete todo list after the TodoWrite operation.
It reflects all additions, removals, and status changes that were made.

Each [TodoItem](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Tools/Inputs/TodoItem.md) includes:

* `Content` - The task description (imperative form)
* `Status` - Current state: pending, in\_progress, or completed
* `ActiveForm` - Present continuous form for display during execution

### &#x20;OldTodos

Gets or sets the previous state of the todo list before this update.

#### Syntax

```csharp theme={null}
public System.Collections.Generic.List<CloudNimble.ClaudeEssentials.Hooks.Tools.Inputs.TodoItem> OldTodos { get; set; }
```

#### Property Value

Type: `System.Collections.Generic.List<CloudNimble.ClaudeEssentials.Hooks.Tools.Inputs.TodoItem>`

#### Remarks

This contains the complete todo list as it existed before the TodoWrite
operation was performed. Comparing this with [TodoWriteToolResponse.NewTodos](https://ai.easyaf.dev/claudeessentials/api-reference/CloudNimble/ClaudeEssentials/Hooks/Tools/Responses/TodoWriteToolResponse.md#newtodos) allows
hooks to determine exactly what changed.

This will be an empty list if no todos existed before this operation
(i.e., this is the first TodoWrite in the session).

## Methods

### &#x20;Equals Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual bool Equals(object obj)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `obj` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;Equals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public static bool Equals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;GetHashCode Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual int GetHashCode()
```

#### Returns

Type: `int`

### &#x20;GetType Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public System.Type GetType()
```

#### Returns

Type: `System.Type`

### &#x20;MemberwiseClone Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
protected internal object MemberwiseClone()
```

#### Returns

Type: `object`

### &#x20;ReferenceEquals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public static bool ReferenceEquals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;ToString Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual string ToString()
```

#### Returns

Type: `string?`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.