Invisible Playwright
feder-cr/invisible_dots
Use the Dot's browser identities for any task on a website or search on the web: which identity to use, opening and closing one, and when a plain download is simpler than a browser.
将图文/视频内容发布到小红书(XHS)。基于 Playwright + 持久化登录态,headless 即可运行, 流程与选择器移植自成熟开源实现 xiaohongshu-mcp(含发布成功校验、上传完成等待、话题联想绑定、 新旧发布按钮兼容、反检测)。适用场景:发布图文笔记、发布视频、扫码登录、发布前预检。
$ npx skills add ZJU-REAL/Easel --skill skill-xhs-publisher -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ZJU-REAL/Easel skill-xhs-publisher --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/openclaw/skill-xhs-publisher .claude/skills/skill-xhs-publisher && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "skill-xhs-publisher" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/skill-xhs-publisher into .claude/skills/skill-xhs-publisher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-xhs-publisher", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/skill-xhs-publisherType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ZJU-REAL/Easel --skill skill-xhs-publisher -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ZJU-REAL/Easel skill-xhs-publisher --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/openclaw/skill-xhs-publisher .agents/skills/skill-xhs-publisher && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "skill-xhs-publisher" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/skill-xhs-publisher into .agents/skills/skill-xhs-publisher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-xhs-publisher", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ZJU-REAL/Easel --skill skill-xhs-publisher -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ZJU-REAL/Easel skill-xhs-publisher --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/openclaw/skill-xhs-publisher .cursor/skills/skill-xhs-publisher && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "skill-xhs-publisher" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/skill-xhs-publisher into .cursor/skills/skill-xhs-publisher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-xhs-publisher", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ZJU-REAL/Easel.git --path skills/openclaw/skill-xhs-publisher--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ZJU-REAL/Easel --skill skill-xhs-publisher -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ZJU-REAL/Easel skill-xhs-publisher --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/openclaw/skill-xhs-publisher .gemini/skills/skill-xhs-publisher && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "skill-xhs-publisher" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/skill-xhs-publisher into .gemini/skills/skill-xhs-publisher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-xhs-publisher", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ZJU-REAL/Easel skill-xhs-publisherInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ZJU-REAL/Easel --skill skill-xhs-publisher -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/openclaw/skill-xhs-publisher .github/skills/skill-xhs-publisher && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "skill-xhs-publisher" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/skill-xhs-publisher into .github/skills/skill-xhs-publisher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-xhs-publisher", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ZJU-REAL/Easel --skill skill-xhs-publisher -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ZJU-REAL/Easel skill-xhs-publisher --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZJU-REAL/Easel.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/openclaw/skill-xhs-publisher .opencode/skills/skill-xhs-publisher && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "skill-xhs-publisher" agent skill from https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/skill-xhs-publisher into .opencode/skills/skill-xhs-publisher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-xhs-publisher", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skill-xhs-publisher将图文/视频内容发布到小红书(XHS)。基于 Playwright + 持久化登录态,headless 即可运行, 流程与选择器移植自成熟开源实现 xiaohongshu-mcp(含发布成功校验、上传完成等待、话题联想绑定、 新旧发布按钮兼容、反检测)。适用场景:发布图文笔记、发布视频、扫码登录、发布前预检。
Skill Xhs Publisher is an agent skill from ZJU-REAL/Easel. 将图文/视频内容发布到小红书(XHS)。基于 Playwright + 持久化登录态,headless 即可运行, 流程与选择器移植自成熟开源实现 xiaohongshu-mcp(含发布成功校验、上传完成等待、话题联想绑定、 新旧发布按钮兼容、反检测)。适用场景:发布图文笔记、发布视频、扫码登录、发布前预检。
Its SKILL.md is about 730 tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `AGENTS.md`, `EASEL-META.md` and `references/commands.md`).
It sits in Testing & QA, covering Browser testing. It works with Xiaohongshu, Playwright and Model Context Protocol. The repository describes itself as: An open-source AI agent for social media — discover trends, create content, publish everywhere, and learn what works across Xiaohongshu, Douyin, Zhihu, Bilibili, and more.🎨一个开源的… The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 278f420. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Skill Xhs Publisher loads about 726 tokens when it runs, and up to ~1.7k if it reads all its reference files. Until then it costs about 44 tokens; SKILL.md has 142 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ZJU-REAL/Easel at commit 278f420, republished under its Apache-2.0 licence (© ZJU-REAL). 142 words, ~726 tokens.
.claude/skills/skill-xhs-publisher/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.你是"小红书发布助手"。目标是在用户确认后,调用 xhs_publish.py 完成图文/视频发布。
统一走确定性脚本 ../../shared/scripts/xhs_publish.py(CWD=项目根)。它用 Playwright +
持久化登录态驱动小红书创作者后台,headless 即可发布——替代了旧的 CDP-to-真实Chrome 死栈
(那套需桌面 Chrome,本环境跑不了,已删除)。
| 依赖 | 说明 |
|---|---|
| playwright + chromium 内核 | 本环境已装(xhs_publish.py check 验证) |
| 已扫码登录 | login 把二维码抠成 PNG(默认 outputs/_login/xhs-login-qrcode.png,Web UI 可看)→ 扫码 → cookie 持久化到 ~/.easel-browser-profiles/XiaohongshuProfile |
| 干净网络 IP | 小红书对机房/代理出口报「安全限制·IP存在风险」拦在登录前;需家宽/干净 IP 代理,或在正常网络登录后拷贝登录态目录复用 |
小红书自动化发布存在被平台风控、限流、封号的风险。 默认提醒用户优先用测试号、小流量运行,
最终内容人工复核。脚本已内置反检测(--disable-blink-features=AutomationControlled + 逐字符
输入 + zh-CN 语言 + 登录态持久化),但风险不可完全消除,使用者自行评估承担。
xhs_publish.py check。xhs_publish.py login(有头,扫码)。标题 + 视频:视频发布流程。标题 + 图片:图文发布流程。check(环境就绪?)
→ 未登录 → login(有头扫码,一次即可)
→ plan(dry-run 预检:标题长度/媒体路径/步骤)— 给用户确认最终标题、正文、图片/视频
→ 发布前人设检查(见下)
→ publish / publish-video --exec(首次建议加 --headed 校验选择器,OK 后 headless 复跑)
→ 成功校验(脚本内置:URL 离开 /publish/publish 才算成功)
→ 发布后留痕(见下)按 AGENTS.md「发布前人设一致性检查」:先用 skill-persona-check 比对待发内容 × 画像,评分喂
python skills/shared/scripts/persona_gate.py check --score 85——低于 80 分时告知分数、偏离点和
修改建议,但不阻断发布;用户已明确要发布就继续执行。
python skills/shared/scripts/persona_gate.py record --topic 露营攻略 --profile 户外达人 \
--score 85 --verdict pass
python skills/openclaw/skill-publish-log/scripts/log.py record --platform 小红书 \
--title "周末露营攻略" --profile 户外达人 --persona-score 85 --persona-verdict pass --skill-source skill-xhs-publisherplan 展示)。calc_title_length 按小红书口径校验,超限直接拦下)。--headed 观察,校验通过再 headless 批量。xhs_publish.py 顶部的 SELECTORS 字典(选择器单点集中维护,
每条标注了参考源),不要散改流程。全部命令(check/login/plan/publish/publish-video 参数、代理、首次校验)见 references/commands.md。
© ZJU-REAL, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in skills/openclaw/skill-xhs-publisher of ZJU-REAL/Easel.
Open the folder on GitHubat commit 278f420
Skill Xhs Publisher next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Skill Xhs Publisher this skillZJU-REAL/Easel | 3.4k | — | ~726 | Automated safety check: Pass | Apache-2.0 | |
| Invisible Playwrightfeder-cr/invisible_dots | 32k | — | ~573 | Automated safety check: Pass | MIT | |
| Playwright E2E Testsonyx-dot-app/onyx | 32k | 1 repos | ~2.8k | Automated safety check: Notes | Custom licence | |
| Shogun Screenshotyohey-w/multi-agent-shogun | 1.4k | — | ~901 | Automated safety check: Notes | MIT | |
| Playwright Debugvoicetreelab/voicetree | 924 | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Hands On Testktnyt/cclsp | 675 | — | ~1.7k | Automated safety check: Pass | MIT |
feder-cr/invisible_dots
Use the Dot's browser identities for any task on a website or search on the web: which identity to use, opening and closing one, and when a plain download is simpler than a browser.
onyx-dot-app/onyx
Write and maintain Playwright end-to-end tests for the Onyx application.
yohey-w/multi-agent-shogun
スクリーンショットの取得・加工を行う。ローカルスクショから最新画像を取得、 PlaywrightでWebページをキャプチャ、画像のトリミング・リサイズ、機微情報を黒塗りマスキング。
voicetreelab/voicetree
This skill should be used when the user asks to "debug the electron app", "connect playwright to VoiceTree", "take screenshots of the running app", "interact with the live UI", "inspect the running…
ktnyt/cclsp
Performs manual hands-on testing of a web application using playwright-cli.
Chorus-AIDLC/Chorus
A skill your agent uses when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev server with the Playwright MCP, logging in…
ZJU-REAL/Easel
微信公众号文章排版引擎:把 Markdown / Word(.docx) / PDF / 纯文本转成可直接粘贴进公众号编辑器的 HTML,自动章节编号、关键词标记、引言卡、目录、代码块、图片/GIF、作者签名;主题从 references/theme-index.md…
ZJU-REAL/Easel
微信公众号文章自动创作与发布工具。给定参考文章、文字或文档,自动搜索整理全网相关信息、生成图文并茂的公众号文章,并发布到微信公众号草稿箱。特别强调反 AI 检测写作。
ZJU-REAL/Easel
社媒卡片视觉设计系统:提供配色、中文字体层级、满画幅布局、品类骨架和死空白/密度质检,避免模板化 PPT 与廉价 AI 感。
ZJU-REAL/Easel
生成电商商品视觉方案:主图概念、场景图、详情页视觉方向和 AI 生图 Prompt. An agent skill from ZJU-REAL/Easel.
ZJU-REAL/Easel
将数据或文字内容转化为可视化信息图,支持静态(AntV)和动画 GIF 两种模式。当用户需要制作信息图、数据可视化、流程图、对比图、动画图表、GIF 图表、思维导图、SWOT 分析图时调用。本地渲染信息图/GIF 动画;要单张静态图片 URL 用 chart-visualization,要 CSV/JSON→整页报告用 data-report
ZJU-REAL/Easel
长篇小说/网文连载创作:从世界观、人设和三级大纲写到逐章正文,并用文件化状态维护伏笔、前情和跨章一致性. An agent skill from ZJU-REAL/Easel.
Categories
将图文/视频内容发布到小红书(XHS)。基于 Playwright + 持久化登录态,headless 即可运行, 流程与选择器移植自成熟开源实现 xiaohongshu-mcp(含发布成功校验、上传完成等待、话题联想绑定、 新旧发布按钮兼容、反检测)。适用场景:发布图文笔记、发布视频、扫码登录、发布前预检。. Skill Xhs Publisher is an agent skill from ZJU-REAL/Easel.
Skill Xhs Publisher fits situations like: tasks that involve Browser testing.
Run `npx skills add ZJU-REAL/Easel --skill skill-xhs-publisher -a claude-code`. Or copy the skill folder (skills/openclaw/skill-xhs-publisher in ZJU-REAL/Easel) into .claude/skills/skill-xhs-publisher in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ZJU-REAL/Easel --skill skill-xhs-publisher -a codex`. Or copy the skill folder (skills/openclaw/skill-xhs-publisher in ZJU-REAL/Easel) into .agents/skills/skill-xhs-publisher in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ZJU-REAL/Easel --skill skill-xhs-publisher -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skill-xhs-publisher, .gemini/skills/skill-xhs-publisher, .github/skills/skill-xhs-publisher and .opencode/skills/skill-xhs-publisher in your project.
Going by SKILL.md and its folder, Skill Xhs Publisher needs the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Skill Xhs Publisher is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 726 tokens (SKILL.md is roughly 2.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 986 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Skill Xhs Publisher: Invisible Playwright (feder-cr/invisible_dots, 32k stars), Playwright E2E Tests (onyx-dot-app/onyx, 32k stars), Shogun Screenshot (yohey-w/multi-agent-shogun, 1.4k stars) and Playwright Debug (voicetreelab/voicetree, 924 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ZJU-REAL (a GitHub organization) maintains it in ZJU-REAL/Easel, which has 3,376 GitHub stars. The repository holds 114 skills in this directory. The repository was last updated on October 9, 2026.
Source: ZJU-REAL/Easel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.