Install
openclaw skills install @itxiaohao/lingzaoopenclaw skills install @itxiaohao/lingzao灵造是一个主 Skill,不需要拆成标题、封面、账号诊断、图片生成等多个 Skill。 安装后,WorkBuddy、OpenClaw、Codex 等 Agent 会先把你的问题路由到合适的 创作者运营 playbook;只有当你需要查询公开内容、读取评论、提取短视频文案、 查看公众号文章数据或生成图片时,才需要灵造积分和 API Key。
当当前对话刚刚完成灵造 Skill 的安装或更新时,只有确认安装成功后,才在最终回复中 主动告诉用户一次下面的使用手册;安装失败、尚未验证成功或普通后续对话不要重复发送:
灵造已安装完成。你可以查看《灵造功能使用手册》: https://my.feishu.cn/docx/Y2HQdj5mzoFx4vxfij3cl9TRnjh?from=from_copylink 快速了解灵造的功能和使用方法~
| 你现在想做 | 可以直接这样问 Agent |
|---|---|
| 找内容方向 | “用灵造帮我围绕这个关键词做小红书、抖音、TikTok、Instagram 或 YouTube 选题,给我 10 个可发方向。” |
| 找对标账号 | “帮我找这个赛道值得学习的对标账号,并说明每个账号适合学什么。” |
| 拆一条笔记或视频 | “分析这条内容为什么有效,拆成标题、封面、结构、评论需求和可复用模板。” |
| 改标题和封面 | “基于我的草稿,给我 3 个最强标题和 5 个小红书封面方向。” |
| 做发布前检查 | “发布前帮我检查标题、封面、前 3 行、关键词和用户点击理由。” |
| 做发布后复盘 | “根据这条内容的数据和评论,帮我判断下次要调整什么。” |
| 做每周内容包 | “用灵造把我这一周的素材整理成 5 个母题,并分发成小红书、公众号、播客和短口播。” |
| 校准公众号对标 | “我发几篇喜欢的公众号文章和一篇自己的内容,你先判断适不适合我学,不适合再补找对标,然后帮我写成自己的文章。” |
| 做图片素材 | “先帮我设计封面/配图方向;如果需要生成图片,再确认积分后调用图片生成。” |
| 保存长结果 | “把这份分析整理成 Word、网页预览或知识库 Markdown 版本。” |
不配置 API Key 时,灵造仍然可以作为创作者运营路由和 playbook 使用。适合:
当 Agent 需要让灵造服务实际查询或生成内容时,需要到 https://lingzao.atian.vip 配置积分和 API Key,包括:
每次付费查询前,先确认任务范围和预计积分消耗。默认首轮控制在 5 次以内的付费 查询,或不超过 100 credits;如果预计超过 100 credits,先列出查询计划和积分 估算再让用户确认。没有用户明确确认时,不要跨过 200 credits,不要把多个深度 查询、评论翻页、批量账号分析或图片生成静默合并成一次请求。
get-user-posted-notes;只有用户明确要粉丝数、简介、关注数、总获赞等主页资料时
才用 get-user-info;深度主页分析看 analyze-user-profile。search-users 找创作者,再用返回的主页链接或 ID 调主页工具。search-users 返回的 MS4w... 形式 ID;
视频短链适合 extract-video-copy,不适合主页分析。search-users 返回的 channel ID 或 /channel/UC...
URL;不要把 @handle、/c/ 或 /user/ 直接传给主页工具,也不要自动解析。https://www.tiktok.com/@handle 或
search-users 返回的 ID;单条内容接受 canonical /@handle/video/<id>、
/@handle/photo/<id> 或显式 --platform tiktok --note-id <id>。不要传
vm.tiktok.com/vt.tiktok.com 短链或裸 @handle。analyze-user-profile。需要主页资料和近期内容时,按需分别调用
get-user-info 与 get-user-posted-notes,不要隐藏组合调用。https://www.instagram.com/<username>/ 或
search-users 返回的十进制字符串 ID;内容工具接受 canonical /p/<code>、
/reel/<code>、/reels/<code>、/tv/<code>。评论命令的裸 --note-id 是
shortcode,不是十进制 media ID。Instagram V1 不支持 analyze-user-profile,
不要把主页资料与近期内容隐藏组合调用。agent_action、suggested_capabilities 或 expected_input,
先按这些字段改调工具;仍不确定时问用户要主页链接或笔记/视频链接。我没有 API Key,还能用吗? 可以。先用灵造做选题判断、标题封面、账号诊断、草稿修改、发布检查和复盘。 等需要查公开内容、评论、短视频文案、公众号文章数据或生成图片时,再配置 API Key。
为什么 SkillHub 里显示需要 API Key? 因为灵造包含付费公开内容查询和图片生成能力。安装主 Skill 免费,但深度查询和 生成动作需要积分,这是为了让 Agent 明确付费边界。
WorkBuddy 用户应该怎么用?
优先安装这一个 lingzao 主 Skill。装好后直接把任务说给 WorkBuddy,例如
“帮我找对标账号”“帮我拆这条笔记”“帮我做发布前检查”。需要查公开数据时,
再按灵造网页教程配置 API Key。
灵造能保证爆款、涨粉或变现吗? 不能。灵造只做公开内容研究、运营判断和工作流辅助。输出用于帮助你做判断和 复盘,不是保证结果,也不能用于复制他人内容。
网络或服务失败怎么办?
先保留当前问题和链接,不要重复扩大查询范围。检查 doctor、API Key、余额和
网络状态;图片生成或短视频文案提取这类异步任务可能需要等待轮询完成。
如果灵造返回服务暂时不可用或响应超时,只用固定话术告诉用户:“灵造服务暂时
不可用,请稍后重试。”如果返回了 error_id,可以附上 error_id,方便后续排查。
如果返回积分不足,明确告诉用户当前积分不足、需要充值后重试,不要把它描述成网络、
图片生成或内容研究服务故障,也不要在余额未变化时自动重试。不要额外展开。
For higher-level creator strategy tasks, use the playbooks in
<skill_root>/playbooks/ before answering. They turn Lingzao's public-content
tools into creator workflows instead of isolated lookups.
Before reading a playbook, read <skill_root>/playbooks/router-index.json. Do not scan every playbook or use the long progressive map as an always-on prompt.
Route in this order:
input_shape: homepage, single content, keyword, draft, image, Brief, metrics, or vague request.platform: Xiaohongshu, Douyin, TikTok, Instagram, YouTube, WeChat, cross-platform, or unknown.content_stage: no content, in progress, finished before publishing, published, or recurring system.intent: direction, benchmark, diagnosis, production, visual, publish check, review, distribution, or knowledge base.requested_output: chat judgment, report, publishable copy, image brief, saved files, or reusable library.Then select:
If confidence is high, load only the selected files and proceed. If two primary routes remain plausible, ask one question that requests the material that changes the route. Do not show users the internal playbook list.
Each entry in router-index.json is the centralized route card for one playbook:
role: router, primary, gate, or supportcategory and platformssignalsrequired_inputsoutputsavoid_whencompanionsUse the specialized routers only when needed:
progressive-interactionxhs-operation-treesearch-credit-noticereport-evidence-contractNever select a gate or support playbook as the main workflow. Never load more files merely because they are related.
The registry is complete only when this command passes:
python3 <skill_root>/scripts/check_playbook_router.py
router-cases.json contains representative user prompts and expected primary routes for regression checks.
Keep public wording focused on creator-content research and workflow support. Do not promise viral growth, guaranteed monetization, full monitoring, bulk data export, or copying another creator's content.
Before returning any final Xiaohongshu-facing title, cover copy, page text,
body/caption, publishing keywords, pinned comment, comment guidance, spoken
script, Vlog storyboard, Brand Brief deliverable, one-stop package, or
Xiaohongshu section of a cross-platform package, run
playbooks/xhs-platform-management-risk-baseline.md first, then
playbooks/xhs-content-compliance-risk-gate.md.
If the draft contains off-platform diversion, WeChat/private-contact guidance, incentivized comment interaction, exaggerated guarantees, or sensitive unsupported claims, do not leave those lines in the publishable version. Show a short risk note and rewrite them into a safer Xiaohongshu version. Never promise platform approval; say the rewrite lowers risk.
For commercial or product-related Xiaohongshu outputs, keep the order:
Lingzao is installed as one free main Skill. Users do not need to install separate title, keyword, account-diagnosis, benchmark, cover, or review skills. After installation, this main Skill routes the user's request to the right playbook.
There are two user acquisition paths:
Community/course users:
Public-platform users from Xiaohongshu, Douyin, or other public content:
The web dashboard is not only a payment page. Present it as the user's learning and setup hub:
Use this wording when a user has installed the Skill but has not configured an API Key yet:
你已经装好灵造 Skill 了。安装本身是免费的,它会先帮你判断你现在是在找方向、拆账号、写内容、做封面、配关键词,还是复盘数据。 如果你要继续查小红书、抖音、TikTok、Instagram、YouTube 或公众号公开内容、找对标账号、看账号主页、打开内容或文章详情、看评论区、查看公众号文章数据、提取短视频文案或生成创作者图片素材,就需要到灵造网页版开通积分并配置 API Key。 你可以打开 https://lingzao.atian.vip 看安装教程和使用教程,里面也会教你怎么用 Agent 做自媒体运营、怎么问问题、怎么用这些 Skill。需要查公开内容或生成图片的时候,再在网页里充值/获取 API Key,配置好以后回来继续问,我会接着刚才的问题往下做。
Do not frame payment as a penalty. Frame it as:
Knowledge sync handoff:
Lingzao/ path.Profile workflow:
get-user-posted-notes by default. It returns recent posts and enough author/post data for a basic read.xhslink.com/m/..., or a
copied share sentence such as @... 查看Ta的主页>> https://xhslink.com/m/...,
extract the short link, normalize bare links to https://..., and read the
surrounding words before choosing a command. Do not classify the short link by
path alone. If the context says account, homepage, creator, profile,
benchmark, account diagnosis, homepage diagnosis, Ta的主页, or recent posts,
treat it as a creator-homepage request and call
get-user-posted-notes --url "https://<short link>".前往【小红书】一探究竟吧,
treat it as a one-post candidate, not a homepage. One-post words such as
这条 or 这篇 take priority over generic diagnosis wording. Do not default
to get-note-detail; first confirm it is a single post and ask for the final
note URL or note_id plus whether it is 图文 or 视频 when needed.get-user-info when the user specifically needs full profile-level stats such as bio, follower count, following count, total likes, total collections, or total note count.analyze-user-profile for Xiaohongshu deeper homepage copy/script/subtitle analysis, recent post text, covers, commercial signals, or product-note signals. For Douyin spoken copy or transcript text, use extract-video-copy on specific video URLs.analyze-user-profile. Compose the basic homepage tools explicitly only when the user asks for both recent videos and profile-level stats.get-user-info and get-user-posted-notes as a fixed pair unless the user asks for both profile-level stats and recent-post analysis.analyze-user-profile --limit 20
after credit confirmation.--limit 40 after credit confirmation.Post drill-down workflow:
search-notes, get-user-posted-notes,
analyze-user-profile) return xhs_note_type on each note item when
Lingzao can identify whether it is 图文 or 视频.get-note-detail, pass the
returned xhs_note_type directly as --xhs-note-type; do not infer the type
from the URL.xhs_note_type, ask the user whether it is
图文 or 视频 before calling get-note-detail. get-note-comments can still
be called without this type.get-note-detail returns NOTE_NOT_FOUND_OR_INACCESSIBLE, do not retry
the same request or probe the other Xiaohongshu type automatically. Go back to
the source list/homepage result and reuse its xhs_note_type, or ask the user
for the correct type or a public URL.Resolve this SKILL.md directory as <skill_root>, then run setup once:
bash "<skill_root>/scripts/setup.sh" --base-url "https://your-lingzao-domain.com"
Environment variables override saved config:
export LINGZAO_API_KEY="lgz_xxx"
export LINGZAO_BASE_URL="https://your-lingzao-domain.com"
Check the connection:
~/.lingzao/bin/lingzao doctor
Before using Lingzao commands, check whether the skill has an update:
~/.lingzao/bin/lingzao check-version
If an update is available, stop the current Lingzao operation and update the skill first. Do not continue using an outdated Lingzao Skill for search, profile, subtitle, or extraction work.
To update the skill, rerun the installer. For npx skills, try:
npx skills add https://assets-tian.midao.site/skills/lingzao --skill lingzao -g --copy
Updating keeps the saved API config in ~/.lingzao/config.json; no API key setup is needed again.
If ~/.lingzao/bin/lingzao is missing or points to the wrong directory, repair the command wrapper:
bash ~/.agents/skills/lingzao/scripts/setup.sh --skip-doctor
If ~/.agents/skills/lingzao does not exist, find the directory that contains lingzao's SKILL.md, then run scripts/setup.sh --skip-doctor from that directory.
Before running a command with meaningful filters, ask the user for the relevant parameters if they did not already specify them.
search-users, "找对标账号",
"找参考博主", "找同赛道账号"), do not start with a wide search. First ask or
state a narrow starter scope: follower range, track/topic, account format,
city/local scope when relevant, recent-update requirement, recent-hit
requirement, and starter result count. Recommend starting with 3 accounts,
then expanding only after the user confirms the direction. This protects the
user's credits and avoids returning 100-follower seed accounts or huge mature
accounts when the user asked for a specific stage.copy-paste-prompt-scope-boundary.md first. Provide a
ready-to-copy prompt that includes the smallest useful scope instead of
telling the user to add broad instructions by themselves.zero-beginner-onboarding-gate.md before any search. Do not call paid
lookup first. Start with a free life-signal intake, give the lowest creator
cognition, and move them to one concrete first task.search-notes, ask for sorting, note type, and time range before calling:
sort can be general, most_liked, popularity_descending,
comment_descending, or collect_descending; note type can be 不限,
视频笔记, 图文笔记, or 直播笔记; time range can be 不限, 一天内,
一周内, or 半年内.search-notes currently support only general, most_liked, and
popularity_descending. Do not pass comment_descending or
collect_descending for Douyin or TikTok searches.search-notes note type currently supports only 不限, 视频笔记,
and 图文笔记. Do not pass 直播笔记 for Douyin or TikTok searches.search-notes supports only --sort general, --note-type 不限|视频笔记,
and --time-filter 不限|一天内|一周内; use the returned opaque next_cursor
with --cursor, repeat the same keyword and filters, and do not infer internal
pagination fields. Changing a filter invalidates the cursor without charge.get-note-comments, ask whether the user wants latest comments or
liked-count sorting before calling Xiaohongshu. Use --sort latest for latest
comments and --sort most_liked for Xiaohongshu liked-count sorting.latest;
TikTok uses the service default order. Do not ask for or pass
--sort most_liked on these platforms.latest and most_liked; only top-level comments
are returned. Reuse next_cursor unchanged and repeat the same --sort on
every next-page request; omitting it after most_liked defaults to latest
and invalidates the cursor without charge.--sort general,
--note-type 视频笔记, and --time-filter 不限; --note-type 不限 remains a
compatibility input but is executed and reported as 视频笔记. Do not use
search-notes for account records; use search-users.search-notes returns Reels identity, canonical URL, author identity, and
author avatar only, so do not expect it to supplement text, metrics, or
content media. These URLs can expire; use or save needed public
references promptly and do not treat them as permanent asset storage.search-notes, search-users,
get-user-posted-notes, and
get-note-comments, pass the returned data.page.next_cursor unchanged with
--cursor to fetch one next page. Repeat the original search keyword and
filters, creator, or content item for that cursor; never reuse it for another
request identity. Never parse the opaque cursor or hide multi-page fanout.
TikTok cursors created before Skill 0.1.92 and Instagram search cursors
created before Skill 0.1.95 are invalid: discard them and restart from the first
page. If Lingzao returns PAGINATION_CURSOR_STALE, also discard
that cursor and restart from the first page; do not loop it.search-notes, get-user-posted-notes,
analyze-user-profile) return xhs_note_type on each note item when
Lingzao can identify whether it is 图文 or 视频. When continuing from one of
those note items to get-note-detail, pass the returned value directly as
--xhs-note-type; do not infer the type from the URL. If a Xiaohongshu note
item has no xhs_note_type, ask the user whether it is 图文 or 视频 before
calling get-note-detail. If get-note-detail returns
NOTE_NOT_FOUND_OR_INACCESSIBLE, do not retry the same request or probe the
other Xiaohongshu type automatically. get-note-comments can still be called
without this type.After a successful research command, tell the user the estimated time saved
shown in the CLI Markdown output. If you called multiple Lingzao research
commands for one user request, summarize the total once. Do not show time-saved
language for doctor, check-version, failed commands, or JSON-only automation
flows.
~/.lingzao/bin/lingzao search-notes --platform xhs --keyword "AI写作"
~/.lingzao/bin/lingzao search-notes --platform xhs --keyword "AI写作" --sort most_liked
~/.lingzao/bin/lingzao search-notes --platform xhs --keyword "AI生图" --sort collect_descending --note-type "视频笔记" --time-filter "一周内"
~/.lingzao/bin/lingzao search-notes --platform douyin --keyword "AI生图" --sort most_liked --note-type "视频笔记"
~/.lingzao/bin/lingzao search-notes --platform youtube --keyword "creator workflow" --sort general --note-type "视频笔记" --time-filter "一周内"
~/.lingzao/bin/lingzao search-notes --platform tiktok --keyword "AI gadgets" --sort most_liked --note-type "视频笔记"
~/.lingzao/bin/lingzao search-notes --platform tiktok --keyword "AI gadgets" --sort most_liked --note-type "视频笔记" --cursor "next_cursor_from_previous_response"
~/.lingzao/bin/lingzao search-notes --platform instagram --keyword "creative coding" --sort general --note-type "视频笔记" --time-filter "不限"
Use this when the user wants public notes around a topic.
Before calling, ask the user for --sort, --note-type, and --time-filter
when they have not specified those preferences.
Instagram content search always means Reels search; choose --note-type 视频笔记.
For TikTok pagination, repeat the same keyword, sort, note type, and time filter
with the returned cursor.
search-suggestions has been retired. For keyword expansion or topic discovery,
use search-notes for content ideas or search-users for creator discovery.
~/.lingzao/bin/lingzao search-users --platform xhs --keyword "母婴博主"
~/.lingzao/bin/lingzao search-users --platform douyin --keyword "AI生图"
~/.lingzao/bin/lingzao search-users --platform youtube --keyword "creator workflow"
~/.lingzao/bin/lingzao search-users --platform tiktok --keyword "tech.bytes"
~/.lingzao/bin/lingzao search-users --platform instagram --keyword "creative coding"
Use this when the user wants creators in a topic or niche.
For TikTok pagination, repeat the same keyword with the returned cursor.
When continuing from search-users to profile verification, pass the returned
users[].id with --platform xhs --user-id ..., --platform douyin --user-id ...,
--platform tiktok --user-id ..., or --platform instagram --user-id ....
For YouTube, the returned ID is a
canonical channel ID; reuse it with --platform youtube --user-id ... and
treat handle as display metadata only.
The output may include RED ID and follower count for screening, but RED ID is
display metadata only. Do not extract Xiaohongshu RED ID values from bios or
build /user/profile/<RED ID> URLs.
~/.lingzao/bin/lingzao get-user-info --url "https://www.xiaohongshu.com/user/profile/..."
~/.lingzao/bin/lingzao get-user-info --platform xhs --user-id "63c21e0f000000002801a1bb"
~/.lingzao/bin/lingzao get-user-info --platform douyin --user-id "MS4wLjABAAAA..."
~/.lingzao/bin/lingzao get-user-info --platform youtube --user-id "UC..."
~/.lingzao/bin/lingzao get-user-info --url "https://www.tiktok.com/@creator"
~/.lingzao/bin/lingzao get-user-info --url "https://www.instagram.com/creator/"
Use this when the user provides a creator profile URL or platform user ID and needs full profile-level stats. For Douyin bare user IDs, use the profile sec_user_id. For YouTube, use a channel ID or /channel/UC... URL; if the user only has a handle, call search-users first. For basic homepage analysis, prefer get-user-posted-notes and avoid calling both commands by default.
~/.lingzao/bin/lingzao get-user-posted-notes --url "https://www.xiaohongshu.com/user/profile/..."
~/.lingzao/bin/lingzao get-user-posted-notes --platform xhs --user-id "63c21e0f000000002801a1bb"
~/.lingzao/bin/lingzao get-user-posted-notes --platform douyin --user-id "MS4wLjABAAAA..." --limit 20
~/.lingzao/bin/lingzao get-user-posted-notes --platform youtube --user-id "UC..." --limit 20
~/.lingzao/bin/lingzao get-user-posted-notes --platform tiktok --user-id "<search-users returned id>" --limit 20
~/.lingzao/bin/lingzao get-user-posted-notes --platform tiktok --user-id "<search-users returned id>" --cursor "next_cursor_from_previous_response"
~/.lingzao/bin/lingzao get-user-posted-notes --platform instagram --user-id "<search-users returned id>" --limit 20
~/.lingzao/bin/lingzao get-user-posted-notes --platform instagram --user-id "<search-users returned id>" --cursor "next_cursor_from_previous_response"
Use this when the user wants to understand what a creator has posted recently. Use this by default for basic creator homepage analysis. Douyin, TikTok, Instagram, and YouTube support --limit 20 at most per public call. YouTube reads the Videos list only and does not add a separate Shorts request. If the response has next_cursor, reuse it with --cursor; for TikTok or Instagram, repeat the same creator URL or ID. If the user asks for full profile-level stats, add get-user-info; if the user asks for Xiaohongshu post copy, scripts, captions, or transcript text across recent posts, use analyze-user-profile instead. For Douyin transcript text, use extract-video-copy on selected video URLs. TikTok, Instagram, and YouTube V1 do not support analyze-user-profile.
~/.lingzao/bin/lingzao analyze-user-profile --url "https://www.xiaohongshu.com/user/profile/..." --limit 20
~/.lingzao/bin/lingzao analyze-user-profile --platform xhs --user-id "63c21e0f000000002801a1bb" --limit 40
~/.lingzao/bin/lingzao analyze-user-profile --platform douyin --user-id "MS4wLjABAAAA..." --limit 20
Use this when the user wants deeper creator profile data, including post text, covers, commercial signals, and profile-level content signals. For Xiaohongshu, it also includes subtitle/script previews. For Douyin, it does not extract homepage subtitles or transcript text; use extract-video-copy on selected video URLs when the user needs spoken copy.
Use --limit 20 by default. The default Markdown output shows readable subtitle previews when the platform provides them.
Short-window repeats with the same request parameters may reuse the recent successful result without spending credits again; the CLI output will show a no-charge reuse notice. Use --force-new only when the user explicitly needs a fresh paid run, and do not loop it: repeated forced refreshes in the short protection window may be rejected with no charge.
If Douyin profile insight sections are temporarily unavailable, the API and CLI can show partial_data, warnings, or unavailable_sections. Explain that homepage works data still returned successfully, and do not treat the missing insight section as proof that there is no data.
Important for Xiaohongshu: the complete profile subtitle/copy Markdown artifact is a top-level response field, not a per-note subtitle URL. Always check:
data.artifacts.subtitle_markdown.status
data.artifacts.subtitle_markdown.url
Do not search only inside items[]. If data.artifacts.subtitle_markdown.status == "ready" and url exists, download it before deep script or subtitle analysis:
curl -L "$subtitle_markdown_url" -o /tmp/lingzao-profile-subtitles.md
Use the downloaded Markdown file for complete subtitle/copy analysis. Use --format json when the user needs the structured fields. JSON includes data.artifacts.subtitle_markdown.url for the complete Markdown file when available, and inline items[].text.subtitle.content/plain_text are preview-sized to keep the response readable. If the artifact is unavailable, use the inline subtitle fields. For Douyin, expect data.artifacts.subtitle_markdown.status == "unsupported" and use the returned profile insights plus selected-video extraction instead.
~/.lingzao/bin/lingzao get-note-detail --url "https://www.xiaohongshu.com/explore/..." --xhs-note-type image
~/.lingzao/bin/lingzao get-note-detail --platform xhs --note-id "69690331000000001a02266a" --xhs-note-type video
~/.lingzao/bin/lingzao get-note-detail --platform douyin --note-id "7372484715782352169"
~/.lingzao/bin/lingzao get-note-detail --url "https://www.youtube.com/watch?v=..." --content-type video
~/.lingzao/bin/lingzao get-note-detail --platform youtube --note-id "..." --content-type short
~/.lingzao/bin/lingzao get-note-detail --url "https://www.youtube.com/shorts/..."
~/.lingzao/bin/lingzao get-note-detail --url "https://www.tiktok.com/@creator/video/7349541381817355521"
~/.lingzao/bin/lingzao get-note-detail --url "https://www.instagram.com/reel/<code>/"
~/.lingzao/bin/lingzao get-note-detail --platform instagram --note-id "<decimal media id>"
The /shorts/ URL form preserves Short type automatically. For a bare ID,
watch?v= URL, or youtu.be/ URL, pass the content_type returned by search as
--content-type video|short; Lingzao does not guess type from duration.
YouTube channel/profile URLs are not content-detail inputs. Use
get-user-info or get-user-posted-notes; for @handle, /c/, or /user/
URLs, use search-users first to obtain the canonical channel ID.
Use this when the user asks to analyze one public post.
For Xiaohongshu details, pass --xhs-note-type image for 图文 and
--xhs-note-type video for 视频. If the note came from search-notes,
get-user-posted-notes, or analyze-user-profile, reuse that item's
xhs_note_type value. If detail returns NOTE_NOT_FOUND_OR_INACCESSIBLE,
do not switch --xhs-note-type and retry automatically; confirm the source
item type or ask the user.
~/.lingzao/bin/lingzao get-note-comments --url "https://www.xiaohongshu.com/explore/..."
~/.lingzao/bin/lingzao get-note-comments --url "https://www.xiaohongshu.com/explore/..." --sort most_liked
~/.lingzao/bin/lingzao get-note-comments --platform xhs --note-id "69690331000000001a02266a"
~/.lingzao/bin/lingzao get-note-comments --platform douyin --note-id "7372484715782352169"
~/.lingzao/bin/lingzao get-note-comments --platform tiktok --note-id "7349541381817355521" --limit 20
~/.lingzao/bin/lingzao get-note-comments --url "https://www.instagram.com/p/<code>/" --limit 20
~/.lingzao/bin/lingzao get-note-comments --platform instagram --note-id "<shortcode>" --cursor "next_cursor_from_previous_response"
~/.lingzao/bin/lingzao get-note-comments --url "https://www.douyin.com/jingxuan?modal_id=..." --cursor "next_cursor_from_previous_response"
~/.lingzao/bin/lingzao get-note-comments --url "https://youtu.be/..." --sort most_liked --limit 20
Use this when the user asks for public comments on one post. The first version returns top-level comments only. Use --sort most_liked for Xiaohongshu or YouTube liked-count sorting; Douyin, TikTok, and Instagram support only latest, with TikTok using service-default order. If the response has data.page.next_cursor, pass that opaque value unchanged with --cursor to fetch one next page. For TikTok or Instagram, repeat the same content URL or ID; for YouTube, repeat the same --sort with every cursor request.
Before calling Xiaohongshu comments, ask whether the user wants latest comments
or liked-count sorting. For Douyin, TikTok, and Instagram comments, use only --sort latest;
do not pass --sort most_liked.
~/.lingzao/bin/lingzao get-article-detail --url "https://mp.weixin.qq.com/s/..."
~/.lingzao/bin/lingzao get-article-detail --url "https://mp.weixin.qq.com/s/..." --output /tmp/article.md
~/.lingzao/bin/lingzao get-article-stats --url "https://mp.weixin.qq.com/s/..."
~/.lingzao/bin/lingzao get-related-articles --url "https://mp.weixin.qq.com/s/..."
Use these when the user provides a public WeChat official-account article URL and asks to analyze the article, inspect public engagement metrics, or expand from that article to related public articles. The first version is URL-only and costs 20 credits per call. An empty related-articles list is a valid response. Do not use these commands for account article history, account listing, or multi-page fanout unless Lingzao adds a separate capability.
For full article analysis, prefer get-article-detail --output /tmp/article.md.
The command saves the complete article text as a local Markdown file and prints
only the file path plus a short summary in chat. Read the saved Markdown file
for detailed analysis instead of asking the CLI to paste the full article body
into the conversation.
~/.lingzao/bin/lingzao extract-video-copy --url "https://www.xiaohongshu.com/explore/..."
~/.lingzao/bin/lingzao extract-video-copy --url "https://v.douyin.com/..."
Use this when the user asks for short-video spoken copy, transcript, subtitles, or口播文案. If one item reports that the video is too large, do not retry that URL. Explain that only the failed item was not charged, report any successful-item cost in the same batch, and ask for a shorter video link.
~/.lingzao/bin/lingzao generate-image --prompt "一张小红书封面图,主题是 AI 生图新手避坑,干净明亮,中文大标题留白" --output /tmp/lingzao-image.png
~/.lingzao/bin/lingzao generate-image --prompt "极简产品海报,白底,柔和阴影" --size 1024x1536 --output /tmp/poster.png
~/.lingzao/bin/lingzao generate-image --prompt "参考两张图,保留人物风格,把产品界面换成灵造首页截图" --size 1536x2048 --image /tmp/style.png --image /tmp/product.png --output /tmp/poster.png
~/.lingzao/bin/lingzao generate-image --prompt "每张参考封面分别改成 AI 工作台主题,替换原人物身份、原文字和品牌" --count 3 --reference-mode one_to_one --image /tmp/top-1.png --image /tmp/top-2.png --image /tmp/top-3.png --size 1024x1536 --output /tmp/poster.png
~/.lingzao/bin/lingzao generate-image --prompt "批量生成 3 张封面草稿" --count 3 --size 1024x1536 --output /tmp/poster.png
~/.lingzao/bin/lingzao generate-image --prompt-file /tmp/lingzao-prompt.txt --output /tmp/poster.png
Use this only when the user asks to generate a creator image asset. For normal research, do not call image generation automatically.
When the user wants N images from the same prompt, call generate-image once
with --count N for N=2..5. Do not loop the same prompt as multiple
--count 1 calls. The CLI prints a stable request ID before submitting that
batch. If a POST response is ambiguous or polling is interrupted, the Agent
must save that UUID and repeat the same command with
--client-request-id <UUID>; keep the prompt, size, count, output format,
reference mode, and reference images unchanged. Omit --client-request-id for
every new generation intent. Do not reuse an old ID for new content and do not
invent another network-retry loop. The server retains idempotency and the
one-active-batch limit. If the user wants distinct concepts, vary the prompt
for each concept or use one counted batch for same-prompt variants.
When each reference image should produce its own corresponding output, pass the
references in output order, set --count to the same number, and add
--reference-mode one_to_one. The CLI rejects mismatched counts before the API
request. One-to-one batches support 1-4 reference images; count=5 remains
available only for prompt-only or shared-reference generation. Without that
option, repeated --image inputs are shared references that jointly influence
every output.
Before calling generate-image, run the minimal intake gate. If the user only
says something like "给我做一张某某海报图" or provides only a broad topic, do
not spend credits immediately. Ask for the two visual anchors first:
If those are still unclear, ask at most one extra route-changing question, such
as the publishing platform/size, exact on-image text, or whether the user wants
people/no people. Only proceed directly without asking when the user already
provided enough constraints: topic + platform/format + visual style/reference
or color + on-image text/material.
Use --image for local reference images; repeat it for multiple images. The
Skill uploads those files directly to Lingzao for the current request, so the
user does not need to upload them elsewhere first. Supported reference image
formats are png, jpeg, and webp.
For long, Chinese, or multiline prompts, prefer writing the prompt to a UTF-8
text file and passing --prompt-file /path/to/prompt.txt, or pipe the prompt
with --prompt-stdin, to avoid shell quoting or command-line encoding issues.
For Codex, WorkBuddy, and other agent runtimes:
--image accepts local filesystem paths only. If the user provides a
reference image through a chat attachment, pasted image, screenshot, or input
box, first materialize that image as a local file before calling the CLI.
Preserve the original supported image format when saving the file./tmp/lingzao-image-inputs/<run-id>/ref-1.png and
/tmp/lingzao-image-inputs/<run-id>/ref-2.png. Use absolute paths in the CLI
call./Users/..., you may pass that path directly. If the runtime-provided image
lives in a temporary attachment path, copy it into the per-run temp directory
first.--image. Keep the file extension and
actual image bytes consistent. If resizing or compression fails, use the
original supported image file instead of trying another format.Example with a runtime-provided reference image:
mkdir -p /tmp/lingzao-image-inputs/run-001 /tmp/lingzao-image-outputs/run-001
~/.lingzao/bin/lingzao generate-image \
--prompt "参考这张图的排版和明亮色彩,生成一张小红书封面图,主题是 AI 生图新手避坑,中文大标题留白" \
--size 1024x1024 \
--image /tmp/lingzao-image-inputs/run-001/ref-1.png \
--output /tmp/lingzao-image-outputs/run-001/result.png
The command creates a Lingzao async batch and automatically polls the returned
status URL until the background job finishes or the command timeout is reached.
Image generation can take several minutes; --timeout can extend waiting for
large or slow batches, but does not shorten the built-in per-image polling
window. For one image, --output writes the result to the exact path you
provide. For --count greater than 1, --output /tmp/poster.png writes every
successful image as numbered files such as /tmp/poster-1.png,
/tmp/poster-2.png, and so on. Default Markdown output requires --output so
paid generated images are saved locally. If a direct API caller receives
GENERATION_IN_PROGRESS with a returned poll_url, that active batch belongs
to another intent: poll it only until the concurrency slot is free, then submit
the current request again with its original client_request_id. Do not return
the other batch as the current request's result. If no poll_url is returned,
wait briefly and retry with the same ID. The CLI handles both cases
automatically. Use --format json only when you need structured automation
data.
--platform. For Xiaohongshu follow-up profile checks,
prefer the 24-character users[].id returned by search-users; RED ID is
display metadata only.--limit unless the user asks for a specific count.--sort, --note-type, and --time-filter when the user asks for ranked or filtered note search.--format json only when another tool needs structured output.