关于 calligraphy-composition
calligraphy-composition 是用于查询行书字形的技能,可按文本或单字检索原始字形,并在缺字时合成。它适合需要展示书法字形或分析字形部件的场景,并优先选用字帖原字。
主要功能
- 01按文本检索行书字形
- 02查询单字原始字形候选
- 03查看部首与字形部件
- 04为缺失字形进行合成
- 05提供字形来源与图片链接
适用场景
- 01为一段文字收集行书字形
- 02查找单字的字帖原始字形
- 03分析汉字的部首和组成
- 04为字库缺字生成合成图像
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mnhkahn/ cyeam-cli --skill calligraphy-composition安装后在 Claude Code 中输入/calligraphy-composition确认已加载。
附带文件agents/openai.yaml
详细介绍
行书作品
检索文本或单个汉字的行书作品,查看部首和组成部分,并在需要时合成缺失字形。如需识别篆书图像,请使用单独的 seal-script-ocr 技能。
命令
cyeam mo guwen "兰亭序" # Retrieve glyphs for text
cyeam mo guwen "兰亭序" --ai-compose # Synthesize missing glyphs only
cyeam mo char detail "之" # Original glyph candidates and sources
cyeam mo char composition "曦" # Radicals and components
cyeam mo char compose "曦" --out char.png # Force component-based synthesis
字形选择规则
当用户要求书写、返回或展示一个汉字时,请先查找原始字形;不要默认使用 char compose。
- 对于单个汉字,运行
cyeam mo char detail <char>;如有候选项,请使用原始字形。 - 对于一段文字,运行
cyeam mo guwen <text>。默认情况下,它只返回库中的原始字形;缺失字形为空。 - 仅当没有原始候选项、文本中存在缺失字形,或用户明确要求基于部件进行合成时,才使用合成。文本请使用
guwen --ai-compose,单个汉字请使用char compose。
char compose 始终会强制基于部件进行合成,即使已有完整的原始字形也是如此。例如,请先查询 char detail "无";仅当适合基于部件合成时,才使用 char compose "无"。
图像提供方式
当用户想查看字形或书法图像时,请将选定候选项的 image URL 嵌入为 Markdown 图像,并附上其 source。不要只返回 URL。
「无」 — 王羲之《临锺繇千字文》

char detail 返回的 URL 指向原始字帖图像,可直接嵌入。不要仅为了获取可展示的图像而改用 char compose。仅当客户端无法渲染 Markdown 图像时,才使用图像链接作为备用方案。
输出与范围
guwen、char detail和char composition会将 JSON 写入标准输出。char detail的候选项包含原始字形图像及其来源。char compose会将 PNG 写入必需的--out路径。它始终会合成部件,不代表原始字帖字形。- 此工作流适用于行书,不适用于楷书或隶书。
--ai-compose仅补齐缺失字形;请保留现有原始字形。- 无需登录。
安装
安装前请查看命令。这些示例固定使用 v1.1.4,而非最新版本,并会下载可执行文件归档。 仅在需要使用 CLI 时安装;不要为每条命令重复安装。
macOS / Linux:验证并安装到用户目录
请在 Bash 或 Zsh 中运行,并确保有 curl、tar、install,以及 shasum 或 sha256sum。
该脚本会选择适用于 arm64 或 x86_64 的 macOS / Linux 版本,在其他平台上则会停止运行。
(
set -eu
version='v1.1.4'
case "$(uname -s)/$(uname -m)" in
Darwin/arm64)
asset='cyeam_Darwin_arm64.tar.gz'
sha256='06b5af004ab4f0f05d5829ea6bd18b97c4449c262af7df14c67175f7d3cb29db' ;;
Darwin/x86_64)
asset='cyeam_Darwin_x86_64.tar.gz'
sha256='107342bb9d2fa444b96155c468e71b8cc63e0f5ad0acc784698afe221548efa6' ;;
Linux/aarch64|Linux/arm64)
asset='cyeam_Linux_arm64.tar.gz'
sha256='ed87697f3948bead67b585e9881c3bef20e8d2d903beb5b125587281a5091c5b' ;;
Linux/x86_64)
asset='cyeam_Linux_x86_64.tar.gz'
sha256='873d6805fab8ab56540bb034aaf2f57f12eb672fcabd322ebe401e8250a5966d' ;;
*) echo 'Unsupported platform; see the pinned release.' >&2; exit 1 ;;
esac
workdir=$(mktemp -d)
trap 'rm -rf "$workdir"' EXIT
cd "$workdir"
curl --fail --show-error --silent --location --proto '=https' --proto-redir '=https' \
--output "$asset" "https://github.com/mnhkahn/cyeam-cli/releases/download/$version/$asset"
printf '%s %s\n' "$sha256" "$asset" > expected.sha256
if command -v sha256sum >/dev/null 2>&1; then
sha256sum -c expected.sha256
else
shasum -a 256 -c expected.sha256
fi
# set -e prevents extraction or installation if download or verification fails.
tar -xzf "$asset" cyeam
mkdir -p "$HOME/.local/bin"
install -m 0755 cyeam "$HOME/.local/bin/cyeam"
CYEAM_CLI_NO_UPDATE_NOTIFIER=1 "$HOME/.local/bin/cyeam" --no-analytics version
)
这只会写入临时目录和 ~/.local/bin/cyeam(替换现有二进制文件)。
无需管理员权限;系统目录、服务和 Shell 配置均不会更改。若要在当前 Shell 中使用:
export PATH="$HOME/.local/bin:$PATH"
如需持续生效,请将该行添加到 Shell 配置文件中。 请查看 v1.1.4 发布页面 和 checksums.txt 以获取校验和。更改固定版本时,请验证并替换版本号及其 SHA-256 值。 校验和可确认发布文件的一致性;它们不是独立签名,也不代表安全审计。
外部请求和本地状态
- 安装: 从固定的 GitHub 发布版本下载所选压缩包,下载可能会重定向到 GitHub 的资源 CDN。提取时,仅验证固定的 SHA-256 并提取
cyeam。安装验证会禁用分析和更新检查。 - 书法查询:
mo guwen和mo char detail/composition/compose会将所选文本、字体和合成选项发送到https://www.cyeam.com/mo/api/*。合成的图像会写入--out指定的位置,这可能会覆盖现有文件。原始图像可能来自 Cloudinary 或其他图像 CDN;显示这些图像时会请求对应的 URL。 - 分析: 默认情况下,会向
https://us.i.posthog.com发送命令名称、CLI 版本、系统信息和随机安装 ID。服务器可能会根据外发 IP 推断位置。不会包含命令参数、图像内容和凭据。ID 存储在~/.cyeam/analytics-id;可通过--no-analytics或CYEAM_CLI_NO_ANALYTICS=1禁用。 - 更新通知: 最多每 24 小时检查一次 GitHub 上的最新发布版本,并将状态缓存到
~/.cyeam/update-state.json。通知不会替换可执行文件。设置CYEAM_CLI_NO_UPDATE_NOTIFIER=1可禁用通知。显式执行cyeam update命令会下载并验证最新发布版本,替换可执行文件,然后尝试通过npx skills add同步技能。若要保留固定版本,请改用上述安装步骤。
若要在当前 shell 中仅保留此技能所需的网络请求:
export CYEAM_CLI_NO_ANALYTICS=1
export CYEAM_CLI_NO_UPDATE_NOTIFIER=1