Begin a task
taskhold_beginStart work in one call: files a new task (or takes an existing one with task_id), plans its steps, marks it in progress and starts the first step. Use this whenever the person asks for something: it puts the request on their board with a checklist and a progress bar. Returns the task id, the numbered steps with ids, the step now running and a cursor for taskhold_updates. Every event of the call (created, planned, started) carries the agent label. On a task already under way it appends the steps. Fails without title or task_id, on an unknown task_id (get one from taskhold_list) or on a step (begin its parent, or taskhold_start the step).
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "taskhold_begin"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Who is working, shown to the person: "<client> in <repo folder>", e.g. "Claude Code in api-server". Outside a repo just "Claude Code". | |
| steps | No | The plan, in order, e.g. ["Read the code", "Write the migration", "Add tests"]. Omit for a one-step job. | |
| title | No | Title of the new task (the person's request, short). Omit when passing task_id. | |
| labels | No | Labels for a new task, e.g. ["bug", "refactor"] | |
| project | No | Project name, e.g. the repo folder ("api-server"). Matched case-insensitively; created on first use. Use this instead of project_id. | |
| task_id | No | Begin an existing task instead of filing a new one (from taskhold_list). | |
| priority | No | Priority of a new task (default medium) | |
| description | No | Details (markdown), e.g. the person's request in full | |
| start_first_step | No | Also start the first step (default true) |