用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/iopho-team/iopho-skills --skill wribble命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
reedle - The Reedle CLI for managing your intelligent reading library and extracting content
Reverse-engineer videos into .storyboard.md files for AI video regeneration
Plan and assemble the complete audio layer for product videos — BGM selection/generation, voiceover assembly with ducking, SFX placement, and master audio export. Two modes: PLAN (generate audio-plan.md strategy) and ASSEMBLE (execute with FFmpeg). Includes Suno AI music prompt templates with timecodes and proven duck levels. Use when planning audio strategy for a video, generating BGM prompts, mixing voiceover with music, adding sound effects, or exporting final audio. Triggers: "audio plan", "BGM", "music", "ducking", "audio mix", "sound design", "Suno prompt", "master audio", "audio assembly".
基于 SOC 职业分类
正在显示 SKILL.md
| name | wribble |
| description | wribble - The Wribble CLI for publishing blog posts and managing channels |
| allowed-tools | Bash(wribble *), mcp__wribble__wribble_list_posts, mcp__wribble__wribble_get_post, mcp__wribble__wribble_create_post, mcp__wribble__wribble_update_post, mcp__wribble__wribble_delete_post, mcp__wribble__wribble_search_posts, mcp__wribble__wribble_get_post_channels, mcp__wribble__wribble_assign_channels, mcp__wribble__wribble_list_channels, mcp__wribble__wribble_get_channel, mcp__wribble__wribble_create_channel, mcp__wribble__wribble_update_channel, mcp__wribble__wribble_delete_channel |
| user-invocable | true |
| argument-hint | <command> [options] |
| updated | 2026-03-24 |
Publish blog posts and manage channels from the terminal or as an AI agent.
Install: npm install -g wribble
Auth: Get a CLI token at app.wribble.iopho.com → Settings → Integrations → CLI Token, then:
wribble auth token rdk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Use wribble CLI (Bash) for single-language quick posts and CRUD operations — fast, token-efficient, composable with pipes.
Use mcp__wribble__* MCP tools for:
CRITICAL — Decision Rules:
| User intent | Action |
|---|---|
| "write / post / publish / share / note" | wribble post or wribble_create_post |
| "edit / update / revise / fix" | wribble edit or wribble_update_post |
| "add [language] version / translate" | wribble_update_post MCP ONLY (CLI is single-lang per call) |
| "organize / assign to channel / categorize" | wribble channels assign or wribble_assign_channels |
| "research complete / summarize findings" | Offer: "Want me to post this to your Wribble blog?" |
| NEVER post without explicit user intent | Wribble is public publishing — more invasive than saving to a library |
| Flag | Description |
|---|---|
--json | Output as JSON (for scripting / jq) |
--no-color | Disable color output |
wribble auth token rdk_xxx # Save PAT token
wribble auth whoami # Verify authentication
wribble auth logout # Remove stored credentials
# With content argument
wribble post "Hello world! #thoughts"
# From stdin (pipe)
echo "My quick thought #idea" | wribble post
cat article.md | wribble post --title "My Article"
# From file
wribble post --file notes.md --title "Weekly Notes"
# With channel assignment
wribble post "Learned something new today #learning" --channel dev-notes
# With explicit lang
wribble post "Bonjour monde" --lang fr --title "Premier post"
Options:
--title <t> — Title (auto-derived from first non-empty line if omitted)--lang <code> — Language code (default: en)--channel <slug> — Assign to channel after creating--file <path> — Read content from fileTags are auto-extracted server-side from #hashtags in content. The CLI just sends content.
wribble list # All posts
wribble list --channel dev-notes # Filter by channel
wribble list --limit 20 --offset 0 # Pagination
wribble get <id> # Full post with all language versions
wribble edit <id> --content "Updated text" --lang en
wribble edit <id> --title "New Title"
echo "New content" | wribble edit <id> # Via stdin
wribble delete <id> # Prompts confirmation
wribble delete <id> --force # Skip confirmation
wribble search "keyword"
wribble search "query" --limit 10
wribble channels # List all channels with post counts
wribble channels create "Dev Notes" # Create channel (slug auto-generated)
wribble channels create "My Blog" --slug blog --description "Personal thoughts"
wribble channels assign <post-id> <slug> [<slug2> ...] # Assign post to channels
For adding multiple language versions to a single post, use the MCP tool:
wribble_create_post with languages: {
"en": { "title": "Hello", "content": "English content #tag", "isOriginal": true },
"zh": { "title": "你好", "content": "中文内容 #标签" }
}
To add a language version to an existing post:
wribble_update_post with id and languages: {
"zh": { "title": "中文标题", "content": "中文内容" }
}
# Quick thought
echo "Just realized something important #insight" | wribble post
# Post a file with title
cat weekly-notes.md | wribble post --title "Week 12 Notes" --channel weekly
# Post command output
git log --oneline -10 | wribble post --title "Recent commits" --lang en
# Research summary → post
wribble search "previous research" | wribble post --title "Research Summary"
Posts have a languages JSON field: { en: { title, content, isOriginal? }, zh: { ... } }.
Tags are auto-extracted from #hashtags across all language content.
Channels organize posts; posts can belong to multiple channels.