notable-git-sync-setup
notable-git-sync-setup copied to clipboard
Automatically synchronise your Notable folder to Git every few minutes 🔄
Notable Git Sync
Configures a User LaunchAgent for macOS and Service Manager for Linux that synchronises the ~/.notable
folder to a Git repository.
You'll get a nice notification if you have a recent version of Node.js installed.

Requirements
macOS
- A Git repository on GitHub, GitLab, or some Git server.
- Git installed on macOS (Installation options).
- Git SSH keys configured (GitHub Docs for SSH) using default
id_rsa
naming scheme. - [Optional] Node.js v12+ is required for macOS notification integration.
Linux
- A Git repository on GitHub, GitLab, or some Git server.
- Git installed (Installation options).
- Git SSH keys configured (GitHub Docs for SSH) using default
id_rsa
naming scheme.
OS Support
Currently only macOS and Linux is supported. Pull Requests that add support for other platforms are welcome!
Setup
NOTE: This script assumes you are using the ~/.notable
directory for storing notes. After running the script use the Change Data Directory option in Notable to set your data directory to ~/.notable
.
Clone the repository, run the setup.sh
, and follow the prompts:
macOS
git clone https://github.com/evanshortiss/notable-git-sync-setup notable-sync
cd notable-sync
./setup.sh
Linux
git clone https://github.com/evanshortiss/notable-git-sync-setup notable-sync
cd notable-sync
sudo chmod +x ./setup.sh
# -E preserve environment (for git commands)
sudo -E ./setup.sh
Default Configuration
The configuration for the service is defined in the plist.template.xml.
- Assumes a default
~/.ssh/id_rsa
SSH configuration for Git. - Logs are written to
/tmp/notable-sync.stdout
and/tmp/notable-sync.stderr
in macOS. -
sudo journalctl -u notable-sync
to see logs in Linux. - By default, notes are synchronised to the Git repository every 10 minutes.
- Fails on Git merge conflicts. Are your notes are not syncing? This might be why.