https://github.com/cyprieng/obsidian-github-publisher
Push selected notes and folders from Obsidian directly to a GitHub repository.
https://github.com/cyprieng/obsidian-github-publisher
github obsidian obsidian-md obsidian-plugin
Last synced: about 1 month ago
JSON representation
Push selected notes and folders from Obsidian directly to a GitHub repository.
- Host: GitHub
- URL: https://github.com/cyprieng/obsidian-github-publisher
- Owner: cyprieng
- License: mit
- Created: 2025-08-20T06:00:08.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2026-03-15T17:26:33.000Z (3 months ago)
- Last Synced: 2026-03-16T05:38:22.983Z (3 months ago)
- Topics: github, obsidian, obsidian-md, obsidian-plugin
- Language: TypeScript
- Homepage: https://www.cyprien.io/projects/obsidian-github-publisher/
- Size: 227 KB
- Stars: 7
- Watchers: 0
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GitHub Publisher for Obsidian
**GitHub Publisher** is a plugin for [Obsidian](https://obsidian.md/) that lets you automatically or manually publish selected notes and folders from your vault to a folder in a GitHub repository.
This plugin is ideal for publishing notes for use with a static site generator, or backing up part of your vault to GitHub.
For more details on how you can use it to publish your notes, check here: [easily publish your Obsidian notes through GitHub](https://www.cyprien.io/posts/obsidian-github-publisher/).
## Installation
This plugin is not yet available in the official Obsidian Community Plugins list. You can install it using one of the methods below.
### Using BRAT (recommended)
1. Install [BRAT](https://github.com/TfTHacker/obsidian42-brat) from **Settings > Community Plugins > Browse**.
2. Go to **Settings > Community Plugins > BRAT > Add Beta Plugin**.
3. Paste the repository URL: `https://github.com/cyprieng/obsidian-github-publisher`.
4. Click **Add Plugin**, then enable **GitHub Publisher** in your Community Plugins list.
### Manual installation
1. Download `main.js` and `manifest.json` from the [latest release](https://github.com/cyprieng/obsidian-github-publisher/releases).
2. Create the folder `/.obsidian/plugins/github-publisher/`.
3. Copy the downloaded files into that folder.
4. Restart Obsidian (or reload plugins).
5. Enable **GitHub Publisher** in **Settings > Community Plugins**.
## Features
- **Selective publishing:** Choose specific notes and folders to export, or use tags to automatically select files.
- **Configurable destination:** Publish to any folder in any branch of your repository.
- **Manual and automatic publishing:** Trigger export manually or on an interval.
- **Overwrites remote folder:** The target folder in your repository will always match your selected local notes/folders.
## Configuration
Open the plugin settings from `Settings` → `GitHub Publisher`. Configure the following:
- **GitHub Token:**
A [GitHub Personal Access Token](https://github.com/settings/tokens) with permissions to commit to your repository.
- **Repository URL:**
Full URL to your GitHub repository (e.g., `https://github.com/yourusername/yourrepo`).
- **Target folder in the repo:**
Relative path inside your repository where notes will be placed (leave empty to use the root).
- **Branch:**
The branch to push changes to (default: `main`).
- **Publish files with given tags:**
Tags that mark files for publishing (e.g., `#publish`, `#note`). Any file containing at least one of these tags (in frontmatter or inline) will be published.
- **Notes/folders to export:**
The notes or folders you want to push to your repo.
- **Publish interval (min):**
How often to publish automatically (0 to disable periodic publishing).
## Usage
- **Manual Publishing:**
Use the command palette (`Cmd/Ctrl + P` → "Publish to GitHub now") or the "Synchronize now" button in the settings.
- **Automatic Publishing:**
If an interval is set, the plugin will periodically export your selected notes/folders.
## Important Behavior
> **One-way export:**
> This plugin performs a **one-way publish** from Obsidian to GitHub.
> The contents of the selected notes/folders will **overwrite** the target folder in your GitHub repository on each publish.
> Any files in the target GitHub folder that are not present locally will be **deleted**.
> This is **not a two-way sync**, changes made on GitHub are not imported back into Obsidian.
## How It Works
- The plugin collects all selected notes/folders and their contents.
- It uses the GitHub API to create, update, or delete files in your specified repo folder and branch.
- The remote folder is overwritten to match your selection (additions, updates, deletions).