Xiaohongshu Longpost Auto

v1.0.2

小红书自动长文发布工具。用户已有长文内容需要发布到小红书时,自动完成登录检测、长文内容分段优化、AI 生成配图、内容填充、AI 生成标签、标签激活、原创声明、执行发布的全流程。仅扫码登录需人工操作,其余步骤全自动化。使用场景:用户已有笔记长文内容需要发布到小红书;触发词包括"小红书长文发布"、"发布小红书长文"、...

0· 170·1 current·1 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description (automate Xiaohongshu long-post publishing) match the SKILL.md: the document describes navigating the creator site, entering the publish page, filling fields, formatting, selecting templates, adding tags, declaring originality, and publishing. No unrelated services, binaries, or credentials are requested.
Instruction Scope
The runtime instructions instruct the agent to automate the web UI (browser.navigate, snapshot, browser.act, evaluate JS in the page). This is expected for a web-publishing automation skill, but page-script evaluation can access arbitrary page DOM and could read sensitive on-page data (e.g., profile info visible after login). The file uses hard-coded element refs (e111, e148, etc.), which are brittle but consistent with UI automation.
Install Mechanism
Instruction-only skill with no install spec and no code files — nothing is downloaded or written to disk by the skill bundle itself.
Credentials
No environment variables, credentials, or config paths are requested. The skill expects the user to authenticate via QR scan (manual). However, it references AI-generated images and content-filling without specifying where those models/APIs run or whether API keys are needed; absence of declared image-generation credentials is a potential mismatch to clarify.
Persistence & Privilege
always is false and there are no install hooks or instructions to modify agent/system-wide settings. The skill does not request persistent privileges.
Assessment
This skill appears to do what it says: automate the Xiaohongshu creator site via browser automation and requires you to scan a QR code to log in. Before enabling it: 1) Understand that it runs DOM-level scripts (evaluate) on the site — those can read page content visible after login, so only use with accounts you trust. 2) Confirm how AI-generated images are produced (local model vs external API) because no API keys or env vars are declared. 3) Test with a throwaway account first — the automation uses brittle element IDs and may mis-click or publish unintended content. 4) If you require stricter privacy, avoid giving the agent persistent access to your primary account and review each generated post before final publish.

Like a lobster shell, security has layers — review code before you run it.

latestvk971x57n49h9vnh98bgjjgnjd183fqh0
170downloads
0stars
3versions
Updated 1mo ago
v1.0.2
MIT-0

Xiaohongshu Automatic Long-Form Post Publishing

Feature Overview

When users have long-form content ready to publish on Xiaohongshu, automatically completes the entire process: login detection, long content segmentation optimization, AI-generated images, content filling, AI-generated tags, tag activation, original content declaration, and publishing. Only QR code login requires manual operation; all other steps are fully automated.

Trigger Conditions

Trigger this skill when the user mentions any of the following keywords:

  • Xiaohongshu long-form post publishing
  • Publish Xiaohongshu long-form post
  • Automatically publish Xiaohongshu long-form post
  • Xiaohongshu long-form notes
  • Xiaohongshu article publishing
  • 小红书长文发布
  • 发布小红书长文
  • 自动发小红书长文
  • 小红书长文笔记
  • 小红书文章发布

Use Cases

  • Users have existing long-form note content ready to publish on Xiaohongshu

🔄 Workflow

1. Content Preprocessing → 2. Login Detection → 3. Enter Publishing Page → 4. Fill Content → 
5. One-Click Formatting → 6. Select Template → 7. Generate Description → 8. Add Tags → 
9. Declare Original → 10. Publish

Step-by-Step Guide

1️⃣ Content Preprocessing

Segmentation Principles:

  • 300-500 characters per paragraph to maintain reading rhythm
  • Add subheadings for easy browsing
  • Front-load key information; present core points at the beginning of each paragraph
  • Appropriate spacing with blank lines between paragraphs
  • Moderate use of emojis ✨💡

Content Structure:

Opening Hook (50-100 chars) → Spark curiosity or resonate
Body Paragraphs (300-500 chars each) → Problem/Background → Analysis/Methods → Cases/Experience → Summary/Suggestions
Closing Interaction (50 chars) → Encourage comments or saves

2️⃣ Login Detection

Visit: https://creator.xiaohongshu.com/

StatusAction
Logged inDirectly enter publishing page
Not logged inPrompt user to scan QR code, wait for completion

Technical Implementation:

// Detect login status
browser.navigate('https://creator.xiaohongshu.com/')
// If redirected to /login page, not logged in

3️⃣ Enter Publishing Page

Visit: https://creator.xiaohongshu.com/publish/publish

Operation Steps:

  1. Navigate to the publishing page
  2. Click the "Write Long-Form Post" button
  3. Click "New Creation" to enter the editor

Technical Implementation:

browser.navigate('https://creator.xiaohongshu.com/publish/publish')
browser.snapshot() // Get page elements
browser.act({ kind: 'click', ref: 'e111' }) // Click "Write Long-Form Post"
browser.act({ kind: 'click', ref: 'e148' }) // Click "New Creation"

4️⃣ Fill Content

FieldRequirements
Title≤20 characters, containing 1-2 keywords
Body TextPaste preprocessed content

Technical Implementation:

// Fill title
browser.act({ kind: 'type', ref: 'e253', text: 'Title content' })

// Fill body text (inject using evaluate)
browser.act({
  kind: 'evaluate',
  fn: "() => { const editor = document.querySelector('[contenteditable]'); editor.textContent = 'Body content'; editor.dispatchEvent(new InputEvent('input', {bubbles: true})); return 'done'; }"
})

