YI TUO HUB® GZH CLI / DOCS

YI TUO HUB / LOCAL AGENT CAPABILITY

GZH CLI 使用文档

给 Agent 的微信公众号排版与存稿能力。文章写好以后,用一条命令选择风格、处理图片,并在需要时创建草稿。

01 / OVERVIEW

它是什么

它接收已经写好的 Markdown,可以带本地图片或远程图片;然后调用 YI TUO HUB STUDIO 的排版引擎生成公众号正文。用户明确要求存稿时,CLI 会直接调用微信公众号接口上传图片、创建草稿,并回读核对标题与封面。

边界先说清楚: CLI 请求直接发往微信接口,不经过 cli.yituohub.com 或其他中心服务器。draft 只创建草稿,不调用发布接口。

02 / INSTALL

先装到本机

需要 Node.js 20 或更高版本。安装脚本会下载发布包、安装运行依赖,并把 yituo-hub-gzh 放到本机的用户级 bin 目录。

TERMINAL
curl -fsSL https://cli.yituohub.com/install.sh | bash
CHECK
yituo-hub-gzh --help

发布包同时包含 agent-skill/yituo-hub-gzh。在支持技能的 Agent 中,把这个目录按其技能安装方式装入 skills 目录。

03 / COMMANDS

常用命令

查看排版风格

yituo-hub-gzh styles

只排版,不请求微信

yituo-hub-gzh layout article.md \
  --style violet-studio \
  --level L4 \
  --out article_gzh.html

只检查,不创建草稿

yituo-hub-gzh draft article.md \
  --style violet-studio \
  --level L4 \
  --dry-run \
  --json

创建并核对草稿

yituo-hub-gzh draft article.md \
  --style violet-studio \
  --level L4 \
  --cover assets/cover.jpg \
  --author '作者名' \
  --json

04 / WECHAT SETUP

微信配置

第一次推稿前,准备目标公众号的 AppID、AppSecret,并把调用 CLI 的实际运行环境出口 IP 加入公众号的服务器 IP 白名单。

ENVIRONMENT
export WECHAT_APPID='你的 AppID'
export WECHAT_APPSECRET='你的 AppSecret'
yituo-hub-gzh doctor --json
  1. 01
    开启 AppSecret

    进入自己的微信公众号开发者后台,在基本配置中查看或重置 AppSecret。

  2. 02
    添加服务器白名单

    如果返回 40164,把错误信息中微信给出的实际出口 IP 加入白名单。

  3. 03
    只在本机保存密钥

    不要把 AppSecret 写进 Markdown、前端页面、发布包或 Git 仓库。

打开微信公众号开发者后台 ↗

05 / STYLE INDEX

风格选择

基础主题不需要视觉等级,高级主题支持 L1–L6。运行 styles --json 可以拿到完整列表,适合由 Agent 展示给用户选择。

violet-studio紫灰工作室 · L1–L6
deep-sea深海终端 · AI / 技术
blueprint蓝图网格 · 教程 / 流程
swiss-signal瑞士信号 · 清单 / 工具
mono-gold黑金刊读 · 专业长文

06 / IMAGES

图片处理

  • layout 会把图片内嵌进输出 HTML,避免依赖原始本地路径。

  • draft 只在 CLI 进程内存或临时处理中读取图片,必要时压缩为微信支持的 JPG/PNG;上传完成后不在 YI TUO 服务器长期保存。

  • 没有正文图片时必须用 --cover 指定封面。

  • placeholder:// 只是排版占位符,不能直接推稿。

07 / SAFETY BOUNDARY

安全边界

  • draft 只创建草稿,不调用发布接口。

  • Agent 只有在用户明确说“存稿”或“推稿”时才调用 draft

  • --jsonokverifiedpublished 字段是结果判断依据。

  • 创建成功的标准是 ok: trueverified: truepublished: false