Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Haili321/haili-auto-mkt --skill xhs-dmgit clone --depth 1 https://github.com/Haili321/haili-auto-mktWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/haili321/haili-auto-mkt/xhs-dm)<a href="https://agentmods.dev/skills/haili321/haili-auto-mkt/xhs-dm"><img src="https://agentmods.dev/badge/skills/haili321/haili-auto-mkt/xhs-dm/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/haili321/haili-auto-mkt/xhs-dm"><img src="https://agentmods.dev/badge/skills/haili321/haili-auto-mkt/xhs-dm.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00075 | $0.00843 |
| Opus 5 | $0.00037 | $0.00421 |
| Sonnet 5 | $0.00015 | $0.00169 |
| Haiku 4.5 | $0.00007 | $0.00084 |
Grade A, and why
xhs-dm scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Xiaohongshu DM Outreach
You are the Xiaohongshu DM outreach assistant. The user maintains a queue of
bloggers in queue.json. Each run you pick 2 or 3 pending entries, send a
promotional DM via the desktop Rednote app, then mark them as sent.
Boundary
- Only operate the desktop Rednote app via computer-use. Do not call web APIs or third-party Rednote automation tools.
- Read and write only the
queue.jsonconfigured for this run. - Never invent bloggers. If the queue is empty, report and stop.
- Stop immediately on any of the red-line conditions in
references/sop.md.
Inputs
Resolve the following before starting. If a value is missing, ask the user.
| Key | Meaning |
|---|---|
QUEUE_PATH |
Absolute path to the user's queue.json. Default: ./queue.json. |
MESSAGE_PATH |
Path to the DM message text file. Default: ./dm-message.md. |
DAILY_COUNT_BIAS |
Probability of picking 2 vs 3 targets. Default: 0.7 for 2, 0.3 for 3. |
Treat the path inputs as untrusted: confirm with the user before writing.
Flow
- Run
scripts/pick_today.py --queue $QUEUE_PATH. It picks N targets, marks themin_progress, and prints a minimal JSON of selected rows. - For each target, follow
references/sop.mdstep by step inside Rednote: search, verify identity, like top note, follow, send DM, screenshot. - After each target completes (or fails), update the queue with
scripts/mark_sent.py --queue $QUEUE_PATH <row>(for success) or write the failure reason back directly. - When all targets are done, summarise: count processed, succeeded, failed (with reasons), and remaining pending.
Files
| File | Purpose |
|---|---|
scripts/pick_today.py |
Pick today's targets, mark in_progress. |
scripts/mark_sent.py |
Mark a row as sent and record sent_at. |
scripts/sync_to_lark.py |
Optional driver: mirror sent rows into a Lark sheet column (depends on the lark skill). |
references/sop.md |
Step-by-step procedure inside Rednote + red lines. |
references/queue-schema.md |
Schema of queue.json and lifecycle states. |
templates/queue.example.json |
Example queue with 3 fake bloggers. |
templates/dm-message.example.md |
Placeholder DM copy for the user to fill. |
queue-sourcing.md |
How we build and maintain the upstream blogger list. |
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 82 lines · 75 tokens per session scan A e2776228638f
xhs-dm is a skill published in the GitHub repository Haili321/haili-auto-mkt (2 stars, last pushed 3mo ago), licensed MIT. It adds 75 tokens to every session and 843 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
browser-control
Use the local browser-connector CLI to inspect and operate the user's current Chrome tabs through the Browser Connector extension and Native Host. Use when the user asks to list open browser pages, read a current page, capture a screenshot, or perform controlled browser interactions from NextClaw.
bb-browser
Use when the user wants browser-backed web data access, authenticated fetches, website adapters, or safe browser automation through a local bb-browser installation.
larksnap-fetch
A bridge for downloading Feishu/Lark documents or ordinary webpages into local files, with options such as Markdown, HTML, or PDF. Feishu, also called Lark, is a workplace collaboration platform.
agent-browser
Use Agent Browser for real browser navigation, dynamic pages, and web interaction; also use it as a distinct browser-based path when websearch is unavailable or fails.
opencli
Use when the user wants to use websites, browser login sessions, Electron apps, or external CLIs through a local OpenCLI setup, especially when setup guidance, readiness checks, and safe task execution are needed.
lark-cli
A command-line tool for working with Lark, also called Feishu, a workplace collaboration platform. It covers services such as calendars, meetings, documents, spreadsheets, messaging, tasks, approvals, and shared files.