JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 30
  • Score
    100M100P100Q60130F
  • License MIT

一条命令,把微信变成任何 AI Agent 的入口

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (weiclaw) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    weiclaw

    weiclaw

    npm stars license node

    快速开始 · 全模态 · 多媒体协议 · 多 Agent · 主动发送 · 自定义 Agent

    中文 | English

    ⭐ 如果这个项目对你有帮助,请给个 Star!

    全网首个支持微信与任何 AI Agent 全模态双向通信的开源项目 —— 文本、图片、语音、视频、文件,发送和接收全覆盖。

    Agent 发送文件、图片、语音 Agent 发送图片、视频、语音 语音演示(点击播放有声版)

    特性

    • 🔌 零依赖接入npx 一条命令,无需 clone、无需配置
    • 🧠 Agent 无关 — 支持任何 OpenAI 兼容 API(Codex / Gemini / Claude / OpenCode / 自建)
    • 📡 全模态 — 文本、图片、语音、视频、文件,双向全覆盖
    • 🤖 多 Agent — 同时接入多个 Agent,@ 路由切换
    • ⌨️ 打字指示器 — Agent 思考时显示"对方正在输入"
    • 📤 主动发送 API — Agent 可推送多条消息,模拟真人打字节奏

    全模态支持矩阵

    模态 微信 → Agent Agent → 微信
    📝 文本
    📷 图片 ✅ 自动识别 ✅ HD 原图
    🎤 语音 ✅ 语音转文字 ✅ 语音气泡
    🎬 视频 ✅ 自动接收 ✅ 带缩略图
    📄 文件 ✅ 提取内容 ✅ 可下载
    💬 引用消息 ✅ 自动提取引用媒体

    已支持的 Agent / 工具

    Agent 接入方式 安装
    OpenCode examples/opencode/ 模板 npm i -g opencode-ai
    🤖 OpenAI Codex --codex npm i -g @openai/codex
    💎 Google Gemini --gemini npm i -g @google/gemini-cli
    🧬 Claude Code --claude npm i -g @anthropic-ai/claude-code
    🐾 OpenClaw --openclaw npm i -g openclaw
    🔗 任何 OpenAI 兼容 API 直接传 URL
    📡 ACP 协议 Agent --agent name=acp://...

    快速开始

    # 选你喜欢的 Agent:
    npx weiclaw --codex     # OpenAI Codex
    npx weiclaw --gemini    # Google Gemini
    npx weiclaw --claude    # Claude Code
    npx weiclaw --openclaw  # OpenClaw
    
    # 或用 examples 模板接入更多 Agent:
    cd examples/opencode && node server.mjs  # OpenCode(含免费模型)
    
    # 或直接传 URL:
    npx weiclaw http://your-agent:8000/v1

    首次使用:终端弹出二维码 → 微信扫码 → 完成。之后自动复用登录。

    环境依赖

    # 1. Node.js >= 22
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
    nvm install 22
    
    # 2. Python 3 + pip
    brew install python3       # macOS
    apt install python3 python3-pip  # Linux
    
    # 3. ffmpeg
    brew install ffmpeg        # macOS
    apt install ffmpeg         # Linux
    
    # 4. pilk
    pip install pilk

    原理

    微信用户 ←→ 腾讯 ilinkai API ←→ weiclaw ←→ 你的 Agent (HTTP)

    直接调用腾讯 ilinkai 接口收发微信消息,无中间层、无逆向、无网页版。Agent 只需暴露一个 OpenAI 兼容的 HTTP 接口。

    接入自己的 Agent

    任何语言,暴露 POST /v1/chat/completions 即可:

    @app.post("/v1/chat/completions")
    def chat(request):
        message = request.json["messages"][-1]["content"]
        reply = your_agent(message)
        return {"choices": [{"message": {"role": "assistant", "content": reply}}]}

    然后:npx weiclaw http://your-agent:8000/v1

    多媒体协议

    Agent 回复中包含特定格式即可自动发送多媒体:

    类型 Agent 回复格式 说明
    图片 ![描述](URL或路径) 支持 URL、本地路径、data URI
    语音 [audio:路径或URL] MP3/WAV/OGG,需 ffmpeg + pilk
    视频 [video:路径或URL] ffmpeg
    文件 [file:路径或URL] 任意文件类型

    图片接收(微信 → Agent)遵循 OpenAI Vision API

    {
      "messages": [{
        "role": "user",
        "content": [
          { "type": "text", "text": "这是什么?" },
          { "type": "image_url", "image_url": { "url": "data:image/jpeg;base64,..." } }
        ]
      }]
    }

    示例:image-test.mjs · voice-test.mjs · video-test-local.mjs · file-test.mjs

    Agent 模板:claude-code · opencode · openai

    多 Agent 模式

    同时接入多个 Agent,@ 前缀路由。支持 OpenAI 格式和 ACP 协议

    npx weiclaw \
      --agent codex=http://localhost:3001/v1 \
      --agent gemini=http://localhost:3002/v1 \
      --agent bee=acp://localhost:8000/chat \
      --default codex
    微信消息 效果
    你好 发给默认 Agent
    @codex 写个排序 路由到 Codex
    @gemini 审查代码 路由到 Gemini
    @list 查看所有 Agent
    @切换 gemini 切换默认

    主动发送 API

    Bridge 启动时会在 localhost:9099 暴露 HTTP API,Agent 可主动推送多条消息(模拟真人打字节奏):

    curl -X POST http://localhost:9099/api/send \
      -H "Content-Type: application/json" \
      -d '{"to": "user_id", "content": "嗯……"}'
    • to — 微信用户 ID(bridge 调 agent 时通过 user 字段传入)
    • content — 支持和 Agent 回复相同的格式(纯文本、![](url)[audio:path] 等)
    • --port PORT 自定义端口

    用途:Agent 对一条消息可分多段回复,控制发送间隔:

    import requests, time
    def send(to, text):
        requests.post("http://localhost:9099/api/send", json={"to": to, "content": text})
    
    send(user_id, "嗯……")
    time.sleep(1.5)
    send(user_id, "让我想想")
    time.sleep(2)
    # 最后一段作为正常 response 返回

    凭证

    登录凭证保存在 ~/.weiclaw/credentials.json,删除即可重新登录。

    Star History

    如果这个项目帮到了你,请给个 ⭐ Star,这是对我们最大的支持!

    License

    MIT