x-twitter-publishlisted
Install: claude install-skill lnvestor/twitr-skills
# X publish — drafting and posting
| Task | Tool | Needs a connected account? |
|---|---|---|
| Draft / refine / score post text | `x_compose` | No — drafting is free of the account |
| Post, reply, quote, delete, upload media | `x_write` | Yes |
| Edit bio, name, avatar, banner | `x_profile` | Yes |
| Read your own bookmarks, notifications, DMs | `x_inbox` | Yes |
## Draft first — it's nearly free
`x_compose` is priced at the floor (~$0.001), so draft several and keep the best.
```
POST https://twitr.sh/api/tools/compose
{ "step": "generate", "topic": "why 402 beats API keys for agents",
"goal": "be known for practical agent-payment writing",
"tone": "direct, dry, technical — no emoji",
"styleUsername": "account_whose_voice_to_match" }
```
`step` is `generate` | `refine` (pass `draft`) | `score` (pass `draft`). `styleUsername` makes
"write like this account" a single field. **Always show the user the draft before publishing.**
## Connect an account (once, free)
**You never handle the user's password.** Mint a one-time link and hand it over:
```
POST /api/x-accounts/start {"username"} → {connect_url, expires_in}
GET /api/x-accounts → poll until "linked"
```
Show the user `connect_url`: *open this in your browser and sign in to X there.* They enter the
password on twitr.sh in their own browser — it never passes through you, your context, or the
chat log. The link is single-use and expires in 15 minutes; mint a fresh one if it lapses.
>