Skip to content

Composer actions

3 actions. Every field marked Required must be sent; account, dryRun, idempotencyKey, confirmCredits and quoteId are the control fields every surface adds.

composer.rewrite · write

Only when the user explicitly asks for Xholic’s rewriter. Rewrites a post or a selection by an instruction, or reviews the writing (mode review). Uses Xholic AI credits: quote first and pass confirmCredits after the user agrees. Otherwise rewrite it yourself.

  • MCP tool: composer_rewrite. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/composer/rewrite
  • CLI: xholic composer rewrite
  • Scope: write
  • Plan: Every plan, including the trial
  • Cost: Xholic AI: up to about 8 credits (Xholic’s rewriter (a writing review costs less)). Returns a quote first; pass confirmCredits after the user agrees.
  • Rate limit bucket: write

Input

Field Type Required Description
text string ≤ 25000 chars Yes The post, or the selected part to rewrite.
instruction string ≤ 500 chars Yes
context string ≤ 25000 chars No The full post around a selection.
mode “selection” \ “post” \ “review”
maxCharacters integer 1–25000 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.

composer.originality · write

Only when the user explicitly asks. Xholic AI judges whether a post is original or too close to a source post. Uses Xholic AI credits: quote first and pass confirmCredits after the user agrees. drafts.check is the free check.

  • MCP tool: composer_originality. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/composer/originality
  • CLI: xholic composer originality
  • Scope: write
  • Plan: Every plan, including the trial
  • Cost: Xholic AI: up to about 4 credits (Xholic’s originality check). Returns a quote first; pass confirmCredits after the user agrees.
  • Rate limit bucket: write

Input

Field Type Required Description
parts array of string ≤ 25000 chars (min 1, max 25) Yes The post, or each thread part in order.
sourceText string ≤ 25000 chars or null No The post it was built from.
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.

composer.mention_suggestions · read

X accounts matching a partial handle, from Xholic’s data first. remote 1 allows a small live X search when few match.

  • MCP tool: composer_mention_suggestions. Catalog: reach it with find_actions and run_read_action, or turn on the full toolset.
  • REST: GET /v1/composer/mention-suggestions
  • CLI: xholic composer mention-suggestions
  • Scope: read
  • Plan: Every plan, including the trial
  • Cost: Live X lookup: no credits, counts toward the plan’s X data limits.
  • Rate limit bucket: live_x

Input

Field Type Required Description
q string Yes The handle typed so far, without @.
remote “0” \ “1” No
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.