Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

WeWrite

learnerchen-foreverlearnerchen-forever2k downloads

AI assisting writing, Rendering and publishing notes to WeChat MP platform

Add to Obsidian
  • Overview
  • Scorecard
  • Updates32

English | 简体中文

WeWrite — Obsidian Plugin for WeChat Official Accounts

Write notes in Obsidian, render them to WeChat format with one click, and push them to your WeChat drafts. Works on every platform — publish end-to-end from your phone.


Why WeWrite 2.0

  • Truly cross-platform. Identical features on desktop and mobile. Runs smoothly on mainstream devices. All buttons ≥ 44px. The cover editor supports pinch-to-zoom and drag.
  • Zero CSS files. Built on Obsidian's native rendering with a DOM styling pipeline — all styles are inlined into the HTML at render time, so WeChat never strips your formatting.
  • Your data stays yours. Images are uploaded directly to your WeChat Official Account media library — never through any third party. WeWrite only ever publishes to drafts; you always have final approval.
  • Themes are notes. Create a Markdown note with wewrite_theme: true to design an entire layout. Built-in templates are one click away, and the theme editor previews changes in real time.
  • 100+ element decorations. Headings, blockquotes, code blocks (12 color themes), tables, lists, dividers, links, math, diagrams… each customizable individually.
  • Fingerprint dedup saves 90%+ time on republishing. FNV1a-64 content fingerprint database. Renamed or moved images are still matched to previously uploaded assets and automatically skipped.
  • Three-zone cover editor. A single cover at whatever ratio you pick, plus an optional 2.35:1 landscape + 1:1 square pair that one Compose click merges into the multi-ratio crops WeChat asks for. Pinch-to-zoom, drag and crop frames on all three, and AI can generate any of them.
  • Built-in AI writing assistant. Proofreading, synonyms, translation, Mermaid/formula generation, image generation, and summaries — all inside Obsidian.

Features

Markdown Rendering

Basic formatting (H1–H6, bold, italic, strikethrough, inline code), code blocks (dark/light color themes, line numbers, macOS traffic-light decorations), ordered/unordered lists, task lists, tables, blockquotes, callouts, horizontal rules, footnotes, external links.

LaTeX math (MathJax SVG), Mermaid diagrams, Excalidraw sketches, wiki-link note embeds, and the inline icons Obsidian, Iconize and Remix inject into a note.

