Skill: darknoah/rednote-cli (version 0.1.14)

--- name: rednote description: Use when the user wants to operate Xiaohongshu (RedNote) from the terminal with the `@skills-store/rednote` CLI, including browser setup, login, environment checks, feed browsing, note inspection, profile lookup, and publishing. --- # Rednote Commands Use this skill only for the CLI command surface of `@skills-store/rednote` when the user wants to operate Xiaohongshu from the terminal. Focus on: - the exact command to run - the minimum required flags - the correct command order - practical, copy-paste-ready examples ## Preferred command style Prefer global-install examples first: ```bash npm install -g @skills-store/rednote bun add -g @skills-store/rednote rednote <command> [...args] ``` Only mention `npx -y @skills-store/rednote ...` if the user explicitly asks for one-off execution without global installation. Only show local repo commands if the user is explicitly developing the CLI. Use `rednote --version` when the user wants to confirm the installed `@skills-store/rednote` version before troubleshooting or upgrading. For Xiaohongshu operation commands, default to omitting `--instance`. Assume the CLI uses the current or default connected instance unless the user explicitly asks to target a named instance. If `browser list` shows no custom instance yet, tell the user to create one first with `rednote browser create --name <NAME> ...`. A name is required; prefer a short, stable name such as `seller-main`. ## Feature overview | Command | Purpose | Key required flags | Recommended when | Notes | | --- | --- | --- | --- | --- | | `browser` | Manage reusable browser instances | `create` requires `--name` | The user needs to create, inspect, or connect a browser profile | See `references/browser.md` for detailed subcommands | | `--version` | Show installed CLI version | None | The user is checking install state or troubleshooting | Useful before upgrade/debugging | | `env` | Check local runtime and dependencies | None | The user is debugging setup or installation | Supports JSON output with `--save` | | `status` | Check current instance and login state | None | The user wants a quick health check before running other commands | Good after `browser connect` | | `check-login` | Verify whether the current session is still valid | None | The user only wants to know whether login is still active | Lighter than full login flow | | `login` | Log in to Xiaohongshu in the connected browser | None | The browser is connected but not authenticated | On success, show the returned QR code image to the user | | `home` | Read the current recommendation feed | None | The user wants candidate notes from the personalized feed | Good starting point before detail lookup | | `search` | Search notes by keyword | `--keyword` | The user wants notes for a topic or query | Use before choosing a note to inspect | | `get-feed-detail` | Fetch structured note detail | Prefer `--id`; `--url` only if the user only has a URL | The user wants title, content, stats, media, or comments for one note | Prefer internal note ID for stability | | `get-profile` | Fetch author/account profile data | `--id` | The user wants author info or the author's notes | Supports `--mode profile` and `--mode notes` | | `interact` | Like, collect, or comment on one note | Prefer `--id`; keep `--url` as fallback, plus one of `--like`, `--collect`, `--comment` | The user wants to engage with a note | Use `get-feed-detail` first if they want to inspect before acting | | `publish` | Publish or save drafts | Depends on content type | The user wants to post image, video, or article content | Usually requires connected and logged-in browser | ## Core workflow Use this sequence for most live Xiaohongshu operations: 1. `rednote env` 2. `rednote browser list`; if no custom instance exists, create one with `rednote browser create --name seller-main --browser chrome --port 9222` 3. `rednote browser connect` 4. `rednote login` or `rednote check-login` 5. `rednote status` 6. Run `home`, `search`, `get-feed-detail`, `get-profile`, `publish`, or `interact` If the user needs exact browser subcommands, flags, or examples, open `./references/browser.md`. If the instance is blocked by a stale profile lock, check `./references/browser.md` for the force reconnect command. ## Common use cases ### Find posts from the home feed Read the current recommendation feed: ```bash rednote home --format md rednote home --format json --save ./output/home.jsonl ``` Use `home` when the user wants to browse candidate posts from the personalized feed before choosing one to inspect or comment on. ### Find posts by keyword Search by keyword: ```bash rednote search --keyword 护肤 rednote search --keyword 护肤 --format json --save ./output/search.json ``` Use `search` when the user wants candidate notes for a topic instead of the home feed. ### Get one note's detail Prefer the internal note ID: ```bash rednote get-feed-detail --id NOTE_ID rednote get-feed-detail --id NOTE_ID --format json --save ./output/feed-detail.json rednote get-feed-detail --id NOTE_ID --comments --format json --save ./output/feed-detail-with-comments.json rednote get-feed-detail --id NOTE_ID --comments 100 --format json --save ./output/feed-detail-100-comments.json ``` Only use `--url` if the user only has a note URL and does not have the internal ID yet. ```bash rednote get-feed-detail --url "https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy" ``` Use `get-feed-detail` after `home` or `search` when the user wants the title, content, interaction data, and media before taking an action. Add `--comments` only when comment data is needed. ### Interact with one note Prefer the internal note ID: ```bash rednote interact --id NOTE_ID --like --collect rednote interact --id NOTE_ID --like --collect --comment "内容写得很清楚，步骤也很实用，感谢分享。" ``` Only use `--url` if the user only has a note URL and does not have the internal ID yet. ```bash rednote interact --url "https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy" --like --collect ``` Use `interact` when the user wants one command entrypoint for like, collect, or comment. Recommend `--id` first because it is the preferred and more stable input; keep `--url` as a fallback. Combine `--like`, `--collect`, and `--comment TEXT` to perform multiple operations in one command. Use `--comment TEXT` for replies; there is no standalone `comment` command. ### Publish content Publish content for an authenticated instance. Video note: ```bash rednote publish --type video --video ./note.mp4 --title 标题 --content 描述 --tag 穿搭 --tag 日常 --publish ``` Image note: ```bash rednote publish --type image --image ./1.jpg --image ./2.jpg --title 标题 --content 描述 --tag 探店 --publish ``` Article: ```bash rednote publish --type article --title 标题 --content $'# 一级标题\n\n正文' --publish ``` Use `publish` when the user wants to post or save drafts from an authenticated browser instance. ## End-to-end examples ### Home → detail → interact comment Find a post, inspect it, then reply: ```bash rednote home --format md rednote get-feed-detail --id NOTE_ID rednote interact --id NOTE_ID --comment "谢谢分享，信息整理得很完整，对我很有帮助。" ``` ### Home → detail → like or collect Inspect a post, then like or collect it: ```bash rednote home --format md rednote get-feed-detail --id NOTE_ID rednote interact --id NOTE_ID --like --collect ``` ### Search → detail → interact comment Start from a keyword, then inspect the note and reply: ```bash rednote search --keyword 低糖早餐 --format md rednote get-feed-detail --id NOTE_ID --comments --format json --save ./output/feed-detail-with-comments.json rednote get-feed-detail --id NOTE_ID --comments 100 --format json --save ./output/feed-detail-100-comments.json rednote interact --id NOTE_ID --comment "这份搭配看起来很实用，食材和步骤都写得很清楚。" ``` ### Inspect profile after finding a post Check the author before engaging: ```bash rednote get-feed-detail --id NOTE_ID --format json --save ./output/feed-detail.json rednote get-profile --id USER_ID --mode profile rednote get-profile --id USER_ID --mode notes --format json --save ./output/profile-notes.json ``` ## Command reference ### `browser` Use `browser list` to inspect default browsers, custom instances, stale locks, and the current `lastConnect` target. Use `browser create` to create a reusable named browser profile for later account-scoped commands. Creation requires `--name`; if the user has no custom instance yet, tell them to pick a name first and then create it, for example `rednote browser create --name seller-main --browser chrome --port 9222`. For exact `browser` subcommands, flags, and examples, open `references/browser.md`. ### `version` ```bash rednote --version ``` Use `--version` when the user wants to check the installed `@skills-store/rednote` version. ### `env` ```bash rednote env rednote env --format json --save ./output/env.json ``` Use `env` when the user is debugging installation or local setup. ### `status` ```bash rednote status ``` Use `status` to confirm whether the instance exists, is running, and appears logged in. ### `check-login` ```bash rednote check-login ``` Use `check-login` when the user only wants to verify whether the session is still valid. ### `login` ```bash rednote login ``` Use `login` after `browser connect` if the account is not authenticated yet. If `login` succeeds and returns `rednote.qrCodePath`, show the QR code image to the user instead of only repeating the path so they can scan it immediately. ### `home` ```bash rednote home --format md --save ``` Use `home` when the user wants the current home feed and optionally wants to save it. ### `search` ```bash rednote search --keyword 护肤 rednote search --keyword 护肤 --format json --save ./output/search.json ``` Use `search` when the user wants notes by keyword. ### `get-feed-detail` Prefer the internal note ID: ```bash rednote get-feed-detail --id NOTE_ID rednote get-feed-detail --id NOTE_ID --format json --save ./output/feed-detail.json rednote get-feed-detail --id NOTE_ID --comments --format json --save ./output/feed-detail-with-comments.json rednote get-feed-detail --id NOTE_ID --comments 100 --format json --save ./output/feed-detail-100-comments.json ``` Only fall back to URL input when the user does not have the internal note ID: ```bash rednote get-feed-detail --url "https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy" ``` Use `get-feed-detail` when the user wants structured detail data for one note. Recommend `--id` first because it is the preferred and more stable input; use `--url` only as a fallback. - Without `--comments`, the saved JSON contains only the note item array. - With `--comments`, each item may include a `comments` array with reduced comment fields only, using only the comments already loaded on the page. It does not scroll. - With `--comments COUNT`, the CLI scrolls `.note-scroller` until it has collected about `COUNT` comments, reaches the end, or times out. - In JSON mode, `--save PATH` is required, and the saved file contains only the note items array instead of the full wrapper object. ### `get-profile` ```bash rednote get-profile --id USER_ID rednote get-profile --id USER_ID --mode profile rednote get-profile --id USER_ID --mode notes rednote get-profile --id USER_ID --mode notes --format json --save ./output/profile-notes.json ``` Use `get-profile` when the user wants author or account profile information. - `--mode profile` returns only the normalized `profile.user` data. This is the default mode. - `--mode notes` returns only the normalized `profile.notes` list. - When `--format json` is used, `--save PATH` is required, and the saved JSON contains only the selected mode data instead of the full wrapper object. ### `interact` Prefer the internal note ID: ```bash rednote interact --id NOTE_ID --like --collect rednote interact --id NOTE_ID --like --collect --comment "内容写得很清楚，感谢分享。" ``` Only fall back to URL input when the user does not have the internal note ID: ```bash rednote interact --url "https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy" --like --collect ``` Use `interact` when the user wants a unified command for like, collect, or comment. Recommend `--id` first because it is the preferred and more stable input; use `--url` only as a fallback. Use `--comment TEXT` for replies. ### `publish` ```bash rednote publish --type video --video ./note.mp4 --title 标题 --content 描述 --publish rednote publish --type image --image ./1.jpg --title 标题 --content 描述 --publish rednote publish --type article --title 标题 --content $'# 一级标题\n\n正文' --publish ``` Use `publish` when the user wants to publish or save a draft. ## JSON save rules When the user asks for `--format json`, remember these CLI rules: - `env`, `home`, `search`, `get-feed-detail`, and `get-profile` require `--save PATH` in JSON mode. - The command prints only the saved file path plus a field-format example; the full payload is written to disk. - `get-profile --mode profile` saves only the normalized user object. - `get-profile --mode notes` saves only the normalized notes array. - `get-feed-detail` saves only the normalized note items array; add `--comments` to include reduced comment data from the currently loaded comments, or `--comments COUNT` to scroll for more comments. ## Flag guidance - `--instance NAME` picks the browser instance for account-scoped commands. - `--format json` is best for scripting. - `--format md` is best for direct reading. - `--save PATH` is required in JSON mode for `env`, `home`, `search`, `get-feed-detail`, and `get-profile`. - `--keyword` is required for `search`. - Prefer `--id` for `get-feed-detail`; use `--url` only when the internal note ID is unavailable. - Prefer `--id` for `interact`; use `--url` only when the internal note ID is unavailable. - `interact` uses `--comment TEXT` for comment content; there is no standalone `comment` command. - `interact` requires either `--id` or `--url`, plus at least one of `--like`, `--collect`, or `--comment TEXT`. - `--id` is required for `get-profile`. - `--type`, `--title`, `--content`, `--video`, `--image`, `--tag`, and `--publish` are the main `publish` flags. - `publish` usually requires a connected and logged-in instance before running; without `--publish`, it saves a draft. ## Response style When answering users: - lead with the exact command they should run - include only the flags needed for that task - prefer one happy-path example first - mention `browser connect` and `login` if the command requires an authenticated instance - if no custom instance exists yet, first tell the user to create one and call out that `--name` is required - recommend `home` or `search` first when the user still needs to find a post - recommend `get-feed-detail` before `interact --comment` when the user wants to inspect the post before replying - for `get-feed-detail`, recommend `--id` first and treat `--url` as a fallback only - for `interact`, recommend `--id` first and treat `--url` as a fallback only ## Troubleshooting If a command fails, check these in order: - the instance name is correct - the browser instance was created or connected; if no custom instance exists yet, create one first with `rednote browser create --name NAME ...` - login was completed for that instance - the profile was not blocked by a stale lock; if it was, run `rednote browser connect --instance NAME --force` - the user provided the required flag such as `--keyword`, `--id` or `--url`, `--comment`, or `--content`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)