关于 canghe-post-to-x
面向 skills 兼容 Agent 的 X 发帖工具,借助真实 Chrome 浏览器预填文字、媒体和长文内容;发布前由用户检查并手动提交。
主要功能
- 01发布文字和最多 4 张图片
- 02发布视频
- 03引用推文并添加评论
- 04发布 Markdown 长文
- 05支持自定义 Chrome 配置文件
适用场景
- 01准备带图片的 X 日常帖子
- 02将视频内容提交到 X
- 03引用现有推文并附上评论
- 04将 Markdown 文章整理为 X 长文
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ freestylefly/ canghe-skills --skill canghe-post-to-x安装后在 Claude Code 中输入/canghe-post-to-x确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/articles.mdregular-posts.mdscripts/bun.lockcheck-paste-permissions.tscopy-to-clipboard.tsmd-to-html.tspackage.jsonpaste-from-clipboard.tsx-article.tsx-browser.tsx-quote.tsx-utils.tsx-video.ts详细介绍
发布到 X(Twitter)
通过真实的 Chrome 浏览器向 X 发布文本、图片、视频和长文(绕过反机器人检测)。
脚本目录
重要:所有脚本都位于此技能的 scripts/ 子目录中。
Agent 执行说明:
- 确定此 SKILL.md 文件所在的目录路径,并将其设为
SKILL_DIR - 脚本路径 =
${SKILL_DIR}/scripts/<script-name>.ts - 将本文档中的所有
${SKILL_DIR}替换为实际路径
脚本参考:
| 脚本 | 用途 |
|---|---|
scripts/x-browser.ts | 常规帖子(文本 + 图片) |
scripts/x-video.ts | 视频帖子(文本 + 视频) |
scripts/x-quote.ts | 带评论的引用推文 |
scripts/x-article.ts | 发布长文(Markdown) |
scripts/md-to-html.ts | Markdown → HTML 转换 |
scripts/copy-to-clipboard.ts | 将内容复制到剪贴板 |
scripts/paste-from-clipboard.ts | 发送真实的粘贴按键 |
scripts/check-paste-permissions.ts | 检查环境和权限 |
偏好设置(EXTEND.md)
使用 Bash 按优先级顺序检查 EXTEND.md 是否存在:
# Check project-level first
test -f .canghe-skills/canghe-post-to-x/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.canghe-skills/canghe-post-to-x/EXTEND.md" && echo "user"
┌──────────────────────────────────────────────────┬───────────────────┐ │ 路径 │ 位置 │ ├──────────────────────────────────────────────────┼───────────────────┤ │ .canghe-skills/canghe-post-to-x/EXTEND.md │ 项目目录 │ ├──────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.canghe-skills/canghe-post-to-x/EXTEND.md │ 用户主目录 │ └──────────────────────────────────────────────────┴───────────────────┘
┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ 结果 │ 操作 │ ├─────────────────────────────────────────────────────────────────────────────────────┤ │ 找到 │ 读取、解析并应用设置 │ ├─────────────────────────────────────────────────────────────────────────────────────┤ │ 未找到 │ 使用默认设置 │ └───────────┴───────────────────────────────────────────────────────────────────────────┘
EXTEND.md 支持:默认 Chrome 配置文件
先决条件
- Google Chrome 或 Chromium
bun运行时- 首次运行:手动登录 X(会保存会话)
使用前检查(可选)
首次使用前,建议运行环境检查。用户也可以选择跳过。
npx -y bun ${SKILL_DIR}/scripts/check-paste-permissions.ts
检查项目:Chrome、配置文件隔离、Bun、辅助功能、剪贴板、粘贴按键、Chrome 冲突。
如果任何检查失败,请针对相应项目提供修复指导:
| 检查 | 修复方法 |
|---|---|
| Chrome | 安装 Chrome 或设置 X_BROWSER_CHROME_PATH 环境变量 |
| 配置文件目录 | 确保 ~/.local/share/x-browser-profile 可写 |
| Bun 运行时 | curl -fsSL https://bun.sh/install | bash |
| 辅助功能(macOS) | 系统设置 → 隐私与安全性 → 辅助功能 → 启用终端应用 |
| 复制到剪贴板 | 确保 Swift/AppKit 可用(macOS Xcode 命令行工具:xcode-select --install) |
| 粘贴按键(macOS) | 同上面的辅助功能修复方法 |
| 粘贴按键(Linux) | 安装 xdotool(X11)或 ydotool(Wayland) |
参考资料
- 常规帖子:有关手动工作流、故障排除和技术详情,请参阅
references/regular-posts.md - X 长文:有关发布长文的指南,请参阅
references/articles.md
常规帖子
文本 + 最多 4 张图片。
npx -y bun ${SKILL_DIR}/scripts/x-browser.ts "Hello!" --image ./photo.png
参数:
| 参数 | 描述 |
|---|---|
<text> | 帖子内容(位置参数) |
--image <path> | 图片文件(可重复指定,最多 4 张) |
--profile <dir> | 自定义 Chrome 配置文件 |
注意:脚本会打开浏览器并填入内容。用户检查后手动发布。
视频帖子
文本 + 视频文件。
npx -y bun ${SKILL_DIR}/scripts/x-video.ts "Check this out!" --video ./clip.mp4
参数:
| 参数 | 描述 |
|---|---|
<text> | 帖子内容(位置参数) |
--video <path> | 视频文件(MP4、MOV、WebM) |
--profile <dir> | 自定义 Chrome 配置文件目录 |
注意:脚本会打开浏览器并填入内容。用户需自行审核并发布。
限制:普通用户最长 140 秒,Premium 用户最长 60 分钟。处理时间:30-60 秒。
引用推文
引用现有推文并添加评论。
npx -y bun ${SKILL_DIR}/scripts/x-quote.ts https://x.com/user/status/123 "Great insight!"
参数:
| 参数 | 描述 |
|---|---|
<tweet-url> | 要引用的 URL(位置参数) |
<comment> | 评论文本(位置参数,可选) |
--profile <dir> | 自定义 Chrome 配置文件目录 |
注意:脚本会打开浏览器并填入内容。用户需自行审核并发布。
X 文章
长篇 Markdown 文章(需要 X Premium)。
npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md
npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md --cover ./cover.jpg
参数:
| 参数 | 描述 |
|---|---|
<markdown> | Markdown 文件(位置参数) |
--cover <path> | 封面图片 |
--title <text> | 覆盖标题 |
Frontmatter:支持 YAML front matter 中的 title、cover_image。
注意:脚本会打开浏览器并填入文章内容。用户需自行审核并发布。
故障排除
Chrome 调试端口尚未就绪
如果脚本因 Chrome debug port not ready 或 Unable to connect 而失败,请先终止现有的 Chrome CDP 实例,然后重试:
pkill -f "Chrome.*remote-debugging-port" 2>/dev/null; pkill -f "Chromium.*remote-debugging-port" 2>/dev/null; sleep 2
重要:应自动执行此操作——遇到此错误时,终止 Chrome CDP 实例并重试命令,无需询问用户。
注意事项
- 首次运行:需要手动登录(会保留会话)
- 所有脚本都只会将内容填入浏览器,用户必须自行审核并发布
- 跨平台:macOS、Linux、Windows
扩展支持
通过 EXTEND.md 进行自定义配置。路径和支持的选项请参阅 Preferences 部分。