Skip to content
roomi fields

Tools for working with AI agents

obsidian-content-publisher

An Obsidian plugin that publishes a note to WordPress, Substack or LinkedIn, images included, with the settings carried in its front matter.

active version 2.4.0, 24 June 2026 licence MIT

Source code

The plugin began as a way to publish an Obsidian note to Substack, then gained WordPress and LinkedIn; it builds on obsidian-content-os, substack-mcp-plus and python-substack. Its main limitation: it relies on unofficial interfaces, Substack’s in particular, which can change without notice, and it runs on desktop only.

No playable demo: it needs an Obsidian vault and an account on the target platform.

The note is the source

Everything starts from the note. Its YAML front matter carries each platform’s settings: title, subtitle, categories, target audience. The plugin converts the Markdown to the platform’s format and uploads local images. After publishing to WordPress, it writes the post’s ID, URL and slug back into the front matter.

The suggested order: WordPress first, then Substack or LinkedIn, which pick up the published post’s URL.

Getting started

In Obsidian’s settings, under community plugins, search for “Content Publisher”, install it and enable it. Without the directory: copy main.js, manifest.json and styles.css from the latest release into .obsidian/plugins/content-publisher/.

For WordPress: in the plugin’s settings, add a server with its URL and an application password, then “Fetch from WP” to load the categories. Open a note, click the plugin’s icon, choose the platform, save as a draft.

What it does

  • WordPress: several servers (production, staging), categories loaded from the site, tags created on the fly, Rank Math SEO fields, wikilinks turned into internal links.
  • Drop cap: an image whose path contains enluminure becomes a floating drop cap, and the post’s featured image.
  • Two languages (WordPress and Polylang): two callouts, 🇫🇷 and 🇬🇧, in one note produce two linked posts.
  • Substack: automatic sign-in, draft or publish, several publications, target audience (everyone, paid subscribers, free subscribers, founding members), tags and sections.
  • LinkedIn: text post or shared article, editable preview (3,000 characters), draft.

Common issues

  • “Session expired” on Substack: sign in again from the settings.
  • “Publication not found”: check the spelling of the Substack subdomain.
  • “401 Unauthorized” on WordPress: the application password is at fault.
  • LinkedIn: it takes a LinkedIn app, which requires a company page, and a token obtained through Postman; the guide is in the settings.
  • The plugin does not load: enable it among community plugins, restart Obsidian.

Where it stands

Version 2.4.0 of 24 June 2026; published since 1.0.0 of 25 November 2025, 19 releases on GitHub; continuous integration passes. Obsidian’s plugin directory counts 1,212 downloads as of 28 September 2026; it notes that the plugin has not been manually reviewed by Obsidian staff. 5 stars and 5 forks as of 28 September 2026. Planned, with no date: cover images and scheduled publishing.

Repository · Platforms and front-matter fields

Thanks to @eharris128 (obsidian-content-os), @ty13r (substack-mcp-plus) and @ma2za (python-substack), whose work the plugin builds on.

How it was made. Claude Code (Claude Opus 5.5), from the repository, its README and its release notes. Method