Bring your own image API key
OpenAI, Gemini, and OpenAI-compatible image endpoints are supported. Keys are stored locally in the browser.
Chrome Extension · Manifest V3 · MIT
A side-panel publishing desk for checking the live X Article editor, importing drafts, preparing supported media, and keeping recoverable records. Cover generation stays optional, and the final Publish click stays yours.
01
Markdown stays your source of truth. X stays the final publishing surface. Search the capabilities below.
No features match that search.
02
Generate article cover candidates only when you choose to. API keys, reusable visual styles, and recent covers stay in the side panel settings.
OpenAI, Gemini, and OpenAI-compatible image endpoints are supported. Keys are stored locally in the browser.
Keep a list of visual rules, pick one as the default, and edit each style in a compact dialog.
Generate 5:2 candidates, review them locally, then set the selected cover on the current X Article draft.
03
Check first, then write. The preflight locks onto the real editor before the import begins.
Add xPoster from the Chrome Web Store.
Go to x.com/compose/articles.
Paste text, choose a .md file, or drop several.
Preflight the active tab and editor bridge.
xPoster fills the Draft.js editor for you.
You make the final editorial call in X.
04
What goes in, and what xPoster does with it.
---
title: How I Write Long Posts for X
cover: ./images/cover.png
---
# How I Write Long Posts for X
I draft in Markdown first, then use
xPoster for the final handoff.

| Step | Tool |
| ----- | ----------- |
| Draft | Obsidian |
| Post | X Articles |
https://x.com/xiaoxiaodong01/status/123
| Input | Behavior |
|---|---|
--- title --- | Uses frontmatter title when possible. |
# Heading | First H1 becomes the title as a fallback. |
| Paragraphs, lists, quotes | Converted to X Article rich text. |
**bold** `code` | Inline styles and links preserved. |
 | Uploads local or web images xPoster can read. |
| Markdown tables | Inserted as readable X table blocks. |
| X / Twitter status URLs | Inserted as real tweet embeds where supported. |
| Code fences & dividers | Imported as supported X Article blocks. |
05
06
Use the Web Store build unless you want to inspect or modify the extension yourself.
For developers
chrome://extensions.manifest.json folder.git clone https://github.com/nevertoday/xposter.git07
Load or edit a Markdown draft first, open an X Article tab, then click Check article.
Local images need a selected image folder. Web images need to be downloadable after Chrome grants the image-site permission.
Do not publish yet. Edit directly in X, or reset the draft and retry from the saved Markdown record.
Open an issue with your Chrome version, xPoster version, and the diagnostics JSON from the toolbar popup.
Only the optional cover generator, with your own key, and it sends only the source text you choose. You can also point it at any OpenAI-compatible endpoint, including a local one.
08
xPoster is free and open source. If it saves you time, a star, an issue, or a WeChat, Alipay, or Buy Me a Coffee scan all help keep it maintained.


