# Hand a job to Xholic

> Hand a long job to Xholic's own agent, e.g. 'find 30 leads, research each and draft DMs'. Uses Xholic AI credits: quote first, show it to the user, pass confirmCredits after they agree. Returns a task id; read progress with ask.task.

`ask.start` · write

- **MCP tool:** `ask_xholic`. Loaded by default in MCP clients.
- **REST:** `POST /v1/ask/start`
- **CLI:** `xholic ask start`
- **Scope:** `write`
- **Plan:** Every plan, including the trial
- **Cost:** Xholic AI: up to about 25 credits (Ask Xholic, charged for what the job uses up to this amount). Returns a quote first; pass `confirmCredits` after the user agrees.
- **Rate limit bucket:** `write`

## Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `task` | string ≤ 8000 chars | Yes | The job, in the user's words. |
| `model` | "luna" \\| "sol" \\| "sonnet" \\| "astra" \\| "opus" \\| "fable" | No | Ask model. Defaults to sonnet. Advanced models need Max. |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |
| `dryRun` | boolean | No | Return exactly what would happen without doing it. |
| `idempotencyKey` | string ≤ 200 chars | No | A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice. |
| `confirmCredits` | number 0–100000 | No | Xholic AI credits the user agreed to spend. Call first without it to get the quote, show the quote to the user, and pass the amount only after they say yes. |
| `quoteId` | string ≤ 100 chars | No | The quoteId from the quote the user agreed to. Send it with confirmCredits. |