5️⃣ One-Click Formatting

Click the "One-Click Formatting" button; the system automatically optimizes the format.

Technical Implementation:

browser.act({ kind: 'click', ref: 'e260' }) // Click "One-Click Formatting"

6️⃣ Select Template

Template TypeApplicable Scenarios
Fresh MinimalistLifestyle sharing, reading notes
Workplace ExpertiseExperience summaries, skill sharing
Vibrant FashionBeauty/fashion, trending topics
Warm HealingEmotional stories, inspirational content
Professional RigorousEducational content, tutorials, guides
Logical StructureTech news, industry analysis
Simple BasicGeneral content

Principle: Choose based on content theme and target audience Recommendation: For tech/workplace content, select "Logical Structure" or "Workplace Expertise"

Technical Implementation:

browser.act({ kind: 'click', ref: 'e334' }) // Click "Logical Structure" template
browser.act({ kind: 'click', ref: 'e647' }) // Click "Next"

7️⃣ Generate Body Description

Optimization Principles:

ElementRequirements
Length50-100 characters
ContentSummarize core points or highlights
ToneConversational, friendly
HookCreate suspense or highlight pain points at the beginning
KeywordsInclude 1-2 search keywords

Example:

  • ❌ "This article introduces several methods for time management"
  • ✅ "Same 24 hours, why can others get 3 times the work done? These 5 time management techniques doubled my productivity, number 3 is truly amazing!"

Technical Implementation:

browser.act({ kind: 'type', ref: 'e706', text: 'Description content' })

8️⃣ Add Tags

Tag Structure (5-8 total):

TypeQuantityExample
Core Tags1-2#WorkplaceExpertise #LearningMethods
Niche Tags2-3#TimeManagement #Productivity
Popular Tags1-2#OfficeWorkers #Students
Long-Tail Tags1-2#PomodoroTechnique #MorningJournal

Checklist:

  • ✅ 5-8 tags total
  • ✅ Highly relevant to content
  • ✅ Balanced popularity (high traffic + precise)

Technical Implementation:

browser.act({ kind: 'click', ref: 'e723' }) // Click "Topic" button
browser.act({ kind: 'click', ref: 'e1033' }) // Click recommended tag "#ArtificialIntelligence"
browser.act({ kind: 'click', ref: 'e712' }) // Click recommended tag "#LargeLanguageModels"

9️⃣ Declare Original

Operation Steps:

  1. Check the "Original Content Declaration" checkbox
  2. In the pop-up, check "I have read and agree"
  3. Click the "Declare Original" button

Technical Implementation:

browser.act({ kind: 'click', ref: 'e806' }) // Check original declaration
browser.act({ kind: 'click', ref: 'e1083' }) // Check agreement box
browser.act({ kind: 'click', ref: 'e1088' }) // Click "Declare Original"

🔟 Publish

Pre-Publishing Checklist:

  • Title complete and engaging (≤20 characters)
  • Body text formatting looks good
  • Body description engaging (50-100 characters)
  • Tags activated (5-8 tags)
  • Original declaration checked

Technical Implementation:

browser.act({ kind: 'click', ref: 'e1013' }) // Click "Publish"

Publication Success Indicators:

  • Page displays green checkmark ✅
  • Displays "Published Successfully" text
  • Automatically returns to homepage after 3 seconds

⚠️ Important Notes

ItemDescription
Content ComplianceMust comply with Xiaohongshu community guidelines; avoid sensitive words
Image CopyrightAI-generated images should avoid copyright risks
Publishing FrequencyAvoid publishing too frequently in a short period (recommended interval > 1 hour)
Engagement MaintenanceMonitor comments after publishing and respond promptly
Title LengthStrictly control within 20 characters; otherwise cannot publish
Tag CountMinimum 3, maximum 8, recommended 5-6

🛠️ Error Handling

Error ScenarioHandling Method
Login expiredPrompt user to scan QR code again; wait for completion and continue
Element not foundRe-snapshot to get latest ref, retry up to 3 times
Content injection failedCheck contenteditable element, activate using focus()+click()
Image upload failedRetry up to 3 times; if still failing, skip that image
Content moderation promptPrompt user to modify sensitive content
Publishing frequency limitPrompt user to wait before retrying (typically 1-24 hours)
Title too longAutomatically truncate or have AI regenerate a shorter title

Debugging Tips:

// 1. Screenshot to confirm current page status
browser.screenshot({ fullPage: true })

// 2. Get latest element references
browser.snapshot({ refs: 'aria' })

// 3. Check if editor is editable
browser.act({ fn: "document.querySelector('[contenteditable]').isContentEditable" })

🔧 Technical Details

Browser Automation Essentials

1. Element Locating:

  • Use refs: 'aria' to obtain stable aria-ref locators
  • Avoid using unstable XPath or CSS selectors

2. Content Injection:

// Recommended method: Use evaluate + dispatchEvent
browser.act({
  kind: 'evaluate',
  fn: "() => {
    const editor = document.querySelector('[contenteditable]');
    editor.textContent = 'Content';
    editor.dispatchEvent(new InputEvent('input', { bubbles: true }));
    return 'done';
  }"
})

3. Waiting Strategy:

  • Wait 500-1000ms after clicks to allow page to respond
  • Use snapshot to confirm element state before proceeding

🔗 Reference Documentation

Comments

Loading comments...