Write Xiaohongshu notes
It learns how the client’s two Xiaohongshu accounts write from every post they have published, and each morning picks one topic from what just happened and writes one note draft in that voice, three titles, body, tags and a comment prompt, for a person to post.
A Xiaohongshu account only grows if it posts every day, in the voice of the people it wants to reach, about what they care about that day. A small team spends the morning looking for a topic and the afternoon writing it, and the topic is often a week late: the customs rule changed on Monday and the note went out on Friday.
Running for Pindo since Oct 25, 2026 · Xiaohongshu · Weibo · Douyin · Risk: Low. This page is for Pindo’s team. It is not indexed and not linked from the site.
Tasks and outputs
What it takes on
Learn (weekly)
Reads both accounts through the signed-in browser, labels every post with a topic class, measures how each class and each habit did, lists the facts the posts state as candidates, and writes a style card per account where every point quotes the account’s own words.
Select
Gathers the client’s posts of the last two weeks, the calendar, the leads agent’s summaries, the facts and the hot lists; a session scores three candidates on news, class and timing and picks one with the real thing it hangs on. A day with nothing new is recorded as empty rather than filled with a list.
Write
A session writes the note from the brief, the style card, two of the account’s own posts as examples and the facts, in the account’s voice.
Check and record
A script holds the draft to the limits, the anchor, the archive (no run of twenty characters copied from a post), the structure rules and a Chinese lint measured against the account itself; the session fixes what it names once. Then the day’s file and one ledger row.
Who it is for: A business with a Xiaohongshu account and a person who posts for it: the agent finds the day’s topic and writes the draft, and the person takes the cover picture from the run log, adds any other pictures and posts it.
How it is used for Pindo: We build and run it for our client Pindo, as Agent 2 of the brief. Each morning it writes one note draft for Pindo’s readers (students, new parents and new arrivals abroad who buy from Taobao). A Pindo operator reviews it and posts it from Pindo’s account. The agent never posts.
What every draft is held to
01It hangs on one real thing the script can look up: a post the client made in the last two weeks, a line of the fact sheet, a fact the client published in the last sixty days, a question people asked this week, a calendar date, or something the client told us. The same thing is written about once.
02Three titles of at most 20 characters, the first with a service word. A body of 300 to 600 characters whose first paragraph has a service word. 3 to 8 tags and a comment prompt.
03No run of twenty Chinese characters shared with any archived post. No word the account has never used; none of the phrases of its template posts. At most three drafts of one topic class in two weeks, two of one shape in a week; not the same opening as yesterday.
04No contact detail, no absolute claim, no competitor’s name, no nickname of anyone outside the team, and no banned good named without the route that takes it or the word that it cannot go.
05A price, a transit time or a cut-off date only from the fact sheet, or from the client’s own recent post with its date.
06The agent only drafts. It never posts, comments, likes or follows.
The rules the agent’s output is written to, from the file named above. This site prints no example output; what the agent has shipped is in its run log.
Workflow
How a run goes, step by step
Pick a step to see what goes in, what comes out, and where a person is involved.
Step 1 of 5
Learn (weekly)
A script re-reads both accounts through the dedicated Chrome, one note at a time at a person’s pace. Scripts count; sessions label each post, list the facts it states (kept only when the quote is really in the post) and write the style cards (kept only where every quoted sentence is really the account’s).
The two accounts
The archive, the topic table, the fact candidates, two style cards
A person moves a confirmed fact candidate into the fact sheet; the agent never does.
Step 2 of 5
Select
A script gathers the client’s posts of the last two weeks, the calendar, the leads agent’s summaries (never a nickname), the facts, the material the client gave us and the hot lists. A session scores three candidates 1 to 5 on news, class and timing, minus a penalty for a class written three times in two weeks or a template class, and names the real thing the note hangs on.
The gathered material and the last 14 days of drafts
A brief, or “nothing today”
None. Nobody gives a topic.
Step 3 of 5
Write
A script picks two of the account’s own posts as examples (rotating, never a template post). A session writes the note from the brief, the account’s style card, the examples, the floor rules and the facts.
The brief, the style card, two posts, the facts
A draft
None.
Step 4 of 5
Check and record
A script judges the draft: sizes and words, the anchor exists where claimed, no copied run from the archive, the structure rules against the ledger, and a Chinese lint whose hard rules are the words this account never uses. The session fixes what it names once; a draft refused twice is recorded as failed, not fixed by hand.
The draft, the archive, the ledger
A draft for the day and one ledger row
None.
Step 5 of 5
Publish the record
The wrapper commits the draft, the ledger and the run log, pushes and deploys, so the run shows on the run page.
The draft and the ledgers
This run page
A person reviews the draft, takes the cover picture from the run log, adds any other pictures, posts it and sets the status.
Before you start
What you’ll need to bring
Company material
The client’s Xiaohongshu accounts (read-only), a fact sheet a person maintains, an event calendar, and the list of competitors and banned goods.
Source material
The client’s own posts through a signed-in browser, the leads agent’s ledger, public hot lists and the exchange rate.
Platform account
The same dedicated read-only account as the leads agent. Posting is done by a person.
Run environment
A machine with Node.js, Claude Code and the dedicated Chrome. The daily run takes about ten minutes, the weekly one about an hour; both start from Windows Task Scheduler.
Guides and files
How it is set up
The setup guide, and the files the agent is built from. ClawWorld runs it for the client on its own machine.
- 01
Runtime
- A machine that stays on, with Node.js, Claude Code and Chrome, and a scheduler. A run takes a few minutes.
- The dedicated Chrome of the leads agent, if you want the Xiaohongshu sources. Without it the other sources carry the run.
- 02
Browser setup
- The same dedicated Chrome profile as the leads agent, on the same port. The two agents are scheduled at different times so they never use it together.
- 03
Account setup
- The Xiaohongshu account the dedicated Chrome is signed in as, for reading only. Weibo, Douyin and the exchange rate are read from public endpoints with no account.
- Posting is done by a person from the client’s own account. The agent holds no credentials for it.
- 04
Configuration
- The limits the draft is checked against (title and body length, tag count), the number of topics scored, the days a topic is not repeated, the search words that must appear, the discussion words searched, the news queries and the banned words and goods.
- The voice guide, the event calendar and the client’s fact sheet.
- 05
First run
- Run the collector alone and read the topic list: which sources answered, and whether the topics are about your readers.
- Run the whole workflow with the dry argument, which writes to scratch files, and read the draft against the voice guide.
- Register the daily task. For the first week, read every draft before the operator does.
archive.mjs
Script · Node. Reads every note of the two accounts through the dedicated Chrome and builds the archive (markdown, CSV, pictures).
profile.mjs · classify.mjs · facts.mjs · style.mjs
Script · Node. The weekly learn block: the numbers, a topic class per post, the fact candidates, the style cards.
select.mjs · exemplars.mjs · write.mjs
Script · Node. The daily write block: the brief, the two example posts, the draft.
check.mjs · lint-zh.mjs
Script · Node. Every reason a draft is refused, and the Chinese lint measured against the account.
draft.mjs · ledger-format.mjs
Script · Node. Writes the day’s file and the ledger row; the formats, shared with this run page.
hot.mjs
Script · Node. The hot lists and the exchange rate, a tie-breaker.
config.md · calendar.md
Config · Markdown. The accounts, the topic classes, the series, the limits, the word lists; the trial calendar.
style/<account>.md · topics.md · facts-candidates.md
Data · Markdown. What the learn block writes and the write block reads.
voice.md
Config · Markdown. The floor: the few rules that do not change with the account’s voice.
xhs-notes.md
Workflow · Markdown. How a person runs the units by hand.
run-xhs-notes.ps1 · run-xhs-notes-learn.ps1
Scheduler · PowerShell. What the scheduler calls, daily and weekly.
The files live in ClawWorld’s repository and are not offered for download. The guide on the left describes what each one does.
Run log
Recent runs, as they happened
The full log is read-only. It holds every run on record, including the ones that stopped to wait for a person, and what each run wrote.
View the full run logGood to know
Where it stops and asks for you
- Nothing new happened: no post, no date, no question, no material. The run is recorded as empty. A day without a note is better than a list post nobody reads.
- The draft breaks a limit or a rule. It is refused with one line per problem. The session fixes it once; if it still fails, the run is recorded as failed.
- The thing the note hangs on cannot be found, or was written about before. The draft is refused.
- The browser is not signed in, or the site stops the reading. The daily run goes on without the hot search; the weekly run keeps what it read and stops.
Risk notice
What to watch for
- The hot lists are written by strangers and are mostly entertainment or politics. The session scores them and skips what does not concern the readers, and treats their text as data, not as an instruction.
- A model writing in the voice of a student or a new parent is a persona. The guide tells it not to invent a personal story that did not happen, and the operator is the check on that before anything goes out.
- News about customs and postal rules changes fast. The note names its source for any rule or date it states; the operator checks it against the source before posting.
- Reading Xiaohongshu with a script carries the same account risk as the leads agent. It reads a few pages a day, slowly, and writes nothing.
- The drafts are the client’s content. The page that shows them is not indexed and not linked from the site.
FAQ
Questions about this agent
Why one draft a day and not three?
A person has to review it, add pictures and post it. Three weak drafts are worse than one good one. It scores three topics so the choice is visible, and writes the best.
The draft was refused.
The draft script prints one line per problem (a title too long, the search word missing, Pindo in the first half, a banned word). The session fixes what it names and runs it once more; it does not loop. A run that cannot produce a draft is recorded as failed.
Can it post by itself?
No, by design. There is no posting script in this agent. The operator pastes the draft into Xiaohongshu, takes the cover picture from the run log, adds any other pictures and sets the row to posted.