Skip to content

Tasks

Tasks let you capture project work, hand it to the AI agent for implementation, and track what’s done. Each task can link to a thread where the agent works and you steer the result.

The Tasks view is a flat list, not a board. Each task shows one of three states:

StateMeaning
ReadyWaiting for work. Not linked to a thread.
WorkingAgent is actively working in a linked thread.
DoneComplete. Moves to the bottom of the list.

Tasks carry a status field with six values (Ready, Plan, Build, Test, Review, Done) and a working flag. The UI collapses these into the three states above: any status that isn’t Done displays as “Ready” when working is false, and “Working” when working is true. The agent tool can set any status directly, but the UI surfaces only Ready, Working, and Done.

  1. Click the + button in the bottom-right corner of the Tasks view.
  2. Write a description of what needs to happen.
  3. Click Add or press Ctrl+Enter (Cmd+Enter on Mac).

The system generates a title from your description. You can’t set the title manually when creating a task.

Descriptions that work well:

  • State the specific change you want, not a vague category.
  • Include acceptance criteria or the expected outcome.
  • Mention constraints, file paths, or relevant context.

Example:

Add user authentication with email/password login.
Validate email format, require 8+ character passwords,
show specific error messages for failures,
save session tokens securely.
  • Click a task to open the edit dialog.
  • Change the description and click Save, or click Delete to remove it.
  • When you save, the task links to whichever thread is currently selected (if any).

Each task has a dropdown menu with contextual actions:

Creates a new thread, links the task to it, sets the task to Build + working, and sends the task description as the first message to the agent. The UI switches to the new thread so you can watch the agent work. The task status badge changes to “Working” with a spinner.

Same as above, but reuses the currently selected thread instead of creating a new one. If that thread is already processing a message, the task description gets queued.

Sets the task status to Done and clears the working flag. Done tasks sort to the bottom of the list.

These actions don’t appear for every task: “Implement” only shows when the task isn’t done and isn’t already working. “Mark done” only shows when the task isn’t done.

When a task is in Working state:

  • The status badge shows a spinner.
  • The app polls the server every 2 seconds to pick up status changes.
  • When the agent finishes (the thread response completes), the server clears the working flag. The task goes back to Ready (unless it was moved to Done).
  • If the linked thread gets deleted, the task automatically moves to Done next time the task list loads.

The agent tool can set a task to Plan status. When the linked thread finishes, the server looks for a file named {task-id}-plan.md in the thread directory. If found, it replaces the task description with the plan content and deletes the file. This is a backend behavior the agent can use; the UI doesn’t have a dedicated “Plan” button.

The AI agent manages tasks programmatically with the tasks tool. From chat, you can ask the agent to:

  • Add tasks (created in Ready status).
  • List tasks to see the current board.
  • Update tasks (change status, title, or description).
  • Delete tasks.
  • Implement a task (moves to Build + working, creates or reuses a thread, sends the description).

The agent can set any valid status (Ready, Plan, Build, Test, Review, Done) through the tool, even though the UI only exposes Ready, Working, and Done as user-facing states.

  • Focus on one working task at a time. Multiple tasks can be in Working state, but each ties up a thread.
  • Check the linked thread if you want to redirect the agent mid-task.
  • Descriptions are the agent’s instructions. The more specific the description, the less you need to steer in the thread.
  • If a task’s thread disappears (you deleted it, or it was cleaned up), the task moves to Done automatically. You can reopen it by editing and saving, which re-links it to the current thread.