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

@libukai/wx-search-cli

v0.1.0

Published

CLI for searching and reading WeChat Official Account articles via Sogou WeChat

Readme

wx-search-cli

CI Live npm

一个通过搜狗微信搜索微信公众号文章、解析真实微信链接并提取正文的 TypeScript 命令行工具。搜索结果以 JSON 输出,正文以纯文本输出,适合人工使用、Shell 管道和 Agent 自动化流程。

[!IMPORTANT] 本工具改善的是搜狗微信搜索的调用、跳转解析和正文提取流程,底层数据源仍然是搜狗微信。搜狗的相关性排序、收录范围、验证码和限流仍会影响结果。

功能

  • 按关键词搜索微信公众号文章。
  • 将搜狗 /link?... 跳转链接解析为真实 mp.weixin.qq.com 链接。
  • 提取传统公众号文章的 #js_content 正文。
  • 提取 item_show_type=8 新版图文消息中 content_noencode 的文本说明。
  • 自动分页,并以串行请求和页面间隔降低触发验证码的概率。
  • 对反爬验证和请求失败返回非零退出码,便于自动化流程判断状态。

安装

让 Agent 一句话安装

将下面这句话直接发送给 Codex、Claude Code 或其他能够操作终端的 Agent:

从 npm 安装 @libukai/wx-search-cli 的最新公开版本。先确认 Node.js 不低于 18.17 且 npm 可用,执行 npm install -g @libukai/wx-search-cli,然后运行 command -v wx-search-cliwx-search-cli --versionwx-search-cli --help 验证。不要使用 sudo;如果缺少依赖、权限不足或验证失败,停止并如实报告。

这是一段给 Agent 的操作指令,不是 Shell 命令。需要人工逐步安装时,请继续使用下面的方式一。

环境要求

  • Node.js >= 18.17
  • npm
  • 从源码构建时需要 Bun
node --version
npm --version
bun --version

方式一:从 npm 全局安装(推荐)

npm install -g @libukai/wx-search-cli

wx-search-cli --version
wx-search-cli --help

验证安装位置:

command -v wx-search-cli
npm list -g --depth=0 @libukai/wx-search-cli

方式二:安装 fork 的独立全局快照

这种方式会把构建产物实体安装到 npm 的全局目录,不依赖之后仍然保留源码目录,适合定时任务和 Agent Skill。

git clone https://github.com/libukai/wx-search-cli.git
cd wx-search-cli
bun install --frozen-lockfile
bun run build

package_file=$(npm pack --silent)
npm install -g "./$package_file"

wx-search-cli --version
wx-search-cli --help

npm pack 生成的 .tgz 文件在安装完成后可以删除。不要默认使用 sudo npm install -g;如果全局目录没有写权限,优先使用 Node 版本管理器或修复 npm prefix。

方式三:链接本地源码(开发使用)

git clone https://github.com/libukai/wx-search-cli.git
cd wx-search-cli
bun install --frozen-lockfile
bun run build
npm install -g .

这种方式通常会将全局命令链接到当前源码目录。修改代码并重新构建后即可测试,但移动或删除源码目录会使全局命令失效,因此不推荐用于无人值守任务。

方式四:免安装运行 npm 版本

npx @libukai/wx-search-cli search "人工智能"
# 或
bunx @libukai/wx-search-cli search "人工智能"

这种方式适合临时调用。长期自动化任务建议使用方式一固定安装,再在独立维护步骤中升级。

升级

升级 npm 安装:

npm install -g @libukai/wx-search-cli@latest
wx-search-cli --version

升级源码快照时,在源码仓库中执行:

git switch main
git pull --ff-only origin main
bun install --frozen-lockfile
bun run build

package_file=$(npm pack --silent)
npm install -g "./$package_file"

wx-search-cli --version

卸载

npm uninstall -g @libukai/wx-search-cli

使用

# 搜索一页,输出 JSON
wx-search-cli search "人工智能"
wx-search-cli search "人工智能" --page 2

# 自动搜索多页
wx-search-cli search-all "人工智能" --max-pages 3

# 使用搜索结果中的 real_url 和 link 读取正文
wx-search-cli content "https://mp.weixin.qq.com/s?src=11&..." \
  --referer "https://weixin.sogou.com/link?..."

# 缩写容易产生歧义时,优先使用具体组合词
wx-search-cli search "DeepSeek Harness"
wx-search-cli search "DSH Agent 插件"

wx-search-cli --help

search <query> [--page <n>]

搜索一页公众号文章并输出 JSON。每条结果包含:

  • title:文章标题。
  • link:搜狗跳转链接。
  • real_url:解析后的微信文章链接;解析失败时为空字符串。
  • publish_time:ISO 8601 格式的发布时间。
  • page:结果所在页码。

search-all <query> [--max-pages <n>]

自动搜索多页结果,每页通常约 10 条,页间默认等待 1 秒。遇到空页、验证码或达到 --max-pages 时停止。

content <real_url> [--referer <url>]

获取文章正文并输出纯文本。建议把搜索结果中的 real_url 作为第一个参数,并将 link 作为 --referer

传统文章优先读取 #js_content。新版图文消息没有该容器时,工具会安全解码页面中的 content_noencode,不会执行页面脚本。图片中独有、未出现在文本说明里的内容不会自动 OCR。

skill

输出随 npm 包附带的 SKILL.md,供 Agent 了解命令用法:

wx-search-cli skill

搜索范围与排序

  • 搜狗默认按相关性排序,不保证严格按发布时间倒序。
  • 需要“最新”结果时,应使用 publish_time 在本地排序和筛选。
  • 简短缩写可能产生大量噪音。例如 DSH 通常也指德国高校入学德语考试,应优先搜索 DeepSeek Harness 等具体组合词。
  • search-all 会显著增加请求数。自动化任务应优先使用单页搜索、限制关键词数量并串行执行。
  • 遇到验证码或无法访问时,应将该渠道标记为覆盖受限,不能据此判断“没有新文章”。

自动化建议

无人值守任务应先执行:

command -v wx-search-cli
wx-search-cli --version

不要在每次定时任务中自动安装或升级 CLI。固定已验证的本地版本,在独立维护步骤中完成升级和回归测试。

开发

bun install --frozen-lockfile

# 从源码运行
bun run src/index.ts search "关键词"

# 构建
bun run build

# 离线测试
bun run test

# 真实搜狗冒烟测试;会访问外部服务,应低频运行
bun run test:live

致谢

本项目是 fancyboi999/weixin_search_mcp 的 TypeScript / CLI 实现。原始项目提供了搜狗微信搜索和链接解析思路,在此向作者致谢。

使用边界

  • 搜狗或微信页面结构变化可能导致解析失效。
  • 高频请求可能触发验证码或临时限流。
  • 抓取内容仅用于合法的学习、研究和信息整理,请遵守适用法律、平台条款及内容版权要求。

许可证

MIT