PDF embeds rendered as images: PDF++ region screenshots (![[file.pdf#page=N&rect=x1,y1,x2,y2|caption]]) and whole-page embeds (![[file.pdf#page=N]]) are automatically rendered and cached as PNGs at publish time — powered by Obsidian's built-in PDF.js, with no extra dependencies.

Dataview queries (dataview / dataviewjs code blocks and inline $= ...) are evaluated through the Dataview plugin and rendered as theme-styled text, consistent with handwritten Markdown.

An image embedded without a size fills the reading column at its own pixel ratio, so a wide screenshot stays readable on a phone without you resizing it by hand — an image you sized yourself (![[photo.png|200x150]]) keeps the size you gave it. Tables size to their content: a narrow table is centred instead of hugging the left edge, and a wide one scrolls sideways inside the article rather than squeezing its columns and folding English words in half.

Note Editing & AI Writing Assistant

Entry points: Command palette + editor right-click "WeWrite" submenu + the note header's "⋮" menu + the mobile editor toolbar — all offer the same actions.

Inserting images

Action Description
Insert Image from Vault A thumbnail grid of every image in the vault, with a folder dropdown and a filename filter — unlike Obsidian's own attachment picker, which lists bare file names
Insert Image from System The device's own photo picker, i.e. the camera roll on a phone. The image is copied into the vault first — into the folder your Default location for new attachments setting names — and converted to PNG when its format is one Obsidian cannot display

AI writing tools

Feature Description
Proofread Spelling / grammar / punctuation checks for Chinese and English. The result is a list you scan before deciding anything: every correction colour-coded by severity (spelling and punctuation red, grammar orange, wording blue), click to jump to it, only the changed characters marked in your text, and a suggestion you can rewrite before accepting. Accept or ignore one at a time, or all the remaining ones of a single type; ←/→ navigate and Enter accepts. Runs on the selection, or on the whole note when nothing is selected — code, frontmatter, links and $math$ are withheld from the model, so they never come back as "corrections"
Synonyms Alternatives for the selected word, chosen against the sentence it sits in — the sense and a usage note are shown for each option, and the list can be re-rolled in place
Translate 10 target languages; code, links, math and tags are protected from translation, and a result that lost one is flagged before it replaces your text
Generate Mermaid Description → Obsidian-compatible diagram. Pick the diagram type instead of letting the model guess; the source is syntax-checked (and repaired once when it fails) before insertion
Generate Formula Description → LaTeX, block or inline, compiled with Obsidian's own MathJax before insertion
Generate Image Text description → AI illustration, inserted at the cursor
Generate Summary WeChat-compliant summaries generated in the article view

AI text providers: OpenAI / OpenAI Compatible (DeepSeek, Qwen, etc.) / Anthropic / Gemini / Ollama (local) / OpenRouter. Image generation providers: Alibaba Wan 2.6 / Alibaba Qwen-Image 3.0 / ByteDance Seedream 5.0 / OpenAI DALL·E (the two Alibaba providers also require a Workspace ID). Automatic size fitting: enter any free-form size (1440*613, 2K, 1024x1024, …) and the plugin converts it to each model's legal constraints — e.g. Seedream requires ≥2560×1440 total pixels with width and height as multiples of 64 — so WeChat banner ratios work out of the box.

Publishing Workflow

Write → real-time preview in the WeWrite article view → configure title / author / summary / cover → push to drafts with one click → confirm and send via the Official Accounts Assistant app on your phone.

Image Posts (NewsPic)

Dedicated image post view. Up to 20 images with captions, drag-and-drop sorting, phone-frame swipe preview, crop support.

Material Management

Images / article drafts / image drafts in separate tabs. Sync, delete, download to vault, copy CDN links, set as cover. Assets referenced by published articles are automatically flagged to prevent accidental deletion.

Theme System

A theme is a Markdown note with wewrite_theme: true (stored in wewrite/themes/). Ten built-in presets — Minimal GitHub, Classic WeChat, Elegant Serif, Paper Long-form, Grid Document, Typography Aesthetic, Clean Media, Colorful Accents, Warm Daily and Dark Tech — are authored on the same theme system as the ten downloadable ones, so a built-in theme now dresses every element (headings, quotes, callouts, tables, dividers, lists, inline marks, images, formulas, Mermaid, Excalidraw) instead of only the handful the old presets knew about. A wizard creates a theme in one dialog, and the visual editor covers the 100+ decorations and their parameters.

Two settings are theme-level rather than per-decoration, so one value reaches every element of that kind:

  • Vertical spacing — one margin per block family (quotes, callouts, tables, code blocks, formulas, Mermaid diagrams and Excalidraw frames, plus images), so a dense technical note gets a rhythm of its own instead of inheriting each block's built-in spacing.
  • Image window — with it on, images that no blank line separates merge into one swipeable horizontal row, which shortens an image-heavy article; a blank line still starts a new row. Off by default, and on for half of the built-in and half of the downloadable themes.

Multi-Device Sync (Experimental)

Built-in WebDAV sync: share one vault across devices, resolve conflicts visually, and roll back via the sync journal. Quota-aware for Jianguoyun's free plan (auto pause/resume, notes-first priority).

Settings Import / Export

Full JSON export (with version number) for cross-vault migration. Automatically detects legacy v1.x settings on first launch and migrates them in one click.


Installation

Requires Obsidian 1.6.6 or later — the plugin calls FileManager.trashFile (API introduced in 1.6.6), so older builds cannot run it. Language detection uses getLanguage() (API 1.8.7) behind a requireApiVersion guard and falls back to English on 1.6.6–1.8.6.

Search "WeWrite" in the Obsidian Community Plugins marketplace, install and enable it.

Or install manually:

  1. Download the latest release from Releases
  2. Extract to <vault>/.obsidian/plugins/wewrite/
  3. Restart Obsidian and enable the plugin in settings

Quick Start

  1. Configure your WeChat Official Account AppID / AppSecret in plugin settings (add the IP to the whitelist, or enable "Use central token server")
  2. Open any Markdown note, right-click → "Open as WeChat Article"
  3. Fill in the title, author, and summary (or let AI generate them) in the parameter panel
  4. Pick a theme preset and check the preview
  5. Click "Publish to Drafts"
  6. Open the Official Accounts Assistant app on your phone → drafts → confirm and send

For step-by-step details and FAQs, see the Tutorials below.


Tutorials

  • Tutorial 1: Quick Start — From Note to WeChat Draft
  • Tutorial 2: Themes & Layout
  • Tutorial 3: AI Writing Tools
  • Tutorial 4: Covers & Images
  • Tutorial 5: Materials & Image Posts
  • Tutorial 6: Multi-Device Sync & Settings

The tutorials are currently written in Chinese; the Chinese README provides the full feature overview in Chinese.


Changelog

What actually changed in each version lives in CHANGELOG.md. After an update WeWrite shows a What's New dialog, and the What's new in WeWrite command reopens it at any time.

v2.0 (2026.8)

Complete rewrite: mobile-first architecture, Obsidian native rendering + zero-CSS inline styling pipeline, theme-note system with 100+ decorations, AI writing assistant (proofread / synonyms / translate / Mermaid / formulas / image / summary), unified FNV1a-64 asset fingerprint database, three-zone cover editor, image post support, WebDAV multi-device sync, encrypted API key storage, settings import/export, automatic v1.x migration.

  • 2026.09.18 — Release 2.0.21: the 38 icons are redrawn as one family on the same 24 grid and stroke as Obsidian's own, and six places that borrowed an Obsidian icon to mean a WeWrite action now use the WeWrite one; the ten built-in themes are rebuilt on the same theme system as the downloadable ones; themes gain one vertical spacing value per block family and an Image Window switch; images fill the reading column and tables size to their content; proofreading is a severity-coloured list that covers the whole note and skips code, frontmatter and links; translation and diagram/formula generation are checked before they replace anything; AI image sizes are fitted to what each model really accepts; images can be inserted from the vault or from the device photo picker; composing a cover is ~20× faster and yields a 3 MB PNG instead of 48 MB.
  • 2026.09.15 — Release 2.0.20: deleting an account asks for confirmation first; the plugin loads again on Obsidian 1.6.6–1.8.6; the settings pane switches to the compact phone layout in a narrow or portrait pane and keeps its scroll position; rendering and publishing no longer re-read and re-hash the same images.
  • 2026.09.13 — Release 2.0.19: every command now carries an icon, so WeWrite actions work from the mobile editor toolbar; quote styling follows each theme's own accent colour again, with nested and undecorated quotes fixed; the theme wizard's quote presets now use the current decoration schema; merged external PR #28 (Synology app:// image paths, inline math inside lists, images uploaded before copying to WeChat); added the What's New dialog; release notes are now generated from CHANGELOG.md.
  • 2026.09.07 — Release 2.0.18.
  • 2026.09.04 — Release 2.0.17.
  • 2026.09.04 — Release 2.0.16.
  • 2026.09.03 — Release 2.0.15.
  • 2026.09.03 — Release 2.0.14.
  • 2026.08.29 — Release 2.0.13.
  • 2026.08.25 — Release 2.0.12.
  • 2026.08.19 — Release 2.0.11.
  • 2026.08.19 — Release 2.0.10.
  • 2026.08.19 — Release 2.0.9.
  • 2026.08.19 — Release 2.0.8.
  • 2026.08.19 — Release 2.0.7.
  • 2026.08.18 — Release 2.0.6.
  • 2026.08.17 — PDF embed rendering (PDF++ region screenshots / whole pages, zero-size via Obsidian's built-in PDF.js) and Dataview query support (evaluated and rendered as theme-styled text).
  • 2026.08.16 — 2.0.3: UI polish; image generation now supports the three latest domestic models (Qwen-Image 3, Wan 2.7, Seedance 5.0).
  • 2026.06.29 — WeWrite 2.0 released, supporting creation on all platforms.

v1.x Notable Updates (2023)

  • 2023.06.16 — Comments enabled by default for new articles (suggested by geosmart)
  • 2023.06.16 — Fixed white-unthemed preview panel in dark mode (PR #4, thanks to bushnerd)
  • 2023.06.16 — New render style "ifanr", inspired by the WeChat Official Account "爱范儿"

v1.x features no longer applicable in 2.0:

  • CSS files + juice post-injection → replaced by zero-CSS inline rendering
  • IndexedDB storage → replaced by Obsidian native API
  • Desktop-only → now fully cross-platform
  • Flat theme presets → upgraded to hierarchical theme-note system

Acknowledgments

This plugin was deeply inspired by the following projects:

  1. note-to-mp
  2. obsidian-wechat-public-platform
  3. obsidian-export-image
  4. marked.js
  5. gray-matter
  6. highlight.js
  7. MathJax

Thanks to the developers of these projects for their contributions to the open-source community.


License

MIT

HealthExcellent
ReviewPassed
About
Render Obsidian notes into WeChat Official Account format and push them to WeChat drafts, preserving Markdown, Excalidraw, Mermaid, LaTeX, callouts, code highlighting, embedded notes, charts, PDFs and icons. Manage media and drafts, switch accounts, preview with custom themes, and polish or translate content with built-in AI.
PublishingIntegrationsAI
Details
Current version
2.0.21
Last updated
2 days ago
Created
2 years ago
Updates
32 releases
Downloads
2k
Compatible with
Obsidian 1.6.6+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
learnerchen-foreverlearnerchen-forever
www.3thinking.cn/#/learner-forever
GitHublearnerchen-forever
  1. Community
  2. Plugins
  3. Publishing
  4. WeWrite

Related plugins

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

Agent Client

Chat with Claude Code, Codex, Gemini CLI, and more via the Agent Client Protocol — right from your vault.

Smart Composer

AI chat with note context, smart writing assistance, and one-click edits for your vault.

Claude Sidebar

Run Claude Code in your sidebar.

Claude Code IDE

Connect your vault to Claude Code and share editor context with the CLI.

Snipd Official

Sync Snipd podcast highlights to your vault with transcript, notes, AI summaries and metadata.

GitHub

Share as Gist

Share a note as a GitHub.com Gist.

Plaud Sync

Sync Plaud voice recordings into Markdown notes with transcripts, AI summaries, and highlights.

BRAT

Easily install a beta version of a plugin for testing.

LanguageTool Integration

Advanced grammar and spell checking, powered by LanguageTool.