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

wechat-pi-acp

v1.4.0

Published

WeChat-to-Pi ACP bridge — connect WeChat to Pi agent via QR login

Readme

wechat-pi-acp

WeChat-to-Pi ACP bridge — connects WeChat to Pi via QR code login.

Architecture

WeChat (Weixin) ←── HTTP long-poll ──→ wechat-pi-acp ←── ACP stdio ──→ pi-acp
  • Receives WeChat messages via getUpdates long-poll
  • Routes text messages to Pi ACP agent for processing
  • Downloads any media (images, files, videos) from WeChat CDN, decrypts, and passes file paths to the agent
  • Agent responses are streamed in real-time to WeChat — replies, thoughts, and tool-call notices arrive as they're generated
  • Files generated by the agent are uploaded to WeChat CDN and delivered
  • Custom slash commands (/new, /cancel, /status, /think, /msg-start, /help) are intercepted before routing

Quick Start

npx wechat-pi-acp            # First run: QR login + start bridge
npx wechat-pi-acp --login    # Force re-login
npx wechat-pi-acp --verbose  # Verbose logging

QR Login

On first run, wechat-pi-acp fetches a QR code from WeChat's API and displays it in your terminal. Scan it with your phone to authenticate. The token is saved to ~/.wechat-pi-acp/config.json.

Configuration

~/.wechat-pi-acp/config.json:

{
  "token": "",
  "baseUrl": "https://ilinkai.weixin.qq.com",
  "cdnBaseUrl": "https://novac2c.cdn.weixin.qq.com/c2c",
  "acpCommand": "npx pi-acp",
  "idleTimeoutMs": 600000,
  "mediaTempDir": "/tmp/wechat-pi-acp",
  "fileTtlMs": 3600000,
  "botAgent": "WeChat-Pi-ACP/1.0.0"
}

Commands

Send these as WeChat messages:

| Command | Action | |---------|--------| | /new | Start a new session (closes current one) | | /cancel | Cancel the current agent request | | /status | Show session info (mode, model, config options) | | /think <level> | Set thinking level: off, minimal, low, medium, high, xhigh | | /msg-start | Start message compose mode — collect text + files | | /msg-end | Submit collected content as a single prompt | | /msg-cancel | Discard collected compose content | | /file-send <path> [caption] | Send a file to the WeChat user | | /file-list | List temporary files in current session | | /file-clear | Remove temporary downloaded files | | /file-upload-start | Start file upload mode — all subsequent files are saved | | /file-upload-end | End file upload mode, show collected files | | /help | Show available commands |

Session Model

Each WeChat user gets an isolated Pi ACP session. Sessions persist across restarts via Pi's built-in session storage. The agent process is killed after 10 minutes of inactivity (configurable) and resumed via loadSession on the next message.

Agent output is streamed in real-time: message chunks are sent as they arrive, thinking blocks are wrapped in code fences, and tool-call titles are shown as brief notices.

Requirements

License

MIT