Introduction¶
DSH is a plugin-based runtime environment. There are already many local notes in the timeline, but if you want to format a Markdown file into a WeChat Official Account article and then post it to X/Zhihu/Xiaohongshu, you usually have to switch to a browser or a dedicated layout tool. qiaomu-publish-dsh, maintained by joeseesun, is designed to bridge this gap: it is a DeepSeek Harness version of the original Qiaomu Publish, directly reusing the original preview, 42 themes, layout controls, cover editing, and publishing window. Below is an introduction to its features, installation, and boundaries.
What is it¶
One-sentence positioning: A DeepSeek Harness plugin that formats Markdown notes into WeChat Official Account articles, X posts, Zhihu drafts, and Xiaohongshu posts with images/text.
- Maintainer: joeseesun
- Category: Workflow
- Current version: v0.1.3, README states compatibility with DeepSeek Harness
0.2.2-rc.1 - License: MIT; Directory page lists 1 star
- Original code comes from commit
4fbeae30017e1db4be95b7454620b30eae47ada8of qiaomu-publish, product CSS remains byte-for-byte identical
It does not rewrite the layout logic itself but hooks up the original preview, themes, covers, and publishing window to DSH’s plugin system. Host boundaries and two dark mode readability fixes are recorded separately (docs/ADAPTATION.md).
Core Features¶
I. Editing and Layout. Original real-time preview, bidirectional scrolling, theme search, and per-article layout are all retained; font size, font family, line height, paragraph spacing, primary color, indentation, and code style use the original controls. Markdown file support, draft recovery, attachment import, renaming while keeping themes, and external modification synchronization are all available; when saving, it checks the file version to avoid overwriting changes from other editors.
II. Content and Export. Supports tables, alert blocks, footnotes, code, Wiki/Markdown images, and note embedding; built-in MathJax and Mermaid allow formulas and charts to be exported as images along with the text. Can copy WeChat Official Account rich text, standalone HTML, long image PNGs; title covers, image selection, cropping, and font color schemes follow the original version.
III. Publishing. WeChat Official Account supports multi-account, direct connection/fixed IP relay/self-built Bridge, creating and updating drafts, uploading images and covers, pre-publish checks, and note attribute recording. X/Zhihu/Xiaohongshu use the local handover from Qiaomu Clipper v1; six sets of Xiaohongshu templates, pagination, color schemes, fonts, removing cards, and limits on body text and topics are all retained.
Installation and Activation¶
Before installation, confirm system requirements: README requires DeepSeek Harness 0.2.2-rc.1 and Node.js 24.9 or later. The engines field in package.json lists a wider range: node >=22, and dsh supports 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-rc.1. Which one takes precedence depends on whether you follow the latest adaptation in the README or the complete compatibility table declared in the package; they are not exactly the same.
Installation consists of two steps: first retrieve the package and verify the checksum, then hand it to the plugin manager to load.
# Download the tgz and SHA256SUMS from Releases and verify the checksum
dsh plugin --profile desktop add /absolute/path/qiaomu-publish-dsh-0.1.3.tgz
You can also use the Harness plugin manager to install a local tgz directly. After installation, open the sidebar “Qiaomu Publish”. Editing, layout, and export can be completed without connecting any publishing accounts.
Notes Directory and Original Configuration Migration¶
The default working directory is $DSH_HOME/qiaomu/qiaomu-publish-dsh/notes. If DSH_HOME is not set, ~/.dsh is used. Save Markdown files and attachments in this directory, or select files via “Import”. Relative image paths within the directory remain unchanged; single Markdown file limit is 2 MB, single attachment limit is 32 MB.
Plugin configuration can specify absolute paths for notesDir and dataDir. After selecting an existing notes directory, save and publish records are written to the selected notes; the original Obsidian repository that was not selected will not be modified. Embedding supports up to 8 layers. If attachments with the same name cannot be uniquely identified, it will explicitly report “missing image” and prevent incomplete export.
“Import” supports data.json from the original Publish or Qiaomu Agent, retaining themes, per-article styles, account configuration, and credential IDs. Note: Credential databases from different hosts cannot be shared directly; you must re-enter AppSecret/Token in the original connection settings; original Obsidian credentials will not be deleted. New credentials use macOS Keychain, Windows DPAPI, or Linux Secret Service; configuration JSON does not save keys; Linux requires an available secret-tool and Secret Service.
Publishing to Platforms¶
The WeChat Official Account window uses the official API or a user-configured relay service; it does not manipulate the WeChat client or embedded pages. The publish button only creates or updates drafts; it does not send directly to the public (mass send).
X, Zhihu, and Xiaohongshu require installing Qiaomu Clipper beforehand and logging into the platform in the target browser. During handover, the Host temporarily listens on a random port of 127.0.0.1, uses one-time pickup tokens and session tokens, and closes after completion, cancellation, timeout, or uninstallation. The plugin does not automatically send content during editing or previewing.
Verification Scope and Limitations¶
Build, package contracts, original business logic, and host boundaries have been tested. On macOS, the original preview, formulas/charts as images, HTML/long image export, renaming, external sync, publishing window, and six sets of card PNGs have been tested in an isolated Harness profile.
However, several areas are explicitly not covered: sending to real WeChat Official Account accounts and external platform drafts was not executed during migration acceptance testing. Transmission and handover used fixtures and real local socket checks, which cannot replace real account acceptance testing; Windows/Linux credential implementations have not yet been verified on real machines for the corresponding systems. See ADAPTATION for itemized records; see docs/DSH-0.2.2-RC1.md for Harness 0.2.2-rc.1 adaptation and tested boundaries.
Local Development¶
npm ci
npm run check
npm pack
Use node scripts/qa-cards.mjs for the browser card acceptance page, then start a local static server at build/cards-qa.
Applicable Scenarios and Notes¶
Suitable for developers who already use DSH to manage notes and need to generate WeChat Official Account posts and multi-platform drafts directly from Markdown. The scenario where you want to offline layout and export first without connecting any accounts is the most hassle-free, as editing and export do not require network or credentials.
Please note two points: The plugin runs with the permissions of the current dsh process; you should check the source code and license before installing; publishing functions rely on an additional local Qiaomu Clipper service and platform login state; cross-platform credentials have not been verified on real Windows/Linux machines yet.
Conclusion¶
The value of qiaomu-publish-dsh lies in bringing the polished layout and publishing workflow of the original Qiaomu Publish into DSH, avoiding the need to open another editor. See https://www.skillhub.cn/plugins/joeseesun/qiaomu-publish-dsh for the directory page, and https://github.com/joeseesun/qiaomu-publish-dsh for source code and installation packages.