Skip to main content
ClaudeWave
Skill6.5k repo starsupdated yesterday

x-article-publisher

The x-article-publisher skill converts Markdown articles to rich text and publishes them to X (Twitter) Articles editor with automated cover image upload. Use it when you need to publish Markdown files or URLs to X Articles, when someone mentions publishing to X or posting articles to Twitter, or when assistance is needed with X Premium article publishing workflows.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/anbeime/skill /tmp/x-article-publisher && cp -r /tmp/x-article-publisher/skills/qiaomu-x-article-publisher/qiaomu-x-article-publisher-github ~/.claude/skills/x-article-publisher
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# X Article Publisher

Publish Markdown content to X (Twitter) Articles editor, preserving formatting with rich text conversion.

## Prerequisites

- X Premium Plus subscription
- Python 3.9+ with dependencies: `pip install Pillow pyobjc-framework-Cocoa patchright`

## 🎉 首次使用:一次认证,告别重复登录

**X Article Publisher 现在支持持久化认证,无需每次手动登录!**

### 🔧 初始化认证(仅需一次)

首次使用前,运行认证设置:

```bash
cd ~/.claude/skills/x-article-publisher/scripts
python auth_manager.py setup
```

**流程:**
1. ✅ 浏览器窗口自动打开 X 登录页面
2. 🔐 手动登录你的 X 账号(需 Premium+ 订阅)
3. ✅ 完成 2FA 验证(如已启用)
4. 🏠 登录成功后自动跳转到 Home 时间线
5. 💾 认证状态自动保存(有效期 7 天)

### 📋 认证管理命令

```bash
# 检查认证状态
python auth_manager.py status

# 验证认证是否有效
python auth_manager.py validate

# 清除认证数据(需重新登录)
python auth_manager.py clear

# 重新认证(清除 + 设置)
python auth_manager.py reauth
```

### 🚀 自动化工作流

认证设置完成后,skill 执行时会自动:
1. ✅ 检查认证状态
2. 🔓 如已认证,直接使用保存的浏览器状态(无需登录)
3. ⚠️ 如未认证,提示运行 `auth_manager.py setup`

**注意**:认证数据存储在 `~/.claude/skills/x-article-publisher/data/browser_state/`,已通过 .gitignore 排除,不会提交到 Git。

---

## Scripts

Located in `~/.claude/skills/x-article-publisher/scripts/`:

### publish_article.py (主脚本 - 一键发布)
**推荐使用** - 自动完成所有发布步骤:
```bash
# 基本用法
python publish_article.py --file article.md

# 显示浏览器(调试用)
python publish_article.py --file article.md --show-browser

# 自定义标题
python publish_article.py --file article.md --title "自定义标题"
```

### parse_markdown.py
Parse Markdown and extract structured data:
```bash
python parse_markdown.py <markdown_file> [--output json|html] [--html-only]
```
Returns JSON with: title, cover_image, content_images (with block_index for positioning), html, total_blocks

### copy_to_clipboard.py
Copy image or HTML to system clipboard:
```bash
# Copy image (with optional compression)
python copy_to_clipboard.py image /path/to/image.jpg [--quality 80]

# Copy HTML for rich text paste
python copy_to_clipboard.py html --file /path/to/content.html
```

## Workflow (简化版)

**前提**:已完成认证设置(`python auth_manager.py setup`)

### 🚀 一键发布(推荐)

直接运行 publish_article.py,自动完成所有步骤:

```bash
cd ~/.claude/skills/x-article-publisher/scripts
python publish_article.py --file /path/to/article.md
```

脚本会自动:
1. ✅ 检查认证状态
2. 📄 解析 Markdown 文件
3. 🌐 启动已认证的浏览器
4. 📍 导航到 X Articles 编辑器
5. 🔘 点击 create 按钮
6. 🖼️ 上传封面图(如有)
7. 📝 填写标题
8. 📋 粘贴 HTML 内容
9. ✅ 保存草稿(**不会自动发布**)

### 手动工作流(高级用户)

如需更精细控制,可分步执行:
1. Parse Markdown: `python parse_markdown.py article.md`
2. 手动操作浏览器发布

---

## 🧠 智能增强功能

### 智能标题生成

当文章没有 H1 标题时,`parse_markdown.py` 会返回 `needs_title_generation: true`。

**Claude 应该自动:**
1. 阅读文章内容,理解核心观点
2. 生成一个吸引人点击的标题(15-25字为佳)
3. 使用 `--title "生成的标题"` 参数发布

**好标题的特点:**
- 包含数字或具体细节("3个方法"、"90%的人不知道")
- 激发好奇心("为什么..."、"如何..."、"...的真相")
- 与读者切身相关
- 避免标题党,但要有吸引力

**示例:**
```bash
# 解析文章
python parse_markdown.py article.md

# 如果 needs_title_generation: true,Claude 生成标题后:
python publish_article.py --file article.md --title "AI时代,普通人的3个生存法则"
```

### 智能封面图生成

当文章没有封面图时,`parse_markdown.py` 会返回 `needs_cover_generation: true`。

**Claude 应该自动:**
1. 阅读文章,提炼核心概念(1-3个关键词)
2. 调用 `gemini-image-generator` 或 `jimeng-image-generator` skill 生成封面图
3. 封面图风格建议:
   - 简洁大气,避免复杂细节
   - 可以是抽象概念的可视化
   - 或是带有核心关键词的文字海报
