> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shipstar.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# generate_twitter_thread

> Kick off generation of an X (Twitter) thread from recent commits

Analyses commits on the project's tracked GitHub repositories and kicks off a background task that generates an X (Twitter) thread. Returns immediately with a pending content record.

## Arguments

| Name | Type | Default | Description |
| - | - | - | - |
| `start_date` | string (ISO-8601) | 7 days ago | Earliest commit timestamp to include. |
| `end_date` | string (ISO-8601) | now | Latest commit timestamp to include. |
| `product_name` | string | project name | Override the product name used in the thread. |
| `idea` | object | — | Optional `{title, summary}` suggestion to focus the thread on; commits unrelated to the idea are ignored. |
| `audience` | `"technical"` \| `"business"` \| `"mixed"` | project default | Technical depth of the writing. Omit to use the project's [content guidelines](/guides/content-guidelines) default. |
| `instructions` | string (≤ 2000 chars) | project default | Free-text guidance on scope, tone, or terminology, e.g. `"British spelling; do announce docs-site changes"`. Omit to use the project default. |
| `repos` | string\[] | all tracked repos | Restrict the commit source to these tracked repositories (full names, e.g. `["acme/backend"]`), as listed by [`get_project_context`](/mcp/project/get-project-context). Omit to use every active tracked repo. |

## Returns

```json theme={null}
{
  "content_id": "7f5e2c1a-...",
  "status": "pending"
}
```

Poll [`get_generation_status`](/mcp/lifecycle/get-generation-status) until the status is `completed`, then read the draft with [`get_content_draft`](/mcp/lifecycle/get-content-draft).

The thread covers the single most impactful customer-facing feature of the period. If nothing customer-facing shipped (only marketing-site, docs-hosting, CI, or refactor commits), the run ends `failed` with `skip_reason: "no_customer_facing_changes"`, nothing is posted, and the credits are refunded — widen the date range or pass `instructions` if that change should have counted.

## Errors

* `No GitHub account connected. Connect GitHub in Sources first.`
* `No active tracked repositories. Add repos in Sources first.`
* `Monthly credit limit reached (10/10 used). Upgrade your plan to keep generating content.`

## Example prompts

> "Write an X thread about what we shipped this week."

> "Generate a Twitter thread focused on the new API keys page, using commits from the last month."


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.