Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Publish posts to Jike (即刻) using browser automation. Use when the user wants to post content to Jike, share updates on Jike, or automate Jike posting. Supports text posts with emoji, hashtags, and topics. No API key required - uses browser automation with managed browser profile.
.claude/skills/jike-publisher/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | — | — |
| case-07 | ✗→✓ | ▲ Improved | — | — |
| case-13 | ✗→✓ | ▲ Improved | — | — |
| case-19 | ✗→✓ | ▲ Improved | — | — |
| case-18 | ✗→✓ | ▲ Improved | — | — |
Automate posting to Jike (即刻) using browser automation through OpenClaw's managed browser.
python# 1. Prepare content with Unicode escape (for Chinese text) content = "刚刚看到一篇很棒的技术文章!" escaped_content = content.encode('unicode_escape').decode('ascii') # 2. Navigate to Jike homepage browser(action="navigate", targetUrl="https://web.okjike.com/following", targetId=<tab_id>) # 3. Get page snapshot to find elements browser(action="snapshot", targetId=<tab_id>) # 4. Click the post textbox (ref from snapshot) # Look for: textarea or contenteditable div browser(action="act", request={"kind": "click", "ref": "<textbox_ref>"}, targetId=<tab_id>) # 5. Type content with Unicode escape browser(action="act", request={"kind": "type", "ref": "<textbox_ref>", "text": escaped_content}, targetId=<tab_id>) # 6. Get fresh snapshot to find send button browser(action="snapshot", targetId=<tab_id>) # 7. Click send button (ref from snapshot, usually "发布" text) browser(action="act", request={"kind": "click", "ref": "<send_ref>"}, targetId=<tab_id>) # 8. Wait and verify sleep(3) browser(action="snapshot", targetId=<tab_id>)
即刻的页面元素引用需要通过 snapshot 实际获取,常见元素:
重要: 元素引用会频繁变化,每次操作前都要先 snapshot!
记录发布历史到 memory/jike-state.json:
json{ "lastPublishTime": 1740880260, "lastPublishDate": "2026-03-16T12:38:00+08:00", "lastContent": "Your last post content..." }
javascript// ✅ 正确 request={"kind": "type", "ref": "eXXX", "text": "content"} // ❌ 错误 request="{\"kind\": \"type\", \"ref\": \"eXXX\", \"text\": \"content\"}"
问题: 中文引号(""、'')会导致 JSON 解析错误
解决: 使用 Unicode 转义:
python# 转换中文为 Unicode 转义 text = "刚刚看到一篇很棒的技术文章" escaped = text.encode('unicode_escape').decode('ascii') # 结果: \u521a\u521a\u770b\u5230\u4e00\u7bc87\u5f88\u68d2\u7684\u6280\u672f\u6587\u7ae0
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 19 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.