4. 将生成的图片路径插入到文章开头作为封面

**封面图生成提示词模板:**
```
为一篇关于「{文章主题}」的文章生成封面图。
风格:简洁、现代、科技感
元素:{1-3个核心视觉元素}
文字:可选,如果加文字只放{1-3个关键词}
尺寸:16:9 横版
```

**工作流示例:**
```bash
# 1. 解析文章
python parse_markdown.py article.md
# 输出: needs_cover_generation: true

# 2. Claude 调用生图 skill 生成封面(假设保存到 /tmp/cover.png)

# 3. 将封面图插入文章开头,或手动上传
```

**注意**:封面图上传目前需要在浏览器中手动操作,脚本会打开编辑器后等待用户操作。

---

## 技术细节

### parse_markdown.py 输出格式

```json
{
  "title": "Article Title",
  "title_source": "h1",           // "h1", "h2", "first_line", or "none"
  "needs_title_generation": false, // true if no H1 title
  "cover_image": "/path/to/first-image.jpg",
  "needs_cover_generation": false, // true if no cover image
  "content_images": [
    {"path": "/path/to/img2.jpg", "block_index": 5}
  ],
  "html": "<p>Content...</p><h2>Section</h2>...",
  "total_blocks": 45
}
```

**字段说明:**
- `title_source`: 标题来源
  - `h1`: 来自 H1 标题(最理想)
  - `h2`: 来自第一个 H2 标题
  - `first_line`: 来自第一行文本
  - `none`: 无法提取标题
- `needs_title_generation`: 是否需要 Claude 生成更好的标题
- `needs_cover_generation`: 是否需要 Claude 生成封面图

## Critical Rules

1. **NEVER auto-publish** - Only save as draft
2. **NO automatic cover images** - User adds cover manually, never insert first image as cover
3. **Clean placeholders** - Remove all remaining `@@@IMG_X@@@` markers after image insertion
4. **H1 title handling** - H1 is used as title only, not included in body

## Supported Formatting

- H2 headers (## )
- Blockquotes (> )
- Code blocks (converted to blockquotes)
- Bold text (**)
- Hyperlinks ([text](url))
- Ordered/Unordered lists
- Paragraphs

## Example

User: "Publish /path/to/article.md to X"

```bash
cd ~/.claude/skills/x-article-publisher/scripts
python publish_article.py --file /path/to/article.md
```

Output:
```
📄 解析文件:/path/to/article.md
  📝 标题:文章标题
  🖼️  封面图:/path/to/cover.jpg
  📷 内容图:2 张

🌐 启动浏览器...
  📍 导航到 X Articles...
  🔘 点击 create 按钮...
  📝 填写标题...
  📋 粘贴内容...

✅ 草稿已创建!
  💡 请在浏览器中检查并手动发布
  🖥️  浏览器保持打开,请检查草稿并手动发布
  ⏎  完成后按回车键关闭浏览器...
```



**技术经验参考**: 浏览器自动化调试技巧详见 [skill-development-guide](../skill-development-guide/technical-lessons.md)
xiaoyue-companionSkill

专为软件开发工程师与综合办公文员打造。当你在等待任务执行、工作疲惫或需要鼓励时,使用此技能通过智谱AI自动生成温暖对话回应与场景配图,一键获取专属情绪价值与虚拟陪伴,让AI助手更懂你。

companion-skillSkill

软件开发工程师与综合办公文员在长时间独自执行后台任务或处理繁琐工作时,当需要情绪陪伴与互动反馈,请使用此技能。小跃虚拟伴侣会在任务期间主动陪聊,智能生成专属生活照片并通过飞书发送温暖消息,为你提供全天候的情绪价值与贴心陪伴。

agent-teamSkill

产品经理与项目管理专家在应对复杂项目时,使用此技能可动态组建包含“执行、指挥、评审”的专属AI团队。实时查看多智能体辩论与决策全过程,共享统一上下文记忆,一键完成从会议决策到系统构建的全流程高效协同!

agentkit-multimedia-shoppingSkill

电商运营与内容创作者在需要制作带货短视频时,用此技能一键生成9:16竖屏数字人成片。自动编排AI绘画、语音合成与视频生成,快速产出“小省导购员”专属形象与专业配音,让多模态视频制作省时省力。

article-illustratorSkill

内容创作者和自媒体创作者在撰写长文时,当需要“给文章配图”或“添加插图”时使用。自动分析文章结构,精准识别需要视觉辅助的位置,生成并插入契合语境的插画,将抽象概念具象化,一键完成高质量图文排版,大幅提升阅读体验。

bedtime-storySkill

内容创作者在需要哄睡3-12岁儿童或制作睡前音频内容时,可一键生成20个精选故事列表,或直接讲解指定寓言与成语。以0.6倍舒缓语速和亲切语气自动营造温馨哄睡氛围,轻松搞定高质量睡前陪伴。

chrome-automationSkill

网页开发工程师与运营专员在需要自动化现有 Chrome 浏览器时必用!通过 CDP 协议无缝接管当前浏览器,自动配置环境并实时可视化执行任务。完美保留登录状态,一键完成复杂网页自动化流程,让繁琐操作自动化。

content-creation-publisherSkill

内容创作者与自媒体创作者在需要将网页素材转化为多平台图文时,使用本技能可自动完成网页提取、Markdown排版美化、智能配图,并一键发布至微信公众号与X/Twitter,轻松实现从采集到发布的一站式自动化工作流。