发布内容和文章到 X (Twitter)。支持带图片的普通推文和 X Articles(长文)。使用真实的 Chrome 和 CDP 来绕过自动化检测。
使用真实的 Chrome 浏览器发布内容、图片和长篇文章到 X(绕过反机器人检测)。
# 仅发布文本
/post-to-x "Your post content here"
# 发布带图片的推文
/post-to-x "Your post content" --image /path/to/image.png
# 发布带多张图片的推文 (最多 4 张)
/post-to-x "Your post content" --image img1.png --image img2.png
# 实际提交发布
/post-to-x "Your post content" --submit
bun (用于运行脚本)直接使用 x-browser.ts 脚本:
# 预览模式 (不发布)
npx -y bun ./scripts/x-browser.ts "Hello from Claude!" --image ./screenshot.png
# 实际发布
npx -y bun ./scripts/x-browser.ts "Hello!" --image ./photo.png --submit
脚本流程:
--submit 立即发布)如果您更喜欢通过分步控制:
npx -y bun ./scripts/copy-to-clipboard.ts image /path/to/image.png
# 导航
mcp__playwright__browser_navigate url="https://x.com/compose/post"
# 获取元素引用
mcp__playwright__browser_snapshot
# 输入文本
mcp__playwright__browser_click element="editor" ref="<ref>"
mcp__playwright__browser_type element="editor" ref="<ref>" text="Your content"
# 粘贴图片 (复制到剪贴板后)
mcp__playwright__browser_press_key key="Meta+v" # macOS
# 或
mcp__playwright__browser_press_key key="Control+v" # Windows/Linux
# 截图以验证
mcp__playwright__browser_take_screenshot filename="preview.png"
| 参数 | 描述 |
|---|---|
<text> |
发布内容 (位置参数) |
--image <path> |
图片文件路径 (可重复,最多 4 张) |
--submit |
实际发布 (默认: 仅预览) |
--profile <dir> |
自定义 Chrome 配置文件目录 |
User: /post-to-x "Hello from Claude!" --image ./screenshot.png
Claude:
1. Runs: npx -y bun ./scripts/x-browser.ts "Hello from Claude!" --image ./screenshot.png
2. Chrome opens with X compose page
3. Text is typed into editor
4. Image is copied to clipboard and pasted
5. Browser stays open 30s for preview
6. Reports: "Post composed. Use --submit to post."
X_BROWSER_CHROME_PATH 环境变量npx -y bun ./scripts/copy-to-clipboard.ts image <path>x-browser.ts 脚本使用 Chrome DevTools Protocol (CDP) 来:
--disable-blink-features=AutomationControlled这种方法绕过了 X 阻止 Playwright/Puppeteer 的反自动化检测。
--submit 前请务必预览发布 Markdown 文章到 X Articles 编辑器,支持富文本格式和图片。
# 发布 Markdown 文章 (预览模式)
/post-to-x article /path/to/article.md
# 带自定义封面图片
/post-to-x article article.md --cover ./hero.png
# 带自定义标题
/post-to-x article article.md --title "My Custom Title"
# 实际发布 (不仅仅是草稿)
/post-to-x article article.md --submit
bun直接使用 x-article.ts:
npx -y bun ./scripts/x-article.ts article.md
npx -y bun ./scripts/x-article.ts article.md --cover ./cover.jpg
npx -y bun ./scripts/x-article.ts article.md --submit
---
title: My Article Title
cover_image: /path/to/cover.jpg
---
# Title (becomes article title)
Regular paragraph text with **bold** and *italic*.
## Section Header
More content here.

- List item 1
- List item 2
1. Numbered item
2. Another item
> Blockquote text
[Link text](https://example.com)
\`\`\`
Code blocks become blockquotes (X doesn't support code)
\`\`\`
| 字段 | 描述 |
|---|---|
title |
文章标题 (或使用第一个 H1) |
cover_image |
封面图片路径或 URL |
cover |
cover_image 的别名 |
image |
cover_image 的别名 |
cover_image[[IMAGE_PLACEHOLDER_N]] 格式转换 Markdown 并检查结构:
# 获取包含所有元数据的 JSON
npx -y bun ./scripts/md-to-html.ts article.md
# 仅输出 HTML
npx -y bun ./scripts/md-to-html.ts article.md --html-only
# 保存 HTML 到文件
npx -y bun ./scripts/md-to-html.ts article.md --save-html /tmp/article.html
JSON 输出:
{
"title": "Article Title",
"coverImage": "/path/to/cover.jpg",
"contentImages": [
{
"placeholder": "[[IMAGE_PLACEHOLDER_1]]",
"localPath": "/tmp/x-article-images/img.png",
"blockIndex": 5
}
],
"html": "<p>Content...</p>",
"totalBlocks": 20
}
| Markdown | HTML 输出 |
|---|---|
# H1 |
仅标题 (不在正文中) |
## H2 - ###### H6 |
<h2> |
**bold** |
<strong> |
*italic* |
<em> |
[text](url) |
<a href> |
> quote |
<a> |
`code` |
<code> |
``` |
<blockquote> (X 限制) |
- item |
<ul><li> |
1. item |
<ol><li> |
 |
Image placeholder |
x.com/compose/articles--submit 标志时发布User: /post-to-x article ./blog/my-post.md --cover ./thumbnail.png
Claude:
1. Parses markdown: title="My Post", 3 content images
2. Launches Chrome with CDP
3. Navigates to x.com/compose/articles
4. Clicks create button
5. Uploads thumbnail.png as cover
6. Fills title "My Post"
7. Pastes HTML content
8. Inserts 3 images at placeholder positions
9. Reports: "Article composed. Review and use --submit to publish."
npx -y bun ./scripts/copy-to-clipboard.ts html --file /tmp/test.htmlmd-to-html.ts 将 Markdown 转换为 HTML:
x-article.ts 通过 CDP 发布:
| 脚本 | 用途 |
|---|---|
x-browser.ts |
普通推文 (文本 + 图片) |
x-article.ts |
Article 发布 (Markdown) |
md-to-html.ts |
Markdown → HTML 转换 |
copy-to-clipboard.ts |
复制图片/HTML 到剪贴板 |