# Home actions

> Home: 3 Xholic actions (1 read, 2 change), each with its MCP tool, REST endpoint and CLI command.

Source: https://docs.xholic.ai/actions/home/

3 actions. Every field marked *Required* must be sent; `account`, `dryRun`, `idempotencyKey`, `confirmCredits` and `quoteId` are the [control fields](/api/responses/#control-fields) every surface adds.

## Home: for you today

`home.feed` · read

The account's Home: overview numbers, the welcome drafts after sign-up, and up to five ranked cards for today (mentions to answer, leads, queue gaps, posts taking off, trends). Use its workspaceUserId with the home card tools.

- **MCP tool:** `home_feed`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/home/feed`
- **CLI:** `xholic home feed`
- **Scope:** `read`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |

## Done, dismiss or snooze a Home card

`home.card_action` · write

Mark a Home card done, dismiss it, snooze it or restore it, by the key and type home.feed returned. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `home_card_action`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/home/card-action`
- **CLI:** `xholic home card-action`
- **Scope:** `write`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `workspaceId` | string ≤ 160 chars | Yes | workspaceUserId from home.feed, so a stale call never acts on another account. |
| `key` | string ≤ 160 chars | Yes | The card's key from home.feed. |
| `type` | "mention" \\| "post_reply" \\| "close_account_post" \\| "contact_repost" \\| "breaking_post" \\| "recycle_post" \\| "post_alert" \\| "queue_gap" \\| "draft" \\| "signal_lead" \\| "new_follower" \\| "niche_trend" \\| "reply_goal" \\| "saved_post" \\| "market_brief" \\| "growth_step" \\| "giveaway_ready" \\| "learned_check" | Yes |  |
| `action` | "done" \\| "dismiss" \\| "snooze" \\| "restore" | Yes |  |
| `tweetIds` | array of string (max 3) | No | For conversation cards: the post ids the card shows. |
| `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. |

## Welcome drafts

`home.welcome_action` · write

Act on the welcome drafts shown after sign-up: dismiss-message hides the intro, dismiss-draft or restore-draft one draft by position, retry rebuilds drafts that failed. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `home_welcome_action`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/home/welcome-action`
- **CLI:** `xholic home welcome-action`
- **Scope:** `write`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `workspaceId` | string ≤ 160 chars | Yes | workspaceUserId from home.feed, so a stale call never acts on another account. |
| `action` | "dismiss-message" \\| "dismiss-draft" \\| "restore-draft" \\| "retry" | Yes |  |
| `position` | integer 0–2 | No | Required for dismiss-draft and restore-draft: the draft's position. |
| `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. |
