mowen-note-publisher

Publish, edit, or configure notes on Mowen (墨问) via Open API. Use when user mentions 墨问, mowen, 发布笔记, publish note, or wants to create social-media-style notes with rich text and images.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "mowen-note-publisher" with this command: npx skills add jacobluo/mowenskill

墨问笔记发布 (Mowen Note Publisher)

Overview

Publish rich-text notes (text, images, formatting) to 墨问 via its Open API. This skill covers three operations: creating new notes, editing existing notes (API-created only), and modifying note settings (privacy, sharing, expiration). A Python script (scripts/publish_note.py) handles all API calls, image uploads, and NoteAtom construction with zero third-party dependencies.

Prerequisites

  • API Key: Obtain from 墨问小程序 → 我的 → 设置 → 开放平台 → 创建 API Key
  • Environment: Set MOWEN_API_KEY environment variable, or pass via --api-key argument
  • Python 3: Required for running the publish script (macOS has it pre-installed)

Workflow Decision Tree

User Request
    │
    ├── "发布/创建笔记" or "publish note"
    │   └── ACTION: create
    │       ├── Has images? → Upload images first (see Image Handling)
    │       ├── Build input JSON with paragraphs, tags, autoPublish
    │       └── Run: publish_note.py --action create
    │
    ├── "编辑/修改笔记内容" or "edit note"
    │   └── ACTION: edit (requires noteId from previous create)
    │       ├── ⚠️ Only API-created notes can be edited
    │       ├── Build input JSON with new paragraphs
    │       └── Run: publish_note.py --action edit --note-id <ID>
    │
    └── "修改笔记设置/隐私" or "change note settings"
        └── ACTION: settings (requires noteId)
            └── Run: publish_note.py --action settings --note-id <ID> --privacy <N>

Creating a Note (Step by Step)

1. Gather Content from User

Collect the note content. Identify:

  • Text paragraphs (plain text or rich text with bold/highlight/links)
  • Images (local file paths or URLs)
  • Tags (optional, max 10, each ≤ 30 chars)
  • Whether to auto-publish (default: draft)
  • Privacy setting (default: public)

2. Prepare Input JSON

Build a JSON object following this schema:

{
  "paragraphs": [
    "Plain text paragraph",
    [{"text": "Bold text", "bold": true}, " and normal text"],
    {"type": "heading", "level": 1, "text": "Title"},
    {"type": "image", "src": "https://example.com/photo.jpg"},
    {"type": "image", "src": "/path/to/local/photo.jpg", "width": 1080, "height": 720},
    {"type": "blockquote", "text": "A quote"},
    {"type": "bulletList", "items": ["Item 1", "Item 2"]},
    {"type": "orderedList", "items": ["First", "Second"]}
  ],
  "tags": ["tag1", "tag2"],
  "autoPublish": true,
  "privacyType": 1
}

Paragraph types:

TypeFormatDescription
Plain text"string"Simple text paragraph
Rich text[{...}, ...]Array of text items with optional bold, highlight, link
Heading{"type":"heading", "level":1, "text":"..."}h1-h6 heading
Image{"type":"image", "src":"..."}Image (URL, local path, or fileId)
Quote{"type":"blockquote", "text":"..."} or {"type":"quote", "text":"..."}Block quote
Bullet list{"type":"bulletList", "items":["..."]}Unordered list
Ordered list{"type":"orderedList", "items":["..."]}Numbered list
Raw node{"type":"raw", "node":{...}}Direct NoteAtom node passthrough

Privacy types: public = public, private = self-only, rule = custom rules (with noShare/expireAt)

3. Save Input and Run Script

Save the JSON to a temporary file and execute:

python {SKILL_DIR}/scripts/publish_note.py --action create --input /tmp/note_input.json

Or pipe directly via stdin:

echo '<json>' | python {SKILL_DIR}/scripts/publish_note.py --action create

The script outputs a JSON result with noteId on stdout. Save this noteId — it is needed for subsequent edit or settings operations.

4. Report Result

Inform the user of the created note's ID and status (draft vs published).

Editing a Note

⚠️ Limitation: Only notes created via the API can be edited. Notes created in the 墨问 mini-program cannot be edited through this API.

To edit, provide the noteId (from a previous create) and new content:

