Zero-dependency markdown notes, synced to WebDAV, GitHub, or Dropbox.
gn is a simple bash script that pulls a
markdown note from cloud storage, opens it in
$EDITOR, and pushes it back if you changed
anything. Supports WebDAV (Koofr, Nextcloud, etc.), GitHub,
and Dropbox. No git, no daemons, no heavy apps to install -
just curl and a local folder.
gn.sh above and make it run this
to make it executable:
mv gn.sh ~/bin/gn && chmod +x ~/bin/gn
gn, or
anything you like) to hold your notes.
repo scope — this lets gn read
and write files in your repository over the GitHub
API. The setup menu will ask you to paste in your
token, username, and repository name once; these are
saved to your local config file.
files.content.write and
files.content.read, then click
Submit.
# 1. Open this URL (replace YOUR_APP_KEY) to authorise and get a one-time code:
https://www.dropbox.com/oauth2/authorize?client_id=YOUR_APP_KEY&response_type=code&token_access_type=offline
# 2. Exchange the code for a long-lived refresh token:
curl -s -X POST https://api.dropbox.com/oauth2/token \
-d code=YOUR_AUTH_CODE \
-d grant_type=authorization_code \
-d client_id=YOUR_APP_KEY \
-d client_secret=YOUR_APP_SECRET
Copy the refresh_token from the response
— the setup menu will ask for it.
~/gn/gn.conf with
chmod 600 permissions — only your local user
can read the file.
$ gn
No config found at ~/gn/gn.conf - let's set one up.
Select your provider:
1) Koofr (WebDAV)
2) Custom WebDAV Server
3) GitHub
4) Dropbox
Choice [1-4]: 3
GitHub Personal Access Token (input hidden):
GitHub username (repo owner): your-username
Repository name: gn
Save this config for future runs? [Y/n] Y
To clear or alter your configuration later, run
gn -c to wipe gn.conf and re-run
setup.
gn [options] [note]
| Command | What it does |
|---|---|
gn |
Open (or create) default note.md
|
gn ideas |
Open ideas.md - pulls, edits,
pushes if changed
|
gn -t |
Open today's note, YYYY-MM-DD.md
|
gn -d ideas |
Delete a note, local and remote (with confirmation) |
gn -r old new |
Rename a note, local and remote (WebDAV
MOVE)
|
gn -s |
Sync (pull) all remote notes down to local directory |
gn -c |
Clear saved credentials and reconfigure |
gn -h |
Show help |
The full script - copy it directly if you'd rather not download the file.
Loading gn.sh...