Guardrail·Sales & CRM

X Article Publisher

Publishes Markdown articles directly to the X (Twitter) Articles editor with automated formatting and persistent authentication.

You say
Install this skill Read the source first Free Written by anbeime · unverified publisher
Context cost
51.8k tokensestimated from the bundle, loaded when it triggers
Bundle
24 files · 207.3 kB14 scripts among them — read before you run
Licence
MITfree to use
Last change
no release on file
Servers it uses
Noneruns standalone

What it does

Publish Markdown articles to X (Twitter) Articles editor with proper formatting. Use when user wants to publish a Markdown file/URL to X Articles, or mentions "publish to X", "post article to Twitter", "X article", or wants help with X Premium article publishing. Handles cover image upload and converts Markdown to rich text automatically.

Installed, it changes the agent in these ways.

What this skill changes about the agent is not written down here yet. The listing was collected from its source, and the description is in its own SKILL.md.

Guardrail

Constrains what the agent is allowed to do.

social media
Filed under

Sales & CRM

The skill itself

This is the whole product. A skill is instructions the model reads, so there is nothing behind the listing you cannot see first — the front matter loads with every session, and the body below it loads when the skill triggers.

SKILL.md7.8 kB · 267 lines
--- name: x-article-publisher description: Publish Markdown articles to X (Twitter) Articles editor with proper formatting. Use when user wants to publish a Markdown file/URL to X Articles, or mentions "publish to X", "post article to Twitter", "X article", or wants help with X Premium article publishing. Handles cover image upload and converts Markdown to rich text automatically. ---
6# X Article Publisher
7
8Publish Markdown content to X (Twitter) Articles editor, preserving formatting with rich text conversion.
9
10## Prerequisites
11
12- X Premium Plus subscription
13- Python 3.9+ with dependencies: pip install Pillow pyobjc-framework-Cocoa patchright
14
15## 🎉 首次使用:一次认证,告别重复登录
16
17**X Article Publisher 现在支持持久化认证,无需每次手动登录!**
18
19### 🔧 初始化认证(仅需一次)
20
21首次使用前,运行认证设置:
22
23```bash
24cd ~/.claude/skills/x-article-publisher/scripts
25python auth_manager.py setup
26```
27
28**流程:**
291. ✅ 浏览器窗口自动打开 X 登录页面
302. 🔐 手动登录你的 X 账号(需 Premium+ 订阅)
313. ✅ 完成 2FA 验证(如已启用)
324. 🏠 登录成功后自动跳转到 Home 时间线
335. 💾 认证状态自动保存(有效期 7 天)
34
35### 📋 认证管理命令
36
37```bash
38# 检查认证状态
39python auth_manager.py status
40
41# 验证认证是否有效
42python auth_manager.py validate
43
44# 清除认证数据(需重新登录)
45python auth_manager.py clear
46
47# 重新认证(清除 + 设置)
48python auth_manager.py reauth
49```
50
51### 🚀 自动化工作流
52
53认证设置完成后,skill 执行时会自动:
541. ✅ 检查认证状态
552. 🔓 如已认证,直接使用保存的浏览器状态(无需登录)
563. ⚠️ 如未认证,提示运行 auth_manager.py setup
57
58**注意**:认证数据存储在 ~/.claude/skills/x-article-publisher/data/browser_state/,已通过 .gitignore 排除,不会提交到 Git。
59
60---
61
62## Scripts
63
64Located in ~/.claude/skills/x-article-publisher/scripts/:
65
66### publish_article.py (主脚本 - 一键发布)
67**推荐使用** - 自动完成所有发布步骤:
68```bash
69# 基本用法(默认显示浏览器)
70python publish_article.py --file article.md
71
72# 隐藏浏览器(后台运行)
73python publish_article.py --file article.md --headless
74
75# 自定义标题
76python publish_article.py --file article.md --title "自定义标题"
77```
78
79### parse_markdown.py
80Parse Markdown and extract structured data:
81```bash
82python parse_markdown.py <markdown_file> [--output json|html] [--html-only]
83```
84Returns JSON with: title, cover_image, content_images (with block_index for positioning), html, total_blocks
85
86### copy_to_clipboard.py
87Copy image or HTML to system clipboard:
88```bash
89# Copy image (with optional compression)
90python copy_to_clipboard.py image /path/to/image.jpg [--quality 80]
91
92# Copy HTML for rich text paste
93python copy_to_clipboard.py html --file /path/to/content.html
94```
95
96## Workflow (简化版)
97
98**前提**:已完成认证设置(python auth_manager.py setup
99
100### 🚀 一键发布(推荐)
101
102直接运行 publish_article.py,自动完成所有步骤:
103
104```bash
105cd ~/.claude/skills/x-article-publisher/scripts
106python publish_article.py --file /path/to/article.md
107```
108
109脚本会自动:
1101. ✅ 检查认证状态
1112. 📄 解析 Markdown 文件
1123. 🌐 启动已认证的浏览器
1134. 📍 导航到 X Articles 编辑器
1145. 🔘 点击 create 按钮
1156. 🖼️ 上传封面图(如有)
1167. 📝 填写标题
1178. 📋 粘贴 HTML 内容
1189. ✅ 保存草稿(**不会自动发布**)
119
120### 手动工作流(高级用户)
121
122如需更精细控制,可分步执行:
1231. Parse Markdown: python parse_markdown.py article.md
1242. 手动操作浏览器发布
125
126---
127
128## 🧠 智能增强功能
129
130### 智能标题生成
131
132当文章没有 H1 标题时,parse_markdown.py 会返回 needs_title_generation: true
133
134**Claude 应该自动:**
1351. 阅读文章内容,理解核心观点
1362. 生成一个吸引人点击的标题(15-25字为佳)
1373. 使用 --title "生成的标题" 参数发布
138
139**好标题的特点:**
140- 包含数字或具体细节("3个方法"、"90%的人不知道")
141- 激发好奇心("为什么..."、"如何..."、"...的真相")
142- 与读者切身相关
143- 避免标题党,但要有吸引力
144
145**示例:**
146```bash
147# 解析文章
148python parse_markdown.py article.md
149
150# 如果 needs_title_generation: true,Claude 生成标题后:
151python publish_article.py --file article.md --title "AI时代,普通人的3个生存法则"
152```
153
154### 智能封面图生成
155
156当文章没有封面图时,parse_markdown.py 会返回 needs_cover_generation: true
157
158**Claude 应该自动:**
1591. 阅读文章,提炼核心概念(1-3个关键词)
1602. 调用 gemini-image-generatorjimeng-image-generator skill 生成封面图
1613. 封面图风格建议:
162 - 简洁大气,避免复杂细节
163 - 可以是抽象概念的可视化
164 - 或是带有核心关键词的文字海报
1654. 将生成的图片路径插入到文章开头作为封面
166
167**封面图生成提示词模板:**
168```
169为一篇关于「{文章主题}」的文章生成封面图。
170风格:简洁、现代、科技感
171元素:{1-3个核心视觉元素}
172文字:可选,如果加文字只放{1-3个关键词}
173尺寸:16:9 横版
174```
175
176**工作流示例:**
177```bash
178# 1. 解析文章
179python parse_markdown.py article.md
180# 输出: needs_cover_generation: true
181
182# 2. Claude 调用生图 skill 生成封面(假设保存到 /tmp/cover.png)
183
184# 3. 将封面图插入文章开头,或手动上传
185```
186
187**注意**:封面图上传目前需要在浏览器中手动操作,脚本会打开编辑器后等待用户操作。
188
189---
190
191## 技术细节
192
193### parse_markdown.py 输出格式
194
195```json
196{
197 "title": "Article Title",
198 "title_source": "h1", // "h1", "h2", "first_line", or "none"
199 "needs_title_generation": false, // true if no H1 title
200 "cover_image": "/path/to/first-image.jpg",
201 "needs_cover_generation": false, // true if no cover image
202 "content_images": [
203 {"path": "/path/to/img2.jpg", "block_index": 5}
204 ],
205 "html": "<p>Content...</p><h2>Section</h2>...",
206 "total_blocks": 45
207}
208```
209
210**字段说明:**
211- title_source: 标题来源
212 - h1: 来自 H1 标题(最理想)
213 - h2: 来自第一个 H2 标题
214 - first_line: 来自第一行文本
215 - none: 无法提取标题
216- needs_title_generation: 是否需要 Claude 生成更好的标题
217- needs_cover_generation: 是否需要 Claude 生成封面图
218
219## Critical Rules
220
2211. **NEVER auto-publish** - Only save as draft
2222. **NO automatic cover images** - User adds cover manually, never insert first image as cover
2233. **Clean placeholders** - Remove all remaining @@@IMG_X@@@ markers after image insertion
2244. **H1 title handling** - H1 is used as title only, not included in body
225
226## Supported Formatting
227
228- H2 headers (## )
229- Blockquotes (> )
230- Code blocks (converted to blockquotes)
231- Bold text (**)
232- Hyperlinks ([text](url))
233- Ordered/Unordered lists
234- Paragraphs
235
236## Example
237
238User: "Publish /path/to/article.md to X"
239
240```bash
241cd ~/.claude/skills/x-article-publisher/scripts
242python publish_article.py --file /path/to/article.md
243```
244
245Output:
246```
247📄 解析文件:/path/to/article.md
248 📝 标题:文章标题
249 🖼️ 封面图:/path/to/cover.jpg
250 📷 内容图:2 张
251
252🌐 启动浏览器...
253 📍 导航到 X Articles...
254 🔘 点击 create 按钮...
255 📝 填写标题...
256 📋 粘贴内容...
257
258✅ 草稿已创建!
259 💡 请在浏览器中检查并手动发布
260 🖥️ 浏览器保持打开,请检查草稿并手动发布
261 ⏎ 完成后按回车键关闭浏览器...
262```
263
264
265
266**技术经验参考**: 浏览器自动化调试技巧详见 [skill-development-guide](../skill-development-guide/technical-lessons.md)
267
In the file
SKILL.md681 words
Files24
LicenceMIT
Why you can read it

Nothing in a skill executes. The client loads the text and the model follows it, so a skill can be audited the way a runbook is — by reading it.

What it costs in context

Skills are not billed by the call. They are paid for in context: every token the instructions occupy is a token your code, your diff and your conversation cannot use. Here is what this one takes and when it takes it.

≈100
always loaded
The name and description, so the model knows the skill exists and when to reach for it.
51,725
on trigger
The instruction body and 23 supporting files, read only when the skill fires.
25.9%
of a 200k window
Ten skills this size would take about 259% of the window before you open a file.
050k100k150k200k context window

51.8k tokens, estimated from the bundle at four bytes to the token, held for the rest of the session once it triggers. Heavy. Teams tend to install this one per project rather than globally, and load it only when the job comes up.

Servers bill, skills cost

A server charges by the month. A skill charges once per session, in context, and then keeps charging it for as long as the session lives.

Before and after

The same question, put to the same model twice: once as it comes, and once with these instructions loaded.

No worked example has been published for this skill yet.

Adoption
Installsnone yet
Ratingno reviews yet

The procedure it runs

The procedure has not been published here. It is in the skill’s own SKILL.md, which its author has not sent to the marketplace yet.

Prose, not code

These steps are written for a model to follow, not executed by a runtime. It can still be told to skip one, and it will say so when it does.

Servers it uses

None. This skill calls no MCP servers at all.

Everything it needs is in the instructions, so it works in a project with nothing connected — the model reads the file and changes how it works with what it can already reach.

It writes no files and reaches no network. All it changes is how the model reasons and writes.

What it asks for
Writes filesno
Network accessno

Read from the allowed-tools line of this skill’s own SKILL.md. A skill grants no permissions of its own — it can only ask for tools your client already has.

What it will not do

Every skill is narrow, and the useful ones say where they stop. These are the jobs this one is the wrong tool for.

What this skill is not for has not been published here. Nothing is implied by that: it is a section the author has not filled in.

What is in the bundle

24 files, 207.3 kB on disk. Mostly text — the instructions the model reads — with 14 scripts in it that your client would run only if the instructions tell it to.

  • CHANGELOG.md1.6 kB
  • README.md4.9 kB
  • SKILL.md7.8 kB
  • metadata.json0.7 kB
  • qiaomu-x-article-publisher-github/CHANGELOG.md1.5 kB
  • qiaomu-x-article-publisher-github/CONTRIBUTING.md2.5 kB
  • qiaomu-x-article-publisher-github/README.md3.5 kB
  • qiaomu-x-article-publisher-github/README_FULL.md5.1 kB
  • qiaomu-x-article-publisher-github/SKILL.md7.8 kB
  • qiaomu-x-article-publisher-github/metadata.json0.7 kB
  • qiaomu-x-article-publisher-github/scripts/auth_manager.py9.2 kB
  • qiaomu-x-article-publisher-github/scripts/copy_to_clipboard.py6.2 kB
  • qiaomu-x-article-publisher-github/scripts/debug_editor.py5.1 kB
  • qiaomu-x-article-publisher-github/scripts/debug_page.py2.4 kB
  • qiaomu-x-article-publisher-github/scripts/parse_markdown.py17.1 kB
  • qiaomu-x-article-publisher-github/scripts/publish_article.py40.4 kB
  • qiaomu-x-article-publisher-github/scripts/site_config.py1.7 kB
  • scripts/auth_manager.py9.2 kB
  • scripts/copy_to_clipboard.py6.2 kB
  • scripts/debug_editor.py5.1 kB
  • scripts/debug_page.py2.4 kB
  • scripts/parse_markdown.py22.4 kB
  • scripts/publish_article.py42.1 kB
  • scripts/site_config.py1.7 kB
What is not in it

A skill installs nothing and depends on nothing: it is a folder your client reads. This one carries 14 scripts beside the text, so the bundle is 24 files you can review in full before installing. The MIT licence covers the templates and examples as well as the instructions.

Install

Installing copies the bundle into your project. Nothing runs at install time — the files sit on disk until the model reads them.

# X Article Publisher · 51.8k tokens when loaded npx mcprush@latest skill add anbeime/x-article-publisher

Writes to .claude/skills/x-article-publisher/ in the current project. Add --global to put it in your home directory instead, for every project.

Which clients pick it up on their own

A skill is a folder of text. A client with a skills folder reads it without being told; everywhere else the same text works, it is just handed to the model rather than found.

Claude Code.claude/skills/
Claude Desktop
ChatGPT
Cursor.cursor/skills/
VS Code.github/skills/
Codex CLI.agents/skills/
Gemini CLI.gemini/skills/
Grok.grok/skills/
Zed.agents/skills/
Windsurf.windsurf/skills/
Agent SDK.claude/skills/
HTTP / API
This release
Versionnot versioned
Publishedno release date on file
PriceFree
Referenceanbeime/x-article-publisher

Versions

Its author publishes no version number, so there is nothing here to pin to: what you install is the folder as it stands today. Instructions change more often than APIs do — a skill can be rewritten entirely without anything it depends on moving.

v
  • No earlier releases have been published to the marketplace.
Pinning

Nothing to pin to: this skill carries no version number of its own. What you install is what the folder holds on the day you install it.

Reviews

no reviews yet · no installs yet

Nobody has reviewed this skill yet. The rating is the mean of the reviews written here, so there is none until somebody writes the first.

Who can post

Only accounts that have had the skill installed for fourteen days, so a review is written after living with it rather than after reading it. Publishers may reply once.

Who wrote it

AN
anbeime

Publishes on mcprush.

0 servers listed1 skill listednot claimed
Profile
Publisher
Servers0
Claim this skill