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

Note publisher

bvn13bvn1324 downloads

Publishes a note (with its images) to a private GitHub repo and creates a UUID-only public link rendered by a Cloudflare Worker.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates2

Publish a single Obsidian note — together with its embedded images — to your own private GitHub repository, and get a clean, UUID-only public link that is rendered by a small worker you host yourself.

The plugin is a thin client. There is no vendor backend: the author has no access to your notes, your GitHub token, or your repository. Everything runs between your vault, your GitHub repo, and the worker you deploy.

How it works

Obsidian vault ──(GitHub API, your PAT)──▶ your private GitHub repo
                                                   │
                                                   ▼
                                    worker reads the repo and renders
                                    https://<your-worker>/v/<uuid>
  1. When you publish a note, the plugin ensures the note has a stable uuid stored in its properties (frontmatter). If absent, one is generated.
  2. It reads the note body, collects the embedded images, and rewrites the embeds to relative filenames.
  3. Using your fine-grained GitHub token, it commits the document as <root>/<uuid>/index.md plus the images into the same folder of your private repo.
  4. The public link https://<your-worker>/v/<uuid> is written back into the note's properties and copied to your clipboard.

The worker that turns <uuid> into a readable page is deployed by you. Two reference implementations are available:

  • Cloudflare Worker: https://github.com/obsidian-note-publisher/cloudflare-worker
  • Self-hosted worker: https://github.com/obsidian-note-publisher/self-hosted-worker

Requirements

  • A private GitHub repository to hold the published documents.
  • A fine-grained Personal Access Token with Contents: Read and write scoped to that repository.
  • A deployed worker (Cloudflare or self-hosted — see the links above) that has read access to the same repository and renders the public pages.

Installation

From Community Plugins (once approved)

Settings → Community plugins → Browse → search for Note publisher → Install → Enable.

Manual

  1. Download manifest.json and main.js from the latest release.
  2. Copy them into <vault>/.obsidian/plugins/note-publisher/.
  3. Reload Obsidian and enable the plugin in Settings → Community plugins.

Configuration

Open Settings → Note publisher and fill in:

Setting Description Default
Personal Access Token (write) Fine-grained PAT with Contents: Read and write. Stored locally in this vault only. —
Owner GitHub user or organization that owns the repo. —
Repository Private repository name. —
Branch Branch to commit to. main
Root directory Path in the repo under which each document gets its own folder. docs
Worker base URL Public URL of your worker, no trailing slash. —
UUID property Note property that stores the document UUID. publish_uuid
Link property Note property that stores the public URL after publishing. public_url

Usage

Open the command palette and run one of:

  • Publish current note — uploads the note and its images to the private repo and copies the public link.
  • Unpublish current note — deletes the note's folder from the repo, so the public link goes dead. The note keeps its UUID.
  • Copy public link — copies the already-published link from the note's properties.

Privacy & network usage

For reviewers and privacy-conscious users, here is exactly what the plugin does over the network:

  • The plugin makes outbound requests to one host only: api.github.com, authenticated with your own fine-grained token, to create, list, and delete files in your private repository.
  • The plugin does not send your note content to the worker. It only builds the link string <worker>/v/<uuid>. The worker independently reads the notes from your GitHub repo — the plugin never talks to it.
  • No telemetry, no analytics, no calls to any author-controlled server.
  • Your GitHub token is stored locally in the vault (.obsidian/plugins/note-publisher/data.json) and is never committed to your repo or sent anywhere except GitHub's own API.
  • All requests use Obsidian's requestUrl, so the plugin works on desktop without CORS workarounds.

License

MIT — see LICENSE.

HealthExcellent
ReviewSatisfactory
About
Publish a single note and its embedded images to a private GitHub repository, committing the note and assets under a stable UUID folder as index.md. Generate and persist a UUID in the note's frontmatter, rewrite embeds to relative filenames, and write a clean UUID-only public link (served by a worker you deploy) into the note and clipboard.
PublishingGitAttachments
Details
Current version
1.0.1
Last updated
3 weeks ago
Created
3 weeks ago
Updates
2 releases
Downloads
24
Compatible with
Obsidian 1.5.0+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
bvn13bvn13obsidian-note-publisher
GitHubobsidian-note-publisher
  1. Community
  2. Plugins
  3. Publishing
  4. Note publisher

Related plugins

Share Note

Instantly share/publish a note, with the full theme and content exactly like you see in Obsidian. Data is shared encrypted by default, and only you and the person you send it to have the key.

Quartz Syncer

Manage and publish your notes to Quartz, the fast, batteries-included static-site generator.

MP Publisher

Preview with custom CSS themes and publish articles to WeChat Official Accounts with one click.

Social Archiver

Archive social media posts from various platforms.

TTRPG Tools - Publish

Generates publish.js/publish.css and a publish-assets manifest for TTRPG Tools: Maps (Zoom Map).

Git

Integrate Git version control with automatic backup and other advanced features.

Ink

Handwriting and drawing directly between paragraphs using a digital pen, stylus, or Apple pencil.

Fit

Minimalist File gIT (FIT) to sync your files across mobile and desktop devices using GitHub.

Local Images Plus

A reincarnation of Local Images to download images in Markdown notes to local storage.

Consistent Attachments and Links

Move note attachments and update links automatically.