README file from
GithubPublish your notes for free in a few clicks
The Plugin Github Publish allows you to publish your vault in minutes without the configuration hassle of the usual free solutions. The plugin uses Quartz as a rendering engine and GitHub Pages for hosting, but does all the configuration setup for you.
Easy steps:
- Authenticate with your GitHub account,
- Give permissions (repo and actions)
- Select the folder you want to publish, and the name of the site
- Profit!
Live Demo
Checkout the Wiki of the project that is published with the Quartz template.

Keep track of changes and publish your updated notes
The plugin keeps track of edited notes, lets you know when there are changes, and lets you publish the latest notes with a click.
User Friendly UX
The plugin is designed to make the process of publishing as smooth as possible and to give you the info you need to know what is going on. Just what you would expect from a modern usable software tool.
Features
- One-click setup — choose a content folder, site name, and repository; the plugin handles the rest
- Quartz by default — Obsidian-flavored markdown, backlinks, and graph view out of the box
- Incremental publishes — only changed notes are uploaded after the initial publish
- Multi-site — publish several folders from one vault to separate repositories
- Progress tracking — monitors GitHub Actions until the site is live
How it works
- You authenticate with GitHub (device flow OAuth).
- On first publish, the plugin creates a repo containing your notes under
content/, a pinned Quartz toolchain, and a deploy workflow. - A commit to
maintriggers GitHub Actions, which buildsdist/and deploys to GitHub Pages. - Later publishes diff your vault folder against a stored manifest and push only what changed.
Missing some features?
The pluggin is in a early prototype version and I am curious to know what features you would like to see, get in touch directly via email: [email protected].
Some Issue?
Please report issues and bugs on the GitHub Issue Page
Install
This plugin is not yet on the Obsidian Community Plugins store. Install manually:
From a release (recommended)
-
Download the latest release assets (or build locally—see below).
-
Copy or symlink the
plugin/folder into your vault:<vault>/.obsidian/plugins/github-publish/ -
Enable GitHub Publish under Settings → Community plugins.
-
Open Settings → GitHub Publish → Connect to GitHub.
-
Run the command palette → GitHub Publish: Set up site.
Symlink for development
ln -s /path/to/obsidian-github-publish/plugin \
~/path/to/vault/.obsidian/plugins/github-publish
After changing plugin code, rebuild and reload Obsidian (or use the Reload app without saving command).
Usage
| Command | Description |
|---|---|
| GitHub Publish: Set up site | Wizard for a new published site |
| GitHub Publish: Publish changes | Push note updates (picks a site if you have several) |
| GitHub Publish: Continue publish | Resume an interrupted first publish |
Published sites appear as cards in the plugin settings, each with its own Publish changes button and live status.
If publish fails with an UpdateRef permissions error, disconnect and reconnect GitHub so your token includes the workflow scope.
Development
Requirements: Node.js 20+ and npm.
git clone https://github.com/oilandrust/obsidian-github-publish.git
cd obsidian-github-publish
npm run build:plugin
| Script | Purpose |
|---|---|
npm run build:plugin |
Sync toolchains and build the plugin |
npm run build:plugin:advanced |
Build with extra settings (template engine, Quartz version) |
npm run sync:toolchain |
Refresh bundled Quartz and in-house toolchains |
npm run build |
Plugin only (assumes toolchains already synced) |
More detail: plugin/README.md.
Repository layout
plugin/ Obsidian plugin (manifest, main.ts, bundled toolchains)
assets/
toolchain-quartz/ Default static site generator (Quartz)
toolchain-inhouse/ Alternative Vite + React template
scripts/ Build and toolchain sync helpers
template/ Standalone in-house site template (local dev)
Wiki/ Design notes and specifications
Status
Early prototype (v0.1.0). Expect rough edges. Desktop only.