Skip to content
Back to skills

Skill: WeChat Messaging via weixin-agent-cli

ASecurity

Use the `weixin-agent-cli` command-line tool to send and receive WeChat (微信) messages. All commands output JSON to stdout.

  • 7 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
toolsgobash

Works with

  • terminal
  • cli

Security analysis

A100/100

Pro scans all 12 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add Ginurx/weixin-agent-cli --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skill: WeChat Messaging via weixin-agent-cli?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Skill: WeChat Messaging via weixin-agent-cli
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ginurx-skill-wechat-messaging-via-weixin-agent-cli/badge)](https://www.skillsdirectory.com/skills/ginurx-skill-wechat-messaging-via-weixin-agent-cli)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Skill: WeChat Messaging via weixin-agent-cli

Use the `weixin-agent-cli` command-line tool to send and receive WeChat (微信) messages. All commands output JSON to stdout.

## Prerequisites

- The `weixin-agent-cli` tool must be installed and available in PATH
- An account must be logged in (run `weixin-agent-cli login` in an interactive terminal first)

## Key Concepts

- **Account ID**: Each logged-in WeChat bot has an account ID (e.g. `abc123@im.bot`). If only one account exists, it's used automatically.
- **User ID**: WeChat users are identified by IDs ending in `@im.wechat` (e.g. `user456@im.wechat`).
- **Context Token**: Required for sending messages. Automatically cached when you receive a message from a user via `poll`. You must poll at least once before you can send to a user.

## Workflow

### 1. Check Accounts

```bash
weixin-agent-cli accounts
```

Returns a JSON array of registered accounts with their status.

### 2. Poll for Messages

```bash
weixin-agent-cli poll
# With timeout (ms):
weixin-agent-cli poll --timeout 15000
# Specific account:
weixin-agent-cli poll --account "abc123@im.bot"
```

**Output format:**

```json
{
  "accountId": "abc123@im.bot",
  "total": 3,
  "messages": [
    {
      "from": "user456@im.wechat",
      "to": "abc123@im.bot",
      "message_id": 12345,
      "message_type": "user",
      "message_state": "finish",
      "timestamp": 1711700000000,
      "text": "Hello, bot!"
    }
  ]
}
```

The `messages` array only contains completed user messages (bot echoes and generating states are filtered out).

#### Watch Mode (continuous polling)

```bash
weixin-agent-cli poll --watch
weixin-agent-cli poll --watch --timeout 10000
```

Outputs NDJSON (one JSON object per line). Empty polls (no user messages) are skipped. Runs until interrupted with Ctrl+C.

```jsonl
{"accountId":"abc123@im.bot","total":1,"messages":[{"from":"user456@im.wechat","text":"Hi"}]}
{"accountId":"abc123@im.bot","total":1,"messages":[{"from":"user456@im.wechat","text":"Second msg"}]}
```

### 3. Send a Text Message

```bash
weixin-agent-cli send --to "user456@im.wechat" --text "Hello from the bot!"
```

**Important:** You must have received at least one message from the target user (via `poll`) before sending, so the context token is available.

### 4. Send a Media File

```bash
# Image
weixin-agent-cli send-media --to "user456@im.wechat" --file "/path/to/image.png"

# Video with caption
weixin-agent-cli send-media --to "user456@im.wechat" --file "/path/to/video.mp4" --text "Check this out"

# Document
weixin-agent-cli send-media --to "user456@im.wechat" --file "/path/to/report.pdf"
```

File type is detected from the extension. Supported categories:

- **Images**: png, jpg, jpeg, gif, webp, bmp
- **Video**: mp4, mov, webm, mkv, avi
- **Files**: pdf, doc/docx, xls/xlsx, ppt/pptx, txt, csv, zip, tar, gz

### 5. Send Typing Indicator

```bash
# Start typing
weixin-agent-cli typing --to "user456@im.wechat"

# Cancel typing
weixin-agent-cli typing --to "user456@im.wechat" --cancel
```

## Error Handling

All errors are written to stderr and the process exits with code 1. Check the JSON output `success` field or the exit code to detect failures.

## Typical Agent Loop

**Single-poll approach:**

```bash
# Poll for new messages
RESULT=$(weixin-agent-cli poll --timeout 15000)

# Parse messages from JSON output, process each one
# Then reply:
weixin-agent-cli send --to "$FROM_USER" --text "$REPLY_TEXT"
```

**Watch mode approach (continuous):**

```bash
# Stream messages continuously, process each NDJSON line as it arrives:
weixin-agent-cli poll --watch | while IFS= read -r line; do
  echo "$line" | process_message_and_reply
done
```

## Multi-Account

With multiple accounts, always pass `--account <id>` (or `-a <id>`):

```bash
weixin-agent-cli poll --account "bot1@im.bot"
weixin-agent-cli send --to "user@im.wechat" --text "Hi" --account "bot1@im.bot"
```

Files in this skill

  • README.zh.md4.1 KB
  • SKILL.md3.8 KB
  • bin/weixin-agent-cli.js45 B
  • package-lock.json2.7 KB
  • package.json814 B
  • src/api.ts7.2 KB
  • src/cli.ts19 KB
  • src/login.ts5.3 KB
  • src/media.ts10.7 KB
  • src/store.ts8 KB
  • src/types.ts3.7 KB
  • tsconfig.json390 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.