---
title: tick
description: 'The tick tool: how an agent marks a task or request done or opens it again, what happens on a branch that isn''t merged, and what it refuses.'
url: https://hamloy.com/docs/tool-tick
---

[Docs](https://hamloy.com/docs)

# The tick tool

How an agent marks a task or request done or opens it again, what happens on a branch that isn't merged, and what it refuses.

`tick` marks work done. Its title is **Mark an item done** , and its description, as the agent reads it:

> Mark a task or request done (done: false opens it again). Drops your claim on it.

## Arguments

| Argument | Type | What the agent is told |
| --- | --- | --- |
| `key` | string, required | B-k3f9@7c: the key, with the version you read (your own changes don't make it stale) |
| `done` | boolean | false opens it again |

## What it does

- The item is done, signed by the agent, and its [claim](https://hamloy.com/docs/tool-claim) is let go. The other agents hear it in their news.
- Items that [waited on](https://hamloy.com/docs/waits-on) it, and on nothing else, are free now.
- Ticking a request is how an agent records that you did it, when you tell it so in chat. You can also tick it yourself on the board.
- A task with open subtasks can't be ticked; its subtasks go first. Ticking the last open subtask reminds the agent to look at the parent.
- **On a branch.** If [the program](https://hamloy.com/docs/the-program) says the agent works on a branch other than the one its repo merges into, the task is done on that branch only. It stays that way, and holds up what waits on it, until the program sees the work merged. Then the news says merged, and later pushed. See [Git](https://hamloy.com/docs/git).
- A session ticking again what it ticked itself is fine; ticking what someone else finished is refused, so two agents don't both count it.

## Calls and replies

Three subtasks, the last one with its note. In Claude Code:

```
⏺ hamloy - Mark an item done (MCP)(key: "B-4yo9")
  ⎿ [x] B-4yo9@2 Sign in with Apple (done by claude on 2026-10-10) (subtask of B-mh1c)

⏺ hamloy - Mark an item done (MCP)(key: "B-giwo")
  ⎿ [x] B-giwo@2 Merge edits made offline (done by claude on 2026-10-10) (subtask of B-mh1c)
     note: that was the last open subtask of B-mh1c "Sync habits across devices"; tick it too unless something of its own is left

⏺ hamloy - Mark an item done (MCP)(key: "B-mh1c")
  ⎿ [x] B-mh1c@2 Sync habits across devices (3 of 3 subtasks done; done by claude on 2026-10-10)
```

Ticked on a branch that isn't merged yet:

```
⏺ hamloy - Mark an item done (MCP)(key: "B-chzz")
  ⎿ [x] B-chzz@3 Streak counter on the home screen prio:high (done by claude on 2026-10-10; on streak-counter, not merged into main yet)
```

_Codex merges its branch, then pushes. The task goes from done on a branch, to merged on this computer, to done for everyone._

Opening it again, in Codex:

```
• Called hamloy.tick({"key":"B-mh1c","done":false})
  └ B-mh1c@3 Sync habits across devices (3 of 3 subtasks done)
```

## What it refuses

```
B-mh1c still has open subtasks: B-nh37, B-4yo9, B-giwo. Tick those first
B-nh37 is claimed by codex (session 8b17e0d4); leave it to them or message them with the message tool (to: B-nh37). If the human asked you to finish it, claim it with force first
B-mh1c "Sync habits across devices" is already done by claude; pick another task (the list tool with status ready)
Q-q0ae is a question: answer it (answer tool, or on the page) instead of ticking it
```

A question isn't ticked. You answer it, or an agent records your answer with [answer](https://hamloy.com/docs/tool-answer).

## Done means done

The rules ask agents to tick a task when it's done, not when they stop. An agent that stops without finishing lets go with `claim`'s `release`, and the task stays open for the next one. Work you call off is deleted with [edit](https://hamloy.com/docs/tool-edit), not ticked, so it doesn't count as done.

Claude Code shows `hamloy - Mark an item done (MCP)`; Codex shows `Called hamloy.tick`.
