An Obsidian plugin that publishes notes from a vault folder to a GitHub repository using a Personal Access Token.
- Open Settings > Community plugins > Browse.
- Search for GitHub Inbox and click Install.
- Install the BRAT plugin.
- In BRAT settings, click Add Beta Plugin and enter the repo name (e.g.
youruser/obsidian-github-inbox).
- Build the plugin:
npm install npm run build
- Create a folder in your vault's plugins directory:
<your-vault>/.obsidian/plugins/github-inbox/ - Copy
main.jsandmanifest.jsoninto that folder. - Open Obsidian, go to Settings > Community plugins, and enable GitHub Inbox.
Go to Settings > GitHub Inbox and configure:
| Setting | Description | Example |
|---|---|---|
| GitHub Personal Access Token | A fine-grained PAT with Contents: Read and write permission on the target repo. | ghp_xxxxxxxxxxxx |
| Source folder | The vault folder to publish from. | inbox |
| Destination repository | The target GitHub repo in owner/repo format. |
myuser/my-notes |
| Destination folder | The folder path inside the repo to publish into. Leave empty to publish to the repo root. | notes/inbox |
- Put files in your configured source folder (default:
inbox/). - Open the command palette (
Ctrl/Cmd + P) and run "Publish source folder to GitHub". - All files in the source folder are pushed to the configured GitHub repo and folder. Existing files are updated; new files are created.
- Subdirectory structure within the source folder is preserved in the destination.
- Binary files (images, PDFs, etc.) are supported.
- Each file is committed individually via the GitHub Contents API.
- Successfully published files are deleted from the vault.
Push a git tag to trigger the GitHub Actions workflow that builds and creates a release:
git tag 1.0.0
git push origin 1.0.0The workflow attaches main.js and manifest.json to the GitHub Release automatically.