用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Demerzels-lab/elsamultiskillagent --skill csdn-publisher命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | csdn-publisher |
| version | 2.0.0 |
| description | 写文章并发布到 CSDN。使用浏览器自动化 + 扫码登录。支持通过 Telegram 发送二维码,无需 VNC。集成 blog-writer 写作方法论,产出高质量、有个人风格的技术文章。 |
通过浏览器自动化发布文章到 CSDN。支持扫码登录,二维码可通过 Telegram 发送。
v2.0 新增:集成 blog-writer 写作方法论,自动产出高质量、有个人风格的技术文章。
1. 用户说"帮我发篇 CSDN 文章"或提供主题/素材
2. 【内容创作阶段】调用 blog-writer 写作方法论
├─ 阅读 style-guide-cn.md 校准写作风格
├─ 参考 examples/ 目录中的示例文章
├─ 整合用户提供的素材/研究材料
└─ 产出初稿,用户确认后继续
3. 检查登录状态
├─ 已登录 → 继续
└─ 未登录 → 扫码登录流程
4. 启动浏览器,打开编辑器
5. 注入标题和内容
6. 添加标签,点击发布
7. 验证发布成功,返回文章链接
8. 【可选】用户确认终稿后,保存到 examples/ 目录
当用户请求写文章时,必须先完成内容创作,再进行发布。
触发词:
向用户确认:
必须阅读 style-guide-cn.md 校准写作风格。
核心原则:
阅读 examples/ 目录中的示例文章,感受目标风格。
按照风格指南撰写,完成后展示给用户确认。
根据用户反馈修改,直到用户满意。
详见 style-guide-cn.md,核心要点:
用强有力的观点或个人经历开场:
✅ 好的开头:
❌ 避免的开头:
# [直接、有态度的标题]
[开头:1-2句话抛出核心观点或问题]
### [小标题1:问题/背景]
[2-3个短段落]
### [小标题2:过程/分析]
[具体细节、代码、截图]
### [小标题3:解决方案/结论]
[实操步骤或观点总结]
### 写在最后
[个人感想、行动号召、或前瞻性思考]
用这些:
避免这些:
写新闻汇总、行业日报等资讯类文章时:
[新闻标题](原文URL) 或在新闻末尾标注 👉 [原文链接](URL)cd /tmp && curl -sL \
"https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm" \
-o chrome.rpm && yum install -y ./chrome.rpm
pip install playwright -i https://pypi.org/simple/
playwright install chromium
需要 headless + noSandbox 模式(服务器无显示器):
# 通过 gateway config.patch 添加:
{"browser": {"headless": true, "noSandbox": true}}
cd /root/.openclaw/workspace/skills/csdn-publisher
nohup python scripts/login.py login --timeout 300 > /tmp/csdn-login.log 2>&1 &
ls ~/.openclaw/workspace/credentials/csdn-qr.png
message(action="send", filePath="~/.openclaw/workspace/credentials/csdn-qr.png", target="用户ID", caption="请用 CSDN App 扫码登录")
cat /tmp/csdn-login.log
python scripts/login.py check
browser action=start profile=openclaw
browser action=navigate targetUrl=https://editor.csdn.net/md
browser action=snapshot
检查 snapshot 结果:
textbox "请输入文章标题" → 已登录 ✅登录 或 扫码 → 需要扫码登录browser action=navigate targetUrl=https://passport.csdn.net/login
browser action=screenshot # 截取二维码发给用户
// 通过 browser act evaluate 执行
// 输入标题
const input = document.querySelector('input.article-bar__title');
input.value = '你的标题';
input.dispatchEvent(new Event('input', { bubbles: true }));
// 注入内容
const content = `你的 Markdown 内容`;
const editor = document.querySelector('.editor__inner');
editor.textContent = content;
editor.dispatchEvent(new Event('input', { bubbles: true }));
csdn-publisher/
├── SKILL.md # 本文档
├── style-guide-cn.md # 中文写作风格指南
├── examples/ # 示例文章库
│ └── *.md # 示例文章(YYYY-MM-DD-slug.md)
└── scripts/
└── login.py # 扫码登录脚本
当用户确认文章为终稿时,保存到 examples/ 目录:
examples/YYYY-MM-DD-slug-title.md
例如:examples/2025-02-02-gui-agent-overview.md
本技能依赖 blog-writer 的写作方法论:
skills/blog-writer/
├── SKILL.md # 写作工作流
├── style-guide.md # 英文风格指南(参考)
└── *.md # 示例文章
在撰写文章时,可参考 blog-writer 的:
| 坑 | 原因 | 解决方案 |
|---|---|---|
| Playwright 安装失败 | 国内镜像源没有 | pip install playwright -i https://pypi.org/simple/ |
| 进程被 kill | OpenClaw 超时机制 | 用 nohup 后台运行 |
| 二维码定位失败 | 选择器不对 | 用 img[src*="qrcode"] |
| 浏览器启动失败 | 服务器无显示器 | 配置 headless: true, noSandbox: true |
| Cookie 注入无效 | domain 设置错误 | 必须设置 domain=.csdn.net |
| 标签未添加 | 必填项 | 发布前必须添加至少一个标签 |
~/.openclaw/workspace/credentials/csdn-cookie.json # Playwright storage_state 格式
~/.openclaw/workspace/credentials/csdn-cookie.txt # 简单字符串格式(兼容)
~/.openclaw/workspace/credentials/csdn-qr.png # 登录二维码截图
browser 工具使用 Chrome 的 user-data 目录,登录状态是持久化的:
/root/.openclaw/browser/openclaw/user-datapython scripts/login.py setup-notify \
--bot-token "YOUR_BOT_TOKEN" \
--chat-id "YOUR_CHAT_ID"
nohup python scripts/login.py login --timeout 300 --notify > /tmp/csdn-login.log 2>&1 &
scripts/login.py