Task List
The optional todo plugin gives each conversation a task list, so you can see what Chetty plans, what is running and what is blocked.
Install the plugin
- Open Settings → Available plugins.
- Find todo and install it. Its tools become available, subject to your account's tool permissions.
The plugin needs Chetty 0.30.47 or later. It has one setting, Completed task retention, and needs no separate per-account grant. As soon as the list has tasks, its card is pinned in the conversation.
Note: Enabling or disabling the plugin restarts Chetty. The change applies after the restart.
View and manage tasks
The pinned card, titled Tasks, shows each task's status, owner, progress text and unfinished blockers, and it refreshes as tasks change.
- In web chat, open the Tasks panel with the Open task list button on the card, or with the tasks section of the side rail.
- Type in the filter to search task subjects and descriptions.
- Tick a pending or completed task to toggle it, or open its menu to change the status, rename it or delete it.
An in-progress task has no checkbox, so change its status from its menu. The panel shows each task's description under its subject, and it asks you to confirm before clearing tasks. Clear completed removes finished tasks; Clear all empties the list.
In the CLI, /tasks lists and manages the current conversation: change a task's status or delete it. Renaming and clearing are available in web chat only.
Long descriptions are shortened in CLI previews, and the stored text stays unchanged. An empty list shows a notice and creates no tasks.
Chat platforms show the task card as a text message.
Create a task plan
Ask Chetty to plan the work in steps. It creates the whole plan at once and returns an ID for every task. Each task needs a subject and a description, so a plan with either field missing is rejected as a whole.
| Tool | What it does |
|---|---|
TaskCreate |
Adds one or more tasks. |
TaskList |
Shows the tasks with their public status, owner and unfinished blockers. |
TaskGet |
Reads one task, including its private description and dependencies. |
TaskUpdate |
Changes a task's subject, description, progress text, status, owner, metadata or dependencies. The status deleted removes the task. |
TaskDelete |
Removes a task permanently, or an explicit batch of tasks. |
A TaskUpdate call that changes nothing is refused, and the refusal lists the fields it accepts.
A task is pending, in progress or completed. Chetty marks work in progress when it starts and completes a task only when the result is verified. Paused or blocked work stays pending with the blocker recorded.
When a plan is created while nothing is running, the first task without an unfinished blocker starts. Completing a task does not start the next one; Chetty is told which task is next.
While work remains, a started task shows the elapsed time of its latest uninterrupted run. Reopening a task starts a fresh run, and returning it to pending discards an unfinished run. Tasks completed without starting, and tasks completed before this was recorded, show no duration.
The card and the rail disappear once every task is completed.
Each sub-agent keeps its own list, which never changes its parent's. A read-only sub-agent can use only TaskGet and TaskList: its own list is read-only too. Unlike the previous behavior, task creation, updates and deletion are no longer an exception to read-only mode. When you open a sub-agent in the CLI or in web chat, its task card remains read-only.
Set task dependencies
Say which step must finish first, for example "run the tests, then fix what fails". Chetty records the dependency, and the blocked task waits until its blocker is completed.
- An existing task is referenced by its ID.
- A task in the same new plan is referenced by its position in that plan, such as
$1. The position can point to any task in the plan, not only an earlier one. - IDs and positions can be mixed in one plan.
IDs belong to one conversation. Use the IDs that TaskCreate or TaskList returned, and never guess one. A plan with a missing dependency, a task that waits for itself or a loop is refused instead of saved.
You can still mark a blocked task complete by hand from the Tasks panel.
What is private
The card, the rail and TaskList show subjects, statuses, owners, progress text and unfinished blockers. They do not show descriptions or metadata.
A description and its metadata are the agent's working context, and TaskGet returns the description to the agent. Chetty also receives the list itself as working context, so it keeps the shown progress in sync with its work.
The web Tasks panel and the CLI /tasks picker do show a description to the person who opens them.
Note: Keep anything out of a description that should not reach the agent or people who can open the task list.
Subjects and owner labels are single-line text, so control characters such as newlines are rejected. In web chat, a subject can be up to 200 characters and an owner label up to 64.
When completed tasks disappear
A list whose tasks are all completed stays for three more conversation turns and then clears. Work added in the same turn as the completion joins that list; work added after at least one turn has passed starts a new, empty list. A list with unfinished tasks does not age out.
Completed task retention defaults to 4 hours and accepts 1 to 168 hours. At a new turn, completed tasks past their time are removed together with their dependency links. Pending and running tasks stay.
Reopening a task clears its completion time. Tasks completed before completion times were recorded are not dated retroactively.
Each account has a separate list per conversation, not one board for the whole Project, and the list survives reloading that conversation. On a chat platform, the list belongs to the platform user who sent the message. Removing a Chetty account removes its task lists.
Note: Deleting a conversation does not remove its stored task list. Removing the account does.