Wechatian

by laruence
5
4
3
2
1
Score: 51/100

Description

Category: 3rd Party Integrations

The Wechatian plugin connects WeChat to your vault through Tencent's official ilink bot gateway and turns messages into local Markdown notes. Incoming chats are written to daily conversation files, photos, videos, voice messages and documents are decrypted into an attachments folder, and article links are fetched into full text notes under an articles folder. For outbound messages, it watches an outbox folder and sends Markdown files as text or sends images, videos and documents as attachments up to 100 MB. It also maintains an Agent.md file that explains the file based send flow to AI assistants. Paths are configurable, the interface is bilingual, sending unlocks only after the bound account messages the bot once, and the plugin runs on desktop only.

Reviews

No reviews yet.

Stats

42
stars
700
downloads
2
forks
45
days
14
days
21
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
2
total issues
0
open issues
2
closed issues
70
commits

RequirementsExperimental

  • A WeChat account and app to scan the QR code and send the first bound message through Tencent's ilink bot gateway

Latest Version

21 days ago

Changelog

Three fixes in the article-fetch path. Please read the caveat below before assuming this closes #1.

Scripts are stripped before parsing. A WeChat article page is ~3MB of HTML, of which 95-98% is <script> content, while the body we actually read (#js_content) is under 4%. The parser was building a DOM for bytes we never touch. Extraction is verified byte-identical on real articles: title, description, account name, image set, body text.

Article fetches are now bounded. Per-request idle timeouts never bounded the total, so a single link could occupy the (serial) poll loop for minutes — and with it the inbox entry, the receipt reply, and the typing indicator. Each link now gets a deadline, as does the whole fetch phase. Images are best-effort: past the deadline they degrade to remote links, so a slow CDN costs image files but never the note.

No more bogus 文章抓取失败: unknown. Links were counted even with article fetching turned off, so any message with a link produced a spurious failure line in the receipt. With fetching off, the raw URL is simply recorded, as intended.

README file from

Github

Wechatian

CI Obsidian downloads

Your WeChat, inside your vault.

Wechatian is an Obsidian plugin that bridges WeChat and your vault through Tencent's official ilink bot gateway — no unofficial protocol hacks, no self-hosted relay. Messages you receive become searchable notes; your AI assistant can WeChat you by dropping a file into a folder.

直接打通微信到你的知识库

Wechatian 是一个 Obsidian 插件,通过腾讯官方 ilink 机器人网关打通微信与你的知识库——走官方协议,无需自建中转站。收到的消息自动变成可搜索的笔记;AI 助理只需往文件夹里丢一个文件,就能给你发微信。

Why

Your most important conversations happen on WeChat — but they're trapped in the app: unsearchable, unlinkable, lost when you switch phones. Wechatian pulls them into your knowledge base:

  • Inbox on autopilot — messages, photos, documents, and article links received on WeChat are written into your vault as Markdown, automatically. Searchable, linkable, permanently yours.
  • AI that reaches you — a long task finished? A decision needed? Your agent writes one file and you get a WeChat notification. Reply one line, it reads it back from the vault.
  • Official channel — runs on the WeChat-approved ilink bot gateway; no modified clients, no self-hosted relay.
  • Local by design — messages are written only to your vault. Nothing is uploaded, stored, or analyzed anywhere else.

Features

  • Inbox — incoming WeChat messages become daily conversation notes (<inbox>/YYYY-MM-DD.md, received + sent in one timeline); media decrypted into attachments/; links fetched in full as markdown article notes, grouped by official account
  • Outbox — a file-based send channel: drop an .md (sent as text, markdown supported) or an image / video / document ≤100MB (sent as an attachment) into outbox/
  • Agent-ready — the plugin maintains an Agent.md in the inbox folder teaching any AI assistant the outbox protocol; see Agent.md in this repo for the full guide
  • QR login — scan once; the plugin binds to the scanning account and only accepts messages from it
  • Configurable paths — inbox / attachments / articles / outbox folders are all settable
  • Receipt replies — once a message is recorded, a confirmation is sent back over WeChat (where the image/file/article was saved); toggle in settings, follows the UI language
  • Trilingual UI — English / 简体中文 / 繁體中文 (follows Obsidian by default)

Install

Community store (recommended): Obsidian → Settings → Community plugins, search Wechatian, install and enable.

From a release: copy main.js, manifest.json, styles.css from the latest release into <vault>/.obsidian/plugins/wechatian/ and enable (assets are CI-built and signed: gh attestation verify main.js --owner laruence).

From source:

git clone https://github.com/laruence/wechatian.git && cd wechatian
npm install
OBSIDIAN_PLUGIN_DIR=/path/to/vault/.obsidian/plugins/wechatian npm run build

Via AI agent: hand it this repo and say "Read the README and install Wechatian into my vault."

Quick start

Five steps, about five minutes:

  1. Open Obsidian → Settings → Wechatian. A QR code appears in the login section.

  2. Scan it with WeChat and confirm — a bot contact appears in your contacts, and the plugin reports the login:

  3. Try Send now and it fails — the gateway issues the send credential only after the bound account has messaged the bot:

    So you send the bot a message from WeChat — "Hello".

  4. The desktop receives it — and with that, the outbound direction unlocks:

  5. Back in settings, hit Send — the desktop confirms the send, and the phone receives the bot's reply:

    When that message lands on your phone, you're done — the bridge is live in both directions.

Usage

Wechatian/              # inbox folder (all paths configurable)
├── Agent.md            # instructions for AI agents (plugin-maintained)
├── 2026-08-17.md       # daily conversation note (received + sent)
├── attachments/        # media
├── articles/           # full-text article notes, grouped by account
│   └── <account>/      # one folder per official account (optional)
│       ├── 2026-08-17 Some title.md
│       └── assets/     # the article's own images
└── outbox/             # write a file here to send it

All paths are configurable in settings.

Receiving

  • Messages land in the daily note, timestamped and marked received/sent.
  • Media (photos, videos, files, voice) is decrypted into attachments/ and embedded in the daily note.
  • Article links are fetched in full and saved as markdown notes under articles/, grouped into a subfolder per official account (toggleable). The article's own images go into an assets/ subfolder alongside the note; non-account links stay flat with images in articles/assets/.

Sending

Write one file into outbox/. No API, no recipient — it's a one-to-one channel to your own bound WeChat:

Write into outbox/ Result
notify.md content sent as a text message (markdown supported — headings, lists, bold, code blocks)
chart.png, report.pdf … sent as an attachment (image / video / document, ≤100MB)

A "Message sent" toast confirms delivery; the message is also recorded in the daily note.

The plugin picks files up on its next poll (~30–60 s). Judge the result by the file:

  • File gone = sent — recorded in today's conversation note (media gets a copy in attachments/ and is linked)
  • File still there = failed — an .md gets a trailing <!-- Wechatian send failed: ... --> comment; media gets a <name>.wechatian-failed.md sidecar explaining why

For AI agents

This is the half that makes Wechatian more than a backup tool: agents read the plugin-maintained <inbox>/Agent.md, learn the outbox protocol, and start notifying you — task done, question to settle, nothing more. See Agent.md for the full protocol (sending, result judging, reading replies, rate limits). Never call any API; the file channel is the whole interface.

FAQ

What if my computer is offline? No problem. Messages sent to the bot while you're offline are held by the gateway, and Wechatian picks them up automatically the next time you open Obsidian. One caveat: how long the gateway keeps messages isn't documented — treat very old offline messages as best-effort.

Why can't it send messages right after I scan the QR? The gateway issues the send credential only after the bound account has sent the bot at least one message. Send any message to the bot from WeChat once (step 3 above) and sending unlocks.

Does it receive images, videos, and files? Yes — media arrives decrypted in attachments/ and is embedded in the daily note. Links to articles are additionally fetched in full as markdown notes under articles/ (grouped by official account), with the article's images in an assets/ subfolder alongside the note.

Why didn't a forwarded article/file arrive? Known gateway limitation: the bot can't receive forwarded articles or files. Send the original link or the file itself instead.

Does it work on Obsidian mobile? The plugin runs on desktop only. But the notes it writes are plain Markdown — sync your vault (iCloud / Git / Obsidian Sync) and read the full history on your phone.

Good to know

  • Rate limit — the gateway throttles proactive sends; this is a notification/decision channel, not a chat tool
  • Offline catch-up — messages sent while the computer is offline are picked up automatically next time Obsidian starts (gateway retention period is undocumented)
  • One device per account — concurrent long polling from multiple devices competes for the message stream; run the plugin on one machine
  • No forwarding — see FAQ above
  • Privacy & security — messages live only in your vault; only the QR-scanning account is accepted

Ideas

  • AI notification channel — the headline use case: your agent pings you on WeChat when long work finishes, you steer it back with one reply
  • Personal CRM — conversations with key contacts land in your vault automatically; add tags, link them to project notes
  • Journal byproduct — daily notes double as a searchable timeline of your day's conversations
  • Any tool can send — the outbox is just a folder: scripts, shortcuts, cron jobs — anything that can write a file can WeChat you

Testing

npm test   # builds, then runs the node:test suite (scripts/unit-test.js)

Unit tests (tests/unit.ts) cover the crypto layer, import pipeline (fake in-memory vault), outbox flush paths, receipt-reply assembly, failure classification, and i18n dictionary parity. CI runs lint, typecheck, tests, and build.

中文说明

微信 ↔ Obsidian 双向桥接插件:收消息自动入 vault,agent 往发件箱丢个文件就能给你发微信。走腾讯官方 ilink 机器人网关,数据只落本地。

Wechatian 把微信变成 vault 的双向通道:

  • 收:消息实时写入每日对话笔记(收发同一时间线);媒体解密存 attachments/;链接全文抓取成 markdown 文章笔记存 articles/(按公众号分子目录,可关闭),文章配图存各文章目录下的 assets/
  • 发:往 outbox/ 丢文件——.md 作为文本消息发送(支持 markdown),图片/视频/文档(≤100MB)作为附件发送
  • Agent:插件在收件箱目录维护 Agent.md,AI 助手读完即学会发件协议——长任务跑完、需要拍板时主动给你发微信;完整指南见 Agent.md
  • 扫码登录:扫一次即绑定该账号,只接收该账号的消息;路径全部可配置;界面中(简/繁)英三语

快速上手(约五分钟):

  1. Obsidian → 设置 → Wechatian,登录区出现二维码
  2. 微信扫码确认,通讯录里出现一个 bot 联系人
  3. 先在微信里给 bot 发任意一条消息——网关只在绑定账号发过消息后才下发发送凭证,这一步解锁发送方向
  4. 状态栏显示"微信已连接",双向通道就绪

注意事项:网关对主动消息限流(通知/拍板渠道,不是聊天工具);同一账号只在一台设备运行插件(多设备长轮询会抢消息流);bot 收不到转发的文章和文件,请发原始链接或文件本身。电脑离线也没关系——离线期间发给 bot 的消息会在下次打开 Obsidian 时自动抓取(网关保留多久暂不明确)。

安装方式与英文版相同:社区市场搜索 Wechatian;或从 release 复制三个文件到 .obsidian/plugins/wechatian/;或 npm run build 从源码构建。

License

MIT

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Plugin Update Tracker
4 years ago by Steven Swartz
Know when installed obsidian plugins have updates and evaluate the risk of upgrading
Inbox
4 years ago by Zachatoo
Show in app notification on startup if there is data to process in the "inbox" note/folder.
Birthday-Tracker
3 years ago by Marius Wörfel
Obsidian plugin to keep track of all birthdays of your family and friends.
Notification Controller
3 years ago by juan-miii
⏱️ Hide Startup Time Notice: An Obsidian plugin that automatically hides the startup time notice.
Wechat Public Platform
2 years ago by Blake Chan
Obsidian Wechat public Plugin (微信公众平台) is a plugin to release article from your Obsidian Vault to WeChat, Baidu baiJiahao or other platforms.
Note to MP
2 years ago by Sun Booshi
Messager
2 years ago by Rainyluo
send messages through wechat/http api/email to obsidian
AI bot
2 years ago by kuzzh
The AI Bot Plugin is a powerful tool designed to enhance your note-editing experience in Obsidian by leveraging the capabilities of AI. This plugin allows you to interact with an AI assistant directly within Obsidian, making it easier to generate, edit, and organize your notes with intelligent suggestions and automated tasks.
Inbox Organiser
2 years ago by Jamie Hurst
Obsidian plugin to capture any new notes into an inbox and periodically prompt to organise these into other folders within the vault.
Idle Monitor
2 years ago by alberto98fx
A plugin to improve your productivity
Enhanced Publisher
a year ago by Cube
增强的Obsidian发布插件,支持图片自动存储、HTML预览和发布到微信公众号等内容平台
Inboxer
a year ago by Eoin Hurrell
Obsidian plugin to add an inbox to notes
MP Preview
a year ago by Yeban
一个帮助你快速将 Obsidian 笔记转换为微信公众号格式的插件。
Wechat Converter
3 months ago by davidlam-oss
Obsidian 公众号排版(支持自定义 CSS和公众号贴图)、飞书云同步与多平台(小红书、知乎等)发布插件。Markdown 转微信文章 / Feishu docs / 知乎、小红书、今日头条等草稿,支持数学公式、本地图片、GIF 和 Mermaid。
MP Publisher
3 months ago by joeytoday
自定义主题预览,并发布到公众号草稿箱。
Bi Ji Tong Bu
2 months ago by 笔记同步助手
Bi Ji Tong Bu (笔记同步助手) for Obsidian — marketplace edition (no self-update; full disclosures)
Simple Reminder
19 days ago by Dmitry
Напоминалка