xsvm67 downloadsDrive your Obsidian Claudian AI coding agent from WeChat. Chat, send images, switch sessions, run slash commands, and mirror desktop turns to mobile.
中文 | English
Remote control your Claudian AI coding agent inside Obsidian directly from WeChat, via the official WeChat ClawBot (iLink) interface.
WeChat messages and images are relayed into a live Claudian session, and Claudian's responses are relayed straight back to the same WeChat conversation — turning your WeChat chat into a portable remote controller for your Obsidian agent.
Claudian embeds Claude Code (and other coding agents) as a sidebar inside Obsidian. WeChat ClawBot is an official WeChat capability that lets a bot account exchange messages with WeChat users over a long-polling HTTP API. This project connects the two seamlessly.
Shipped as a single self-contained Obsidian plugin folder:
obsidian-plugin/ — Obsidian plugin (claudian-wechat) running inside Obsidian alongside Claudian. It exposes a local loopback HTTP interface and drives Claudian's own chat tabs and runtime objects.obsidian-plugin/relay.py — Bundled Python script managing the WeChat ClawBot protocol (QR login, long-poll getUpdates, sendMessage) and forwarding data between WeChat and the plugin's local HTTP endpoint.The plugin manages relay.py's entire lifecycle automatically: it locates your system Python, bootstraps an isolated virtual environment (venv/, created only on first run), installs dependencies, presents an in-Obsidian QR code modal for initial WeChat login, and spawns relay.py serve as a managed child process. When the plugin is disabled or Obsidian is closed, the relay exits cleanly.
All communications between the plugin and relay stay strictly on 127.0.0.1.
WeChat User (Mobile)
|
v
WeChat ClawBot (Official Tencent Server)
| iLink API: QR login, long-poll getUpdates, sendMessage
v
relay.py (bundled with plugin, managed as child process)
| HTTP POST 127.0.0.1:39217/message (loopback only)
v
obsidian-plugin (claudian-wechat) (TypeScript, running in Obsidian)
| interacts with loaded Claudian plugin runtime
v
Claudian (github.com/YishenTu/claudian) (driven via runtime objects)
|
v
Claude Code / Configured Provider
/skip to send buffered images immediately./ls — List known Claudian sessions sorted by update time/goto N — Switch to session #N/new — Detach and start a fresh session on the next message/model (omit arguments to list available models), /effort (thinking level), and /permission (permission mode) from WeChat./commands to discover Claude's native commands, vault commands, and skills; all slash commands can be executed straight from WeChat./listen): Push desktop Claudian interactions to WeChat in real time.locale.isDesktopOnly, Windows / macOS / Linux).PATH.<vault>/.obsidian/plugins/claudian-wechat/.git clone https://github.com/xsvm/obsidian-claudian-wechat.git
cd obsidian-claudian-wechat/obsidian-plugin
npm install
npm run build
Copy the built files (manifest.json, main.js, relay.py, strings.json) into <vault>/.obsidian/plugins/claudian-wechat/ and enable the plugin.
| Command | Description |
|---|---|
/help |
Display command reference and usage |
/ls |
List known conversations, numbered |
/goto N |
Switch to conversation #N |
/new |
Start a brand new conversation |
/model |
List available models for the current provider (static list for claude, discovered models for others) |
/model <name> |
Change model (e.g. /model opus, /model sonnet) |
/effort <level> |
Change reasoning effort (e.g. /effort low, /effort high) |
/permission <mode> |
Change permission mode (e.g. /permission yolo, /permission default) |
/status |
View current model, effort, permission mode, and listen state |
/hist |
List input history in current session |
/hist N |
View the response corresponding to message #N |
/skip |
Immediately dispatch cached images without waiting for caption |
/listen on / /listen off |
Toggle live mirroring of desktop turns to WeChat |
/commands |
List Claude Code's native slash commands |
| any other text | Forwarded directly to Claudian as prompt |
claudian.mutateSettings and InputController.sendMessage) rather than tampering with DOM elements or raw settings files.127.0.0.1:39217 without external network exposure.relay.py child process is tightly managed by RelayManager to avoid orphaned background processes.Join the WeChat group for questions, feedback, and updates:

This project is licensed under the MIT License.