Tasks for you and your coding agents
On this page
- Overview
- Where are my tasks?
- How do I add a task?
- What do the statuses mean?
- How does Review work?
- What's in an open task?
- What happens when an agent is stuck?
- How do AI agents work through tasks?
- Can I keep agents away from a list?
- What's in Task settings?
- Which keys work in Tasks?
- Can I change several tasks at once?
- Can I undo a delete?
- Can I move a task to another list?
- Can a task wait for another?
- What happens to done tasks?
- Where are tasks kept?
Tasks are a board for each project, kept by Short Leash and shared between you, the leash command and AI coding tools. You plan the work and check what's finished. Agents claim a task, say what they're doing, say when they're stuck and hand the work back for your review.
Where are my tasks?
Work › Tasks shows every list: General, for tasks that aren't about one site, and each site that has tasks. All sites in the toolbar narrows it to one list. Inside a site, Tasks in its pages is the same screen with only that site's list.
The header switches between three views, and New task adds one:
- List groups tasks into In progress, Review and To do, with Done folded at the end under its count. Drag a task's handle to reorder it.
- Board has a column for each status. Drag a card to another column to change its status, or within a column to reorder it. Done shows the last 7 days, then Show N older. Pointing at a card shows Mark done and More. Dragging a task an agent is working on says first that the move ends its claim.
- Agents shows what needs you and what agents are doing: Waiting on you (tasks in Review and blocked ones, oldest first), Working now (each claim with its latest note and when it ends), Up next for agents (tasks agents can claim, high priority first, then in list order, plus to-do tasks waiting on their Do after, marked After “…”) and Agents today (what each agent claimed, finished or got stuck on today). The Agents pill counts what's waiting on you. Add Short Leash to an assistant goes to Settings › Coding assistants.
The toolbar's field filters by words in a task's title, description or tags; type #cart to see only tasks tagged cart. Any priority narrows by priority. Short Leash remembers the view and the filters for Work and for each site.
How do I add a task?
Choose New task (or press N), type it in Add a task, then press Return (Add a task, then press Enter on Windows), and press Return (Enter on Windows). While you type, #word adds a tag and !high or !low sets the priority, so Retry payouts #payouts !high adds "Retry payouts" with the tag and high priority. ⇧Return (Shift+Enter on Windows) adds it and opens it, and Esc closes the field. In Work › Tasks, Add to in the field picks the list. Go to… (⌘K, Ctrl+K on Windows) has Add a task to … for each site.
From the terminal, in the site's folder:
leash task add "Fix the cart total" --notes "Rounds VAT twice" --priority high --tag cart
leash task list
leash task done 1
On a meeting's page, Add to beside its action items picks the list, then Add to tasks adds one item or Add all adds the rest. Short Leash's chat can add a task too, after asking you (Add task).
What do the statuses mean?
| Status | What it means |
|---|---|
| To do | Nobody is working on it. Agents can claim it unless it waits for another task |
| In progress | An agent holds a claim on it (a starting lamp with the agent's name), or it's blocked (a red lamp and the reason), or you moved it here yourself |
| Review | An agent finished it and it waits for you, or you moved it here yourself. It shows Needs review, with the agent's name when an agent asked |
| Done | Finished, by you or by an agent with Review turned off. It says who finished it |
Change a status from the open task's Status, by dragging on the board, with the keys 1 to 4, or with leash task status 3 review. Moving a task out of In progress ends an agent's claim on it. A task you move to Review yourself shows only its status when you open it: there's no agent's summary to answer, and Short Leash doesn't notify you.
How does Review work?
When an agent finishes a task, it asks for review with a summary of what it did, and the task moves to Review. Short Leash notifies you, and the task opens with "Claude Code finished this and asks you to review it", the summary and three buttons:
- Mark done finishes it. Undo in the toast puts it back in Review with its summary.
- Send back returns it to the top of To do with your note, which you write in the note field first. The agent reads your note the next time it reads the task.
- Open changes opens the site's Changes, or the branch workspace's when the agent named the branch workspace the work is in.
An agent can't mark its own work done while Review is on: its done goes to Review, with "Marked done by Codex." as the summary. To let agents finish tasks themselves, turn off Agents’ finished work goes to Review in Task settings. Short Leash's chat is the one agent whose done finishes a task, even one waiting in Review, because it asks you first ("Mark this task done?").
What's in an open task?
Click a task (or select it and press Return, Enter on Windows) to open it beside the list. It shows its list and number, its title (click to edit it) and its properties: Status, List, Priority, Tags, Do after and, while an agent is on it, Agent with its claim or why it's blocked. A review that names a branch workspace adds Workspace.
- Description: Markdown. Each
- [ ] Stepline, or numbered1. [ ] Step, is a step you or an agent can tick; ticking one in the description edits its line. Edit opens the editor, and changes save as you type. If an agent changes the description while you're editing it, Short Leash keeps your text and says "Changed by Claude Code while you were editing", with Keep mine and Use theirs. - Activity: what happened to the task, oldest first: who added it, claims, notes, ticked steps, blocks, reviews, sending back and status changes, each with who and when. A step an agent ticked shows the agent's name.
- Notes: write in the field at the bottom and press ⌘Return (Ctrl+Enter on Windows) or Send. Agents see your notes the next time they read the task.
- Copy for an agent copies a sentence you can paste into any agent, such as "Work on task 7 in northwind.test's Short Leash tasks: Fix the invoice PDF footer on Safari."
- More has Move to… and Delete.
What happens when an agent is stuck?
An agent that can't go on says why, and the task stays in In progress with a red lamp, "Claude Code is blocked" and the reason. Its claim ends, so the task can't run out or be claimed while it waits for you. Short Leash notifies you. No agent can hand a blocked task back with task_review or mark it done, Short Leash's chat included: each gets "Task 3 is blocked: … Wait for a reply." Reply in the note field ("Reply to Claude Code"): your note clears the block and puts the task back in To do for an agent to pick up.
How do AI agents work through tasks?
Through Short Leash's MCP server, with these tools. site is optional everywhere; left out, it means General.
| Tool | What it does |
|---|---|
tasks_list |
A site's tasks in order, or every list, with each task's status, priority, tags, claim, why it's blocked and after, the tasks to finish first. status narrows it to todo, doing, review, done or open (not done) |
task_get |
One task: its description, its steps and its last 50 activity events, your notes included |
task_add |
Add a task with a title, description, priority and tags, signed with the agent's name. Left out (older agents call it without one), it's recorded as "Coding agent" |
task_claim |
Claim a task before working on it. The claim lasts 5 minutes unless the agent asks for longer, and claiming again extends it. Refused while someone else holds it, while it's blocked, in Review or done, or while a task it waits for is open |
task_note |
Post progress, up to 4,000 characters. Needs no claim |
task_block |
Say what's in the way, up to 500 characters, and stop. Needs the claim |
task_release |
Let go of a task without finishing it, with where it was left. Needs the claim |
task_review |
Ask for review with a summary of what was done, up to 4,000 characters, and optionally the branch workspace it's in. With Review off, this marks it done |
task_update |
Change the title, description, priority or tags. Ticking a step means rewriting its line as - [x] |
task_done |
Mark a task done. From an agent it goes to Review unless Review is off |
The loop: list the tasks, read one with task_get, claim it, post progress with task_note, then ask for review with task_review, or say what's in the way with task_block. An agent can change a task that's To do or In progress, unless another agent holds it, but not one in Review (it adds a note instead) or one that's done. It can move a task to In progress only while it holds the claim, and it can't change a blocked task's status at all, nor ask for review or mark it done: only your note unblocks it.
Every agent signs with by, its own name, such as "Claude Code" or "Codex". Short Leash shows names as they were written and matches claims without case. A name uses plain letters, digits and punctuation (ASCII), so no lookalike of "you" or "Short Leash chat" gets in. An agent can't sign as "you", the person using Short Leash, and only Short Leash's chat signs as "Short Leash chat"; either is refused with what to do instead. An agent should claim a task for as long as the work will take and claim it again before the claim runs out; Short Leash's MCP server tells agents so. Two agents can't hold the same task: anyone else's claim is refused with who holds it and for how long. When a claim runs out, the task goes back to To do, and Short Leash notifies you.
The same loop from the terminal:
leash task claim 3 --by "Claude Code"
leash task note 3 "The total rounds twice in CartTotal::vat()" --by "Claude Code"
leash task review 3 "Rounds once, with a test" --by "Claude Code"
leash task block 3 "Which VAT rate applies to shipping?" --by "Claude Code"
leash task release 3 "Left the test failing on purpose" --by "Claude Code"
leash task show 3
leash task acts as you unless --by names an agent, so a coding agent that runs it without --by is recorded as you. Claude Code is the exception: when it runs the command, Short Leash can tell, and asks for --by. block, release and review always need an agent's name. See the CLI reference for every option.
Can I keep agents away from a list?
Yes. In Task settings, Lists agents can use has a switch for General and each list with tasks. A closed list says "Closed: agents’ tools refuse its tasks": the MCP tools refuse its tasks, an agent can't add one to it (task_add, or leash task add --by), and tasks_list leaves it out. You can still use it yourself. Agents can use a new list.
What's in Task settings?
Task settings in the toolbar opens:
- Agents’ finished work goes to Review: on to begin with. Off, an agent's done is final.
- Archive done tasks after: Never, or a number of days; 30 days to begin with.
- Notify me when an agent finishes, gets blocked or lets a claim run out: the same choice as Tasks in Settings › Notifications, In app to begin with. Off sets Tasks to Off; on again sets In app.
- Lists agents can use, and Delete archived for each list with archived tasks.
The first two are saved in [tasks] in Short Leash's config.toml.
Which keys work in Tasks?
When the list or the board has focus, and never while you're typing in a field:
| Key | What it does |
|---|---|
| N | New task |
| ↑ ↓ | Move the selection; on the board, ← → move between columns |
| Return (Enter on Windows) | Open the selected task |
| Esc | Close the open task |
| X | Choose the task, for a change to several |
| 1, 2, 3, 4 | Set the status: To do, In progress, Review, Done |
| ⌥↑ ⌥↓ (Alt+Up, Alt+Down on Windows) | Move the task up or down |
| ⌫ (Backspace or Delete on Windows) | Delete the task (Undo follows) |
Can I change several tasks at once?
Yes. In the list, choose Select; on either view, press X on a task. Tick the tasks, and the toolbar shows how many are chosen with Set status…, Move to…, Delete and Cancel. In Work › Tasks you can choose tasks from several lists; Move to… needs tasks from one list. The change applies to every chosen task together, or to none if one can't change.
Can I undo a delete?
Yes. Deleting a task, or several, shows "Deleted “…”" with Undo for 10 seconds, and Undo brings them back with their number, order, activity and links. Any status change, to one task or many, has Undo too, and a task that goes back to Review comes back with the agent's summary. Undo puts a task an agent was working on back in To do rather than In progress, since its claim can't come back; an agent can claim it again. After 10 seconds a deleted task is gone for good.
Can I move a task to another list?
Yes: List in the open task, Move to… under More, or Move to… for several. A moved task goes to the end of its new list with that list's next number and keeps its status, priority, tags, description, review and block, and its activity, which records the move. It loses an agent's claim (so a task in progress goes back to To do, unless it's blocked) and what it waits for.
Can a task wait for another?
Yes. Open a task and add the tasks to do first under Do after; they come from the same list. While any of them is open, the task says After “…”. You can still work on it and finish it yourself, but an agent can't claim it until they're done: task_claim and leash task claim refuse and name what it waits for, and leash task list shows after 1, 2. A task can't wait for itself or for a task that already waits for it. Deleting a task, or moving it to another list, lets go of it on both sides.
What happens to done tasks?
They stay on the board for 30 days after they're done (or what Archive done tasks after says), then they're archived: hidden from the views and from agents' tools, but kept until you delete them. Show archived at the end of the done group or the Done column shows them. Delete archived in Task settings deletes a list's archived tasks, with their activity, after asking. Reopening an archived task brings it back on the board.
Where are tasks kept?
In Short Leash's database, in its folder, with each task's activity. A task keeps its latest 200 activity entries, and its activity goes when the task is deleted. A deleted task is kept 10 seconds for Undo. Renaming a site takes its tasks along; unlinking it removes them.
A list holds up to 1,000 tasks, archived ones included. When one is full, adding is refused with what to do: delete archived tasks in Task settings, or delete some you don't need.
If Short Leash's database can't be opened, tasks are kept in files instead, without activity: notes are refused until Short Leash can open it again. Task lists from before Short Leash had a database, one file per site under tasks/, are imported the first time it starts and moved to tasks.imported/. If a file can't be read, Short Leash leaves it where it is and tells you; fix or remove it and restart Short Leash to import it.