python {SKILL_DIR}/scripts/publish_note.py --action edit --note-id <NOTE_ID> --input /tmp/note_edit.json

The input JSON format is identical to creation (the paragraphs field). The entire note content will be replaced.

Modifying Note Settings

To change privacy, sharing, or expiration settings:

# Set to private
python {SKILL_DIR}/scripts/publish_note.py --action settings --note-id <NOTE_ID> --privacy private

# Set to public
python {SKILL_DIR}/scripts/publish_note.py --action settings --note-id <NOTE_ID> --privacy public

# Set custom rule: forbid sharing with expiration
python {SKILL_DIR}/scripts/publish_note.py --action settings --note-id <NOTE_ID> --privacy rule --no-share --expire-at 1735689600

Image Handling

The script automatically handles images found in paragraphs:

  • URL images (http:// or https://): Uploaded via remote upload API (< 30MB)
  • Local file paths: Uploaded via local upload API (< 50MB, formats: gif/jpeg/jpg/png/webp)
  • Existing fileId: Passed through directly (no upload needed)

Image upload is automatic — simply include image entries in the paragraphs array and the script handles the rest. Optionally provide width and height for better rendering.

Rate limiting (1 req/sec) is automatically enforced between API calls.

API Reference

For complete API documentation including endpoint details, NoteAtom structure specification, request/response examples, and error codes, refer to:

📄 references/mowen_api.md

Key search patterns for the reference file:

  • ## 1. 笔记创建 — Create endpoint details
  • ## 2. 笔记编辑 — Edit endpoint details
  • ## 3. 笔记设置 — Settings endpoint details
  • ## 4. NoteAtom 结构定义 — Full NoteAtom schema with all node types
  • ## 5. 图片上传 — Image upload (local + remote) procedures
  • ## 7. 限频与配额汇总 — Rate limits and daily quotas

Common Use Cases

Publish a simple text note

{
  "paragraphs": [
    "今天天气真好,适合出门散步 ☀️"
  ],
  "tags": ["日常", "心情"],
  "autoPublish": true
}

Publish a note with images and formatting

{
  "paragraphs": [
    {"type": "heading", "level": 1, "text": "周末探店记录"},
    "今天去了一家超棒的咖啡店!",
    {"type": "image", "src": "https://example.com/coffee.jpg"},
    [{"text": "拿铁", "bold": true}, "味道超赞,推荐指数 ⭐⭐⭐⭐⭐"],
    {"type": "image", "src": "/Users/me/photos/cake.jpg", "width": 1080, "height": 1080},
    {"type": "blockquote", "text": "生活需要一点甜"},
    {"type": "bulletList", "items": ["环境优雅", "咖啡好喝", "甜品精致"]}
  ],
  "tags": ["探店", "咖啡", "美食"],
  "autoPublish": true
}

Edit a previously created note

# Original creation returned noteId = "note_abc123"
python publish_note.py --action edit --note-id note_abc123 --input updated_content.json

Make a note private

python publish_note.py --action settings --note-id note_abc123 --privacy private

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

bee-inquiry-read

Fetch and analyze inquiry data from Bee platform with pagination, customizable fields, and multi-language support using authenticated API access.

Registry SourceRecently Updated
General

Cofco Futures Skill

中粮期货官方助手。提供公司背景及营业部信息查询,交易日历查询,交割备忘录查询,支持开户咨询及客户预约开户服务,支持期货交易下单、撤单、查询等交易功能。

Registry SourceRecently Updated
General

fbt-travel

一站式企业差旅服务,提供酒店搜索预订、机票查询预订、改期退票等全流程服务。智能需求确认、后台静默认证、表格对比展示。基于分贝通官方数据,实时准确可靠。

Registry SourceRecently Updated
General

xhs-title-copywriter(小红书爆款标题生成器)

专为小红书内容创作打造的爆款标题生成工具,基于全网每日持续收录的2000+条爆款笔记数据,抓取高互动爆款笔记的标题结构、关键词布局与情绪钩子,通过AI智能分析拆解爆款标题逻辑,结合用户输入的核心信息、产品卖点及选题方向,精准匹配平台受众喜好,一键生成10个优质爆款标题,告别标题纠结,轻松提升笔记点击率与曝光量。

Registry SourceRecently Updated