openclaw 网盘下载
OpenClaw

技能详情(站内镜像,无评论)

首页 > 技能库 > Rednote CLI

Use when the user needs to publish, search, inspect, log into, or otherwise operate Xiaohongshu (RedNote) from the terminal with the `@skills-store/rednote`...

综合技能

作者:noah @DarkNoah

许可证:MIT-0

MIT-0 ·免费使用、修改和重新分发。无需归因。

版本:v0.1.13

统计:⭐ 3 · 517 · 5 current installs · 5 all-time installs

3

安装量(当前) 5

🛡 VirusTotal :良性 · OpenClaw :良性

Package:darknoah/rednote-cli

安全扫描(ClawHub)

  • VirusTotal :良性
  • OpenClaw :良性

OpenClaw 评估

The skill's instructions, requirements, and actions are consistent with a CLI that automates Xiaohongshu via a browser; nothing requests unrelated credentials or installs hidden components, but it does imply access to local browser profiles which is sensitive and should be treated carefully.

目的

The name/description (Rednote CLI for Xiaohongshu) matches the SKILL.md: it documents CLI commands for browsing, login, publishing, and browser profile management. There are no declared environment variables, unexpected binaries, or unrelated dependencies in the instructions.

说明范围

Instructions focus on CLI commands and expected flags. They explicitly reference connecting to browser instances and passing a --user-data-dir or named profile (e.g., /tmp/edge-profile) which is necessary for browser-driven automation but also grants the CLI access to stored browser state (cookies, sessions). The skill does not instruct reading unrelated system files or exfiltrating data to external endpoints.

安装机制

There is no install spec bundled with the skill (instruction-only). The documentation recommends installing the package with npm/bun (e.g., npm install -g @skills-store/rednote), which is a normal install path for a CLI. Because the skill itself doesn't provide an install script or custom download URL, there is no immediate install-time red flag in the bundle.

证书

The skill declares no required environment variables, credentials, or config paths. The only sensitive element is optional use of browser profile paths / user-data-dir, which is proportionate to browser automation but does expose local browsing state if used.

持久

The skill is not always-on and is user-invocable. It does not request modifying other skills or system-wide settings. Its documented operations (creating/removing named browser instances) are confined to the CLI's own profile management surface.

综合结论

This skill is coherent for a CLI that automates Xiaohongshu through a browser. Before installing or using it: (1) Verify the npm package source and review its code on the registry (unknown source here is a small risk). (2) Prefer creating a dedicated browser profile/instance for the CLI instead of pointing it at your main browser user-data-dir (to avoid exposing unrelated cookies and logins). (3) Run the CLI in an isolated environment or conta…

安装(复制给龙虾 AI)

将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。

请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Rednote CLI」。简介:Use when the user needs to publish, search, inspect, log into, or otherwise ope…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/darknoah/rednote-cli/SKILL.md
(来源:yingzhi8.cn 技能库)

SKILL.md

打开原始 SKILL.md(GitHub raw)

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 $'# 一级标题nn正文' --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 $'# 一级标题nn正文' --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`