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-acp

v0.1.2

Published

Bridge WeChat to any ACP-compatible AI agent

Readme

WeChat ACP

Bridge WeChat direct messages to any ACP-compatible AI agent.

wechat-acp logs in with the WeChat iLink bot API, polls incoming 1:1 messages, forwards them to an ACP agent over stdio, and sends the agent reply back to WeChat.

Features

  • WeChat QR login with terminal QR rendering
  • One ACP agent session per WeChat user
  • Built-in ACP agent presets for common CLIs
  • Custom raw agent command support
  • Auto-allow permission requests from the agent
  • Direct message only; group chats are ignored
  • Background daemon mode

Requirements

  • Node.js 20+
  • A WeChat environment that can use the iLink bot API
  • An ACP-compatible agent available locally or through npx

Quick Start

Start with a built-in agent preset:

npx wechat-acp --agent copilot

Or use a raw custom command:

npx wechat-acp --agent "npx my-agent --acp"

On first run, the bridge will:

  1. Start WeChat QR login
  2. Render a QR code in the terminal
  3. Save the login token under ~/.wechat-acp
  4. Begin polling direct messages

Built-in Agent Presets

List the bundled presets:

npx wechat-acp agents

Current presets:

  • copilot
  • claude
  • gemini
  • qwen
  • codex
  • opencode

These presets resolve to concrete command + args pairs internally, so users do not need to type long npx ... commands.

CLI Usage

wechat-acp --agent <preset|command> [options]
wechat-acp agents
wechat-acp stop
wechat-acp status

Options:

  • --agent <value>: built-in preset name or raw agent command
  • --cwd <dir>: working directory for the agent process
  • --login: force QR re-login and replace the saved token
  • --daemon: run in background after startup
  • --config <file>: load JSON config file
  • --idle-timeout <minutes>: session idle timeout, default 1440 (use 0 for unlimited)
  • --max-sessions <count>: maximum concurrent user sessions, default 10
  • --show-thoughts: forward agent thinking to WeChat (default: off)
  • -h, --help: show help

Examples:

npx wechat-acp --agent copilot
npx wechat-acp --agent claude --cwd D:\code\project
npx wechat-acp --agent "npx @github/copilot --acp"
npx wechat-acp --agent gemini --daemon

Configuration File

You can provide a JSON config file with --config.

Example:

{
  "agent": {
    "preset": "copilot",
    "cwd": "D:/code/project"
  },
  "session": {
    "idleTimeoutMs": 86400000,
    "maxConcurrentUsers": 10
  }
}

You can also override or add agent presets:

{
  "agent": {
    "preset": "my-agent"
  },
  "agents": {
    "my-agent": {
      "label": "My Agent",
      "description": "Internal team agent",
      "command": "npx",
      "args": ["my-agent-cli", "--acp"]
    }
  }
}

Runtime Behavior

  • Each WeChat user gets a dedicated ACP session and subprocess.
  • Messages are processed serially per user.
  • Replies are formatted for WeChat before sending.
  • Typing indicators are sent when supported by the WeChat API.
  • Sessions are cleaned up after inactivity (set idleTimeoutMs to 0 to disable idle cleanup).

Storage

By default, runtime files are stored under:

~/.wechat-acp

This directory is used for:

  • saved login token
  • daemon pid file
  • daemon log file
  • sync state

Current Limitations

  • Direct messages only; group chats are ignored
  • MCP servers are not used
  • Permission requests are auto-approved
  • Agent communication is subprocess-only over stdio
  • Some preset agents may require separate authentication before they can respond successfully

Development

For local development:

npm install
npm run build

Run the built CLI locally:

node dist/bin/wechat-acp.js --help

Watch mode:

npm run dev

License

MIT