Post to Weibo skill

Post to Weibo — Update Skills (from the JimLiu/baoyu-skills README)

Illustration · not a resultFrom the JimLiu/baoyu-skills README — shows the whole collection, not only this skill.source ↗

Posts content to Weibo (微博).

by JimLiu·MIT license·★ 26,555 Stars on the repo·GitHub ↗

Use now
Post to Weibo — Update Skills (from the JimLiu/baoyu-skills README)

Illustration · not a resultFrom the JimLiu/baoyu-skills README — shows the whole collection, not only this skill.view on GitHub

Files of Post to Weibo

JimLiu/main1 file shown
SKILL.md
Show the full text150 lines

Post to Weibo

Posts text, images, videos, and long-form articles to Weibo via real Chrome browser (bypasses anti-bot detection).

Script Directory

Important: All scripts are located in the scripts/ subdirectory of this skill.

Agent Execution Instructions:

  1. Determine this SKILL.md file's directory path as {baseDir}
  2. Script path = {baseDir}/scripts/<script-name>.ts
  3. Replace all {baseDir} in this document with the actual path
  4. Resolve ${BUN_X} runtime: if bun installed → bun; if npx available → npx -y bun; else suggest installing bun

Script Reference:

Script Purpose
scripts/weibo-post.ts Regular posts (text + images)
scripts/weibo-article.ts Headline article publishing (Markdown)
scripts/copy-to-clipboard.ts Copy content to clipboard
scripts/paste-from-clipboard.ts Send real paste keystroke

Preferences (EXTEND.md)

Check EXTEND.md in priority order — the first one found wins:

Priority Path Scope
1 .baoyu-skills/baoyu-post-to-weibo/EXTEND.md Project
2 ${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-post-to-weibo/EXTEND.md XDG
3 $HOME/.baoyu-skills/baoyu-post-to-weibo/EXTEND.md User home

If none found, use defaults.

EXTEND.md supports: Default Chrome profile

Prerequisites

  • Google Chrome or Chromium
  • bun runtime
  • First run: log in to Weibo manually (session saved)

Regular Posts

Text + images/videos (max 18 files total). Posted on Weibo homepage.

${BUN_X} {baseDir}/scripts/weibo-post.ts "Hello Weibo!" --image ./photo.png
${BUN_X} {baseDir}/scripts/weibo-post.ts "Watch this" --video ./clip.mp4

Parameters:

Parameter Description
<text> Post content (positional)
--image <path> Image file (repeatable)
--video <path> Video file (repeatable)
--profile <dir> Custom Chrome profile

Note: Script opens browser with content filled in. User reviews and publishes manually.


Headline Articles (头条文章)

Long-form Markdown articles published at https://card.weibo.com/article/v3/editor.

${BUN_X} {baseDir}/scripts/weibo-article.ts article.md
${BUN_X} {baseDir}/scripts/weibo-article.ts article.md --cover ./cover.jpg

Parameters:

Parameter Description
<markdown> Markdown file (positional)
--cover <path> Cover image
--title <text> Override title (max 32 chars, truncated if longer)
--summary <text> Override summary (max 44 chars, auto-regenerated if longer)
--profile <dir> Custom Chrome profile

Frontmatter: title, summary, cover_image supported in YAML front matter.

Character Limits:

  • Title: 32 characters max (truncated with warning if longer)
  • Summary/导语: 44 characters max (auto-regenerated from content if longer)

Markdown-to-HTML: Do NOT pass any --theme parameter when converting markdown to HTML. Use the default theme (no theme argument).

Article Workflow:

  1. Opens https://card.weibo.com/article/v3/editor
  2. Clicks "写文章" button, waits for editor to become editable
  3. Fills title (validated for 32-char limit)
  4. Fills summary/导语 (validated for 44-char limit)
  5. Inserts HTML content into ProseMirror editor via paste
  6. Replaces image placeholders one by one (copy image → select placeholder → paste)

Post-Composition Check: The script automatically verifies after all images are inserted:

  • Remaining WBIMGPH_ placeholders in editor content
  • Expected vs actual image count

If the check fails (warnings in output), alert the user with the specific issues before they publish.


Post Type Selection

Unless the user explicitly specifies the post type:

  • Markdown file (.md) → Headline Article (头条文章)
  • Plain text / text with images → Regular Post

Troubleshooting

Chrome debug port not ready

If a script fails with Chrome debug port not ready or Unable to connect, kill only the CDP Chrome instances (those with --remote-debugging-port AND the baoyu-skills profile), then retry:

pkill -f "remote-debugging-port.*baoyu-skills/chrome-profile" 2>/dev/null; sleep 2

CRITICAL: Never kill all Chrome processes (pkill -f "Google Chrome"). Only kill Chrome instances launched by CDP with the baoyu-skills profile directory. The user may have regular Chrome windows open.

Important: This should be done automatically -- when encountering this error, kill the CDP Chrome instances and retry the command without asking the user.

Notes

  • First run: manual login required (session persists)
  • All scripts only fill content into the browser, user must review and publish manually
  • Cross-platform: macOS, Linux, Windows

Extension Support

Custom configurations via EXTEND.md. See Preferences section for paths and supported options.

1---
2name: baoyu-post-to-weibo
3description: Posts content to Weibo (微博). Supports regular posts with text, images, and videos, and headline articles (头条文章) with Markdown input via Chrome CDP. Use when user asks to "post to Weibo", "发微博", "发布微博", "publish to Weibo", "share on Weibo", "写微博", or "微博头条文章".
4version: 1.117.3
5metadata:
6 openclaw:
7 homepage: https://github.com/JimLiu/baoyu-skills#baoyu-post-to-weibo
8 requires:
9 anyBins:
10 - bun
11 - npx
12---
13 
14# Post to Weibo
15 
16Posts text, images, videos, and long-form articles to Weibo via real Chrome browser (bypasses anti-bot detection).
17 
18## Script Directory
19 
20**Important**: All scripts are located in the `scripts/` subdirectory of this skill.
21 
22**Agent Execution Instructions**:
231. Determine this SKILL.md file's directory path as `{baseDir}`
242. Script path = `{baseDir}/scripts/<script-name>.ts`
253. Replace all `{baseDir}` in this document with the actual path
264. Resolve `${BUN_X}` runtime: if `bun` installed → `bun`; if `npx` available → `npx -y bun`; else suggest installing bun
27 
28**Script Reference**:
29| Script | Purpose |
30|--------|---------|
31| `scripts/weibo-post.ts` | Regular posts (text + images) |
32| `scripts/weibo-article.ts` | Headline article publishing (Markdown) |
33| `scripts/copy-to-clipboard.ts` | Copy content to clipboard |
34| `scripts/paste-from-clipboard.ts` | Send real paste keystroke |
35 
36## Preferences (EXTEND.md)
37 
38Check EXTEND.md in priority order — the first one found wins:
39 
40| Priority | Path | Scope |
41|----------|------|-------|
42| 1 | `.baoyu-skills/baoyu-post-to-weibo/EXTEND.md` | Project |
43| 2 | `${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-post-to-weibo/EXTEND.md` | XDG |
44| 3 | `$HOME/.baoyu-skills/baoyu-post-to-weibo/EXTEND.md` | User home |
45 
46If none found, use defaults.
47 
48**EXTEND.md supports**: Default Chrome profile
49 
50## Prerequisites
51 
52- Google Chrome or Chromium
53- `bun` runtime
54- First run: log in to Weibo manually (session saved)
55 
56---
57 
58## Regular Posts
59 
60Text + images/videos (max 18 files total). Posted on Weibo homepage.
61 
62```bash
63${BUN_X} {baseDir}/scripts/weibo-post.ts "Hello Weibo!" --image ./photo.png
64${BUN_X} {baseDir}/scripts/weibo-post.ts "Watch this" --video ./clip.mp4
65```
66 
67**Parameters**:
68| Parameter | Description |
69|-----------|-------------|
70| `<text>` | Post content (positional) |
71| `--image <path>` | Image file (repeatable) |
72| `--video <path>` | Video file (repeatable) |
73| `--profile <dir>` | Custom Chrome profile |
74 
75**Note**: Script opens browser with content filled in. User reviews and publishes manually.
76 
77---
78 
79## Headline Articles (头条文章)
80 
81Long-form Markdown articles published at `https://card.weibo.com/article/v3/editor`.
82 
83```bash
84${BUN_X} {baseDir}/scripts/weibo-article.ts article.md
85${BUN_X} {baseDir}/scripts/weibo-article.ts article.md --cover ./cover.jpg
86```
87 
88**Parameters**:
89| Parameter | Description |
90|-----------|-------------|
91| `<markdown>` | Markdown file (positional) |
92| `--cover <path>` | Cover image |
93| `--title <text>` | Override title (max 32 chars, truncated if longer) |
94| `--summary <text>` | Override summary (max 44 chars, auto-regenerated if longer) |
95| `--profile <dir>` | Custom Chrome profile |
96 
97**Frontmatter**: `title`, `summary`, `cover_image` supported in YAML front matter.
98 
99**Character Limits**:
100- Title: 32 characters max (truncated with warning if longer)
101- Summary/导语: 44 characters max (auto-regenerated from content if longer)
102 
103**Markdown-to-HTML**: Do NOT pass any `--theme` parameter when converting markdown to HTML. Use the default theme (no theme argument).
104 
105**Article Workflow**:
1061. Opens `https://card.weibo.com/article/v3/editor`
1072. Clicks "写文章" button, waits for editor to become editable
1083. Fills title (validated for 32-char limit)
1094. Fills summary/导语 (validated for 44-char limit)
1105. Inserts HTML content into ProseMirror editor via paste
1116. Replaces image placeholders one by one (copy image → select placeholder → paste)
112 
113**Post-Composition Check**: The script automatically verifies after all images are inserted:
114- Remaining `WBIMGPH_` placeholders in editor content
115- Expected vs actual image count
116 
117If the check fails (warnings in output), alert the user with the specific issues before they publish.
118 
119---
120 
121## Post Type Selection
122 
123Unless the user explicitly specifies the post type:
124- **Markdown file** (`.md`) → **Headline Article** (头条文章)
125- **Plain text** / text with images → **Regular Post**
126 
127## Troubleshooting
128 
129### Chrome debug port not ready
130 
131If a script fails with `Chrome debug port not ready` or `Unable to connect`, kill only the CDP Chrome instances (those with `--remote-debugging-port` AND the baoyu-skills profile), then retry:
132 
133```bash
134pkill -f "remote-debugging-port.*baoyu-skills/chrome-profile" 2>/dev/null; sleep 2
135```
136 
137**CRITICAL**: Never kill all Chrome processes (`pkill -f "Google Chrome"`). Only kill Chrome instances launched by CDP with the baoyu-skills profile directory. The user may have regular Chrome windows open.
138 
139**Important**: This should be done automatically -- when encountering this error, kill the CDP Chrome instances and retry the command without asking the user.
140 
141## Notes
142 
143- First run: manual login required (session persists)
144- All scripts only fill content into the browser, user must review and publish manually
145- Cross-platform: macOS, Linux, Windows
146 
147## Extension Support
148 
149Custom configurations via EXTEND.md. See **Preferences** section for paths and supported options.
150 

Discussion

Alternatives

STEP 0: STALE-CLONE SELF-CHECK — RUN BEFORE READING BELOWResearch what people actually say about any topic in the last 30 days. Pulls posts and engagement from Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and the web. Includes a doctor health check to diagnose broken or missing sources.Marketing · MITApifyScrapes social platforms, business data, and e-commerce via Apify actors — Instagram, LinkedIn, TikTok, YouTube, Facebook, Google Maps, Amazon, and web crawls — filtering in code. USE WHEN scrape Instagram, scrape LinkedIn, scrape TikTok, scrape YouTube, scrape Facebook, Google Maps leads, Amazon reviews, business intelligence, multi-platform social listening, competitive analysis, lead generation, social monitoring, Apify actors, web crawl, extract contacts. NOT FOR X/Twitter account operations like posting, threads, or bookmarks (those need a dedicated X API client), 4-tier progressive scraping with proxy escalation (use BrightData), or real-Chrome bot bypass and computer use (use Interceptor).Marketing · MITrun-wechat-article-loop — 公众号长文闭环微信公众号长文增长闭环 —— 从读者问题与复刻锚选题、写出可验证的公众号长文、预览与合规检查、同步微信草稿、三重确认下受控发布,到回收阅读与转化数据并复盘。用户要求写公众号、把内容改成公众号、同步或发布微信草稿、查看公众号数据或复盘时使用。Marketing · Apache-2.0Twitter/X SkillSearch and retrieve content from Twitter/X. Get user info, tweets, replies, followers, communities, spaces, and trends via twitterapi.io. Use when user mentions Twitter, X, or tweets.Marketing · Apache-2.0