# Write with Xholic's writer

> Only when the user explicitly asks for Xholic's writer. Runs Xholic's data-first Worker writer: every post starts from a real post that worked, one subject per post. Uses Xholic AI credits: quote first and pass confirmCredits after the user agrees. Returns a task; read drafts with ask.task. Otherwise write posts yourself with get_writing_kit.

`drafts.with_xholic` · write

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

## Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `count` | integer 1–12 | No |  |
| `angles` | array of string ≤ 500 chars (max 12) | No |  |
| `sourcePostIds` | array of string ≤ 40 chars (max 12) | No |  |
| `likePostId` | string ≤ 40 chars | No | Keep this post's shape ("like this post"). |
| `topic` | string ≤ 300 chars | No |  |
| `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. |
