redbook
Search, read, analyze, and automate Xiaohongshu (小红书) content via CLI
DeepseekModel
Curated skill
Quality Excellent · 78
v1.0.0
Get
https://deepseekmodel.com/api/download.php?id=lucasygu-redbook-skill-md&format=skill
Download .skill
Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
description Search, read, analyze, and automate Xiaohongshu (小红书) content via CLI allowed-tools Bash, Read, Write, Glob, Grep name redbook version 0.5.0 metadata {"openclaw":{"requires":{"bins":"[Truncated]"},"install":["[Truncated]"],"os":["macos"],"homepage":"https://github.com/lucasygu/redbook"}} tags ["xiaohongshu","social-media","analytics","content-ops"] Redbook — Xiaohongshu CLI Use the redbook CLI to search notes, read content, analyze creators, automate engagement, and research topics on Xiaohongshu (小红书/RED). OpenClaw users: Install via clawhub install redbook or npm install -g @lucasygu/redbook . ⚠️ Research discipline (read this first). XHS 风控 throttles reading , not just writing. Any research that reads more than a handful of notes MUST run through the Research Loop — human-paced by default (~20 s/note, one at a time; a typical job finishes in tens of minutes, large ones spread across the day). Hammering read / comments / analyze-viral in a tight loop trips captcha / IP block (300012) within a few dozen hits and degrades the account for hours. ⚡ Fast mode is emergency-only and requires a printed warning + explicit user opt-in. Never fire reads in parallel or with zero delay. Usage /redbook search "AI编程" # Search notes /redbook read <url> # Read a note /redbook user <profileUrl> # Creator profile /redbook account-report --file ids.txt --json # Batch account metrics /redbook analyze <userId> # Full creator analysis (profile + posts) Quick Reference Intent Command Search notes redbook search "keyword" --json Read a note redbook read <url> --json Get comments redbook comments <url> --json --all Creator profile redbook user <userId-or-profileUrl> --json Creator's posts redbook user-posts <userId-or-profileUrl> --json Batch account report redbook account-report --file accounts.txt --month YYYY-MM --json Browse feed redbook feed --json Search hashtags redbook topics "keyword" --json Analyze viral note redbook analyze-viral <url> --json Extract content template redbook viral-template <url1> <url2> --json Post a comment redbook comment <url> --content "text" Reply to comment redbook reply <url> --comment-id <id> --content "text" Batch reply (preview) redbook batch-reply <url> --strategy questions --dry-run Like a note redbook like <url> Unlike a note redbook like <url> --undo List favorites redbook favorites --json or redbook favorites <userId> --json Collect a note redbook collect <url> Remove from collection redbook uncollect <url> List followers redbook followers <userId> --json List following redbook following <userId> --json Delete own note redbook delete <url> Check note health redbook health --json or redbook health --all --json List user boards redbook boards or redbook boards <userId> --json List album notes redbook board <board-url> or redbook board <boardId> --json Render markdown to cards redbook render content.md --style xiaohongshu Publish image note redbook post --title "..." --body "..." --images img.jpg Check connection redbook whoami Save cookies for cloud/OpenClaw redbook auth export or redbook auth save --cookie-string "a1=...; web_session=..." Always add --json when parsing output programmatically. Without it, output is human-formatted text. XHS Platform Signals XHS is not Twitter or Instagram. These platform-specific engagement ratios reveal content type and audience behavior. Collect/Like Ratio ( collected_count / liked_count ) XHS's "collect" (收藏) is a save-for-later mechanic — users build personal reference libraries. This ratio is the strongest signal of content utility. Ratio Classification Meaning >40% 工具型 (Reference) Tutorial, checklist, template — users bookmark for reuse 20–40% 认知型 (Insight) Thought-provoking but not saved for later <20% 娱乐型 (Entertainment) Consumed and forgotten — engagement is passive Comment/Like Ratio ( comment_count / liked_count ) Measures how much a note triggers conversation. Ratio Classification Meaning >15% 讨论型 (Discussion) Debate, sharing experiences, asking questions 5–15% 正常互动 (Normal) Typical engagement pattern <5% 围观型 (Passive) Users like but don't engage further Share/Like Ratio ( share_count / liked_count ) Measures social currency — whether users share to signal identity or help others. Ratio Meaning >10% 社交货币 — people share to signal taste, identity, or help friends <10% Content consumed individually, not forwarded Search Sort Semantics Sort What It Reveals --sort popular Proven ceiling — the best a keyword can do --sort latest Content velocity — how much is being posted now --sort general Algorithm-weighted blend (default) Content Form Dynamics Form Tendency 图文 (image-text, type: "normal" ) Higher collect rate — users save reference content 视频 (video, type: "video" ) Higher like rate — easier to consume passively Analysis Modules Each module is a composable building block. Combine them for different analysis depths. Module A: Keyword Engagement Matrix Answers: Which keywords have the highest engagement ceiling? Which are saturated vs. underserved? Commands: redbook search "keyword1" -- sort popular --json redbook search "keyword2" -- sort popular --json # Repeat for each keyword in your list Fields to extract from each result's items[] : items[].note_card.interact_info.liked_count — likes (may use Chinese numbers: "1.5万" = 15,000) items[].note_card.interact_info.collected_count — collects items[].note_card.interact_info.comment_count — comments items[].note_card.user.nickname — author How to interpret: Top1 ceiling = items[0] likes — the best-performing note for this keyword. This is the proven demand signal. Top10 average = mean likes across items[0..9] — how well an average top note does. A high Top1 but low Top10 avg means one outlier dominates; hard to compete. A high Top10 avg means consistent demand; easier to break in. Output: Keyword × engagement table ranked by Top1 ceiling. Keyword Top1 Likes Top10 Avg Top1 Collects Collect/Like keyword1 12,000 3,200 5,400 45% keyword2 8,500 4,100 1,200 14% Module B: Cross-Topic Heatmap Answers: Which topic × scene intersections have demand? Where are the content gaps? Commands: # Combine base topic with scene/angle keywords redbook search "base topic + scene1" -- sort popular --json redbook search "base topic + scene2" -- sort popular --json redbook search "base topic + scene3" -- sort popular --json Fields to extract: Same as Module A — Top1 liked_count for each combination. How to interpret: High Top1 = proven demand for this intersection Zero or very low results = content gap (opportunity or no demand — check if the combination makes sense) Compare across scenes to find which angles resonate most with the base topic Output: Base × Scene heatmap. scene1 scene2 scene3 scene4 base topic ████ 8K ██ 2K ████ 12K ░░ 200 Module C: Engagement Signal Analysis Answers: What type of content is each keyword? Reference, insight, or entertainment? Commands: Use search results from Module A, or for a single note: redbook analyze-viral "<noteUrl>" --json Fields to extract: From search results: compute ratios from interact_info fields From analyze-viral : use pre-computed engagement.collectToLikeRatio , engagement.commentToLikeRatio , engagement.shareToLikeRatio How to interpret: Apply the ratio benchmarks from XHS Platform Signals above. Output: Per-keyword or per-note classification. Keyword Collect/Like Comment/Like Type keyword1 45% 8% 工具型 + 正常互动 keyword2 12% 22% 娱乐型 + 讨论型 Module D: Creator Discovery & Profiling Answers: Who are the key creators in this niche? What are their strategies? Commands: # 1. Collect unique user_ids from search results across keywords # Extract from items[].note_card.user.user_id # 2. For each creator: redbook user "<userId>" --json redbook user-posts "<userId>" --json Fields to extract: From user : interactions[] where type === "fans" → follower count From user-posts : notes[].interact_info.liked_count for all posts → compute avg, median, max From user-posts : notes[].display_title → content patterns, posting frequency How to interpret: Avg vs. Median likes: Large gap means viral outliers inflate the average. Median is the "true" baseline. Max / Median ratio: >5× means they've had breakout hits. Study those notes specifically. Post frequency: Count notes to estimate posting cadence. Prolific creators (>3/week) vs. quality-focused (<1/week). Output: Creator comparison table. Creator Followers Avg Likes Median Max Posts Style @creator1 12万 3,200 1,800 45,000 89 Tutorial @creator2 5.4万 8,100 6,500 22,000 34 Story Module D2: Known Account Reporting Answers: Given a known list of account IDs/profile URLs, how often did each account post and how did each post perform? Use this when the user already has KOS/KOC account IDs and wants clean account-scoped metrics. Do not approximate this with keyword search; keyword search introduces unrelated posts and noisy attribution. redbook account-report --file accounts.txt --month 2026-07 --json redbook account-report "<profileUrl1>" "<profileUrl2>" --max-pages 2 --json Input files are newline-separated user IDs or profile URLs; blank lines and # comments are ignored. Prefer profile URLs containing xsec_token when available. JSON output includes account summary fields ( fetchedPosts , postsInMonth , complete , pagesFetched ), engagement totals and averages, top posts, and per-note rows with title, type, publish time, metrics, and webUrl . Default mode fetches only the first page per account. complete: false means more pages exist. Use --all only when the user explicitly wants full history and the account list is small enough to pace safely; otherwise prefer --max-pages <n> . Module E: Content Form Breakdown Answers: Do image-text or video notes perform better for this topic? Commands: redbook search "keyword" -- type image -- sort popular --json redbook search "keyword" -- type video -- sort popular --json Fields to extract: Compare Top1 and Top10 avg liked_count and collected_count between the two result sets Note the type field: "normal" = image-text, "video" = video Output: Form × engagement table. | Form | Top1 Likes | Top10 Avg | Collect/Like |
Keywords that activate this skill. Click one to copy it.
This skill does not provide trigger words.
The downloaded .skill package contains the following fields.
| Field | Description |
|---|---|
| format | Format tag (skill/v1) |
| skill_id | Unique skill ID |
| name | Skill name |
| version | Version |
| description | Description |
| category | Categories (array) |
| trigger_words | Trigger words |
| tags | Tags |
| source | Source |
| source_url | Source URL (this page) |
| exported_at | Exported at (set per download) |
| system_prompt | System prompt body |
| model_config | Model config: provider / model / temperature / max_tokens / top_p |
| examples | Examples |
| install_guide | Import guide for Coze / Dify / Claude / custom frameworks |
The same skill can be exported in different platform formats.