npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

yanyan-skill

v0.1.0

Published

YanYan Say Codex skill collection installer.

Readme

yanyan_skill

English

yanyan_skill 是一组可复用的 Codex skills,用来把常见内容工作流沉淀成可安装、可配置、可迭代的本地助手。当前包含微信公众号排版与草稿上传助手。

当前 Skills

| Skill | 作用 | | --- | --- | | yanyan_wechat_upload | 将 Markdown / HTML / 粘贴正文整理成微信公众号兼容 HTML,生成本地预览,并在用户确认后创建或更新公众号图文草稿。 |

安装到 Codex

方式一:npx 安装

可以直接从 GitHub 安装:

npx github:yanyansay/yanyan_skill install yanyan_wechat_upload

安装到项目内 .codex/skills/:

npx github:yanyansay/yanyan_skill install yanyan_wechat_upload --target .codex/skills

查看仓库内可安装的 skills:

npx github:yanyansay/yanyan_skill list

如果未来发布到 npm,命令可以简化为:

npx yanyan-skill install yanyan_wechat_upload

方式二:手动复制

把某个 skill 复制到你的 Codex skills 目录:

mkdir -p ~/.codex/skills
cp -R skills/yanyan_wechat_upload ~/.codex/skills/

如果你在项目内使用 Codex-local skills,也可以复制到项目的 .codex/skills/:

mkdir -p .codex/skills
cp -R skills/yanyan_wechat_upload .codex/skills/

方式三:ClawHub

这个仓库已经按 skills/<skill-name>/SKILL.md 结构维护,适合后续发布到 ClawHub。

如果维护者发布到 ClawHub registry,可以使用:

clawhub publish skills/yanyan_wechat_upload

发布成功后,用户才能用类似命令安装:

clawhub install yanyan_wechat_upload

初始化配置

安装后,在 Codex 对话里输入这个 skill 命令:

yanyan_wechat_upload:init

这不是终端命令,而是对话里的 skill 命令。Codex 会通过对话收集公众号名称、作者名、封面图策略、签名策略、强调色和 keyring service 名称,然后把非敏感配置写入用户电脑:

~/.config/yanyan_skill/yanyan_wechat_upload/config.json

也可以通过环境变量指定其他配置文件位置:YANYAN_WECHAT_UPLOAD_CONFIG=/path/to/config.json。

本机配置文件里的重点配置项:

{
  "ACCOUNT_NAME": "你的公众号名称",
  "AUTHOR_NAME": "作者名",
  "KEYRING_SERVICE": "yanyan_wechat_upload",
  "COVER_MODE": "ask-each-run",
  "DEFAULT_COVER_SOURCE": "RUNTIME_REQUIRED",
  "SIGNATURE_MODE": "none",
  "SIGNATURE_VALUE": "none",
  "THEME_COLOR": "#D97706"
}

skill 执行时按这个顺序读取配置:

  1. YANYAN_WECHAT_UPLOAD_CONFIG 指向的 JSON 文件
  2. ~/.config/yanyan_skill/yanyan_wechat_upload/config.json
  3. SKILL.md 里的默认配置

不要把个人配置提交到公开仓库。仓库里的 SKILL.md 只保留非敏感默认值:

ACCOUNT_NAME: "你的公众号名称"
AUTHOR_NAME: "作者名"
KEYRING_SERVICE: "yanyan_wechat_upload"

COVER_MODE: "ask-each-run"
DEFAULT_COVER_SOURCE: "RUNTIME_REQUIRED"

SIGNATURE_MODE: "none"
SIGNATURE_VALUE: "none"

THEME_COLOR: "#D97706"

不要把 AppID 或 AppSecret 写进 SKILL.md 或 config.json。凭证应保存到系统安全存储。

配置 AppID / AppSecret

AppID / AppSecret 不写入 SKILL.md,也不写入 config.json。推荐放到系统安全存储。macOS 示例:

python3 -m pip install keyring
keyring set yanyan_wechat_upload app_id

按提示粘贴 AppID。完成后继续运行:

keyring set yanyan_wechat_upload app_secret

按提示粘贴 AppSecret。不要把 AppSecret 发到对话里,也不要写进配置文件。

同时需要在微信公众平台后台把当前公网 IP 加入 API IP 白名单。

使用方法

安装并配置后,在 Codex 中直接说:

把这篇 md 发到公众号。/path/to/article.md

或者:

生成公众号草稿

然后粘贴 Markdown 正文。

上传类流程会先生成本地预览,并停下来询问:

排版预览已完成,请确认是否上传到公众号草稿?

只有你明确确认后,skill 才能创建或更新公众号草稿。

维护方式

  • 新增 skill:放到 skills/<skill-name>/SKILL.md。
  • 修改已有 skill:先改仓库版本,再复制到本地 Codex skill 目录使用。
  • 不要提交密钥、token、本地临时上传文件、草稿 payload 或个人素材路径。
  • 个人默认配置应写入 ~/.config/yanyan_skill/.../config.json,不要提交到仓库。

安全边界

这个仓库不包含任何 AppID、AppSecret 或 access token。微信公众号上传助手只记录凭证读取方式,真实凭证必须通过 Keychain、环境变量或工具密钥管理读取。