Skip to content

weiconghe/PocketClaude

Repository files navigation

PocketClaude

English | 中文

Take Claude Code everywhere via WeChat. A Claude Code Skill that bridges your personal WeChat to local Claude Code — chat, images, permission approvals, slash commands, all from your phone.

Features

  • Real-time progress updates — see Claude's tool calls (🔧 Bash, 📖 Read, 🔍 Glob…) as they happen
  • Thinking preview — get a 💭 preview of Claude's reasoning before each tool call
  • Interrupt support — send a new message mid-query to abort and redirect Claude
  • System prompt — set a persistent prompt via /prompt (e.g. "Reply in Chinese")
  • Text conversation with Claude Code through WeChat
  • Image recognition — send photos for Claude to analyze
  • Permission approval — reply y/n in WeChat to approve Claude's tool use
  • Slash commands — /help, /clear, /model, /prompt, /status, /skills, and more
  • Launch any installed Claude Code skill from WeChat
  • Cross-platform — Windows (PM2), macOS (launchd), Linux (systemd + nohup fallback)
  • Session persistence — resume conversations across messages
  • Rate-limit safe — automatic exponential backoff on WeChat API throttling

Prerequisites

  • Node.js >= 18
  • Windows, macOS, or Linux
  • Personal WeChat account (QR code binding required)
  • Claude Code with @anthropic-ai/claude-agent-sdk installed

    Note: The SDK supports third-party API providers (e.g. OpenRouter, AWS Bedrock, custom OpenAI-compatible endpoints) — set ANTHROPIC_BASE_URL and ANTHROPIC_API_KEY accordingly.

Installation

Clone into your Claude Code skills directory:

git clone https://github.com/weiconghe/PocketClaude.git ~/.claude/skills/PocketClaude
cd ~/.claude/skills/PocketClaude
npm install

postinstall automatically compiles TypeScript via tsc.

Quick Start

1. Setup (first time only)

Scan QR code to bind your WeChat account:

cd ~/.claude/skills/PocketClaude
npm run setup

A QR code image will open — scan it with WeChat. Then configure your working directory.

2. Start the daemon

macOS / Linux:

npm run daemon -- start
  • macOS: registers a launchd agent for auto-start and auto-restart
  • Linux: uses systemd user service (falls back to nohup if systemd unavailable)

Windows (PM2):

npm install -g pm2      # Install PM2 globally (first time only)
npm run daemon:start     # Start with PM2
npm run daemon:status    # Check status
npm run daemon:logs      # View logs
npm run daemon:stop      # Stop
npm run daemon:restart   # Restart (after code updates)

PM2 provides auto-restart, log management, and startup hooks on Windows.

3. Chat in WeChat

Send any message in WeChat to start chatting with Claude Code.

4. Manage the service

npm run daemon -- status   # Check if running
npm run daemon -- stop     # Stop the daemon
npm run daemon -- restart  # Restart (after code updates)
npm run daemon -- logs     # View recent logs

WeChat Commands

Command Description
/help Show available commands
/clear Clear current session (start fresh)
/reset Full reset including working directory
/model <name> Switch Claude model
/permission <mode> Switch permission mode
/prompt [text] View or set a system prompt appended to every query
/status View current session state
/cwd [path] View or switch working directory
/skills List installed Claude Code skills
/history [n] View last N chat messages
/compact Start a new SDK session (clear token context)
/undo [n] Remove last N messages from history
/<skill> [args] Trigger any installed skill

Permission Approval

When Claude requests to execute a tool, you'll receive a permission request in WeChat:

  • Reply y or yes to allow
  • Reply n or no to deny
  • No response within 120 seconds = auto-deny

You can switch permission mode with /permission <mode>:

Mode Description
default Manual approval for each tool use
acceptEdits Auto-approve file edits, other tools need approval
plan Read-only mode, no tools allowed
auto Auto-approve all tools (dangerous mode)

How It Works

WeChat (phone) ←→ ilink bot API ←→ Node.js daemon ←→ Claude Code SDK (local)
  • The daemon long-polls WeChat's ilink bot API for new messages
  • Messages are forwarded to Claude Code via @anthropic-ai/claude-agent-sdk
  • Tool calls and thinking previews are streamed back as Claude works
  • Responses are sent back to WeChat with automatic rate-limit retry
  • Platform-native service management keeps the daemon running (PM2 on Windows, launchd on macOS, systemd/nohup on Linux)

Data

All data is stored in ~/.pocketclaude/:

~/.pocketclaude/
├── accounts/       # WeChat account credentials (one JSON per account)
├── config.env      # Global config (working directory, model, permission mode, system prompt)
├── sessions/       # Session data (one JSON per account)
├── get_updates_buf # Message polling sync buffer
└── logs/           # Rotating logs (daily, 30-day retention)

Development

npm run dev    # Watch mode — auto-compile on TypeScript changes
npm run build  # Compile TypeScript

Acknowledgments

This project was inspired by wechat-claude-code. Thanks to the original author for the great idea and architecture.

License

MIT

About

Chat with Claude Code from WeChat — Claude in your pocket

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors