whoami

gn // get notes

Zero-dependency markdown notes, synced to Koofr WebDAV or GitHub.

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 Koofr (WebDAV) and GitHub. No git, no daemons, no heavy apps to install - just curl and a local folder.

Download

gn.sh - save to ~/bin/gn, chmod +x

Setup

  1. Download gn.sh above and make it run this to make it executable:
mv gn.sh ~/bin/gn && chmod +x ~/bin/gn
  1. Prepare your storage provider credentials:

Option A: Koofr Cloud Storage

  • Sign up free or log in at app.koofr.net.
  • Go to Account settings → Password and generate an App Password. The script needs this specific app-token, not your main web portal login password.

Option B: GitHub

  • GitHub Account: If you don't already have one, create an account.
  • Private Repository: Create a private repository (named gn, or anything you like) to hold your notes.
  • Personal Access Token: Generate a new Personal Access Token with the 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.
🔒 Privacy: Credentials are saved into ~/gn/gn.conf with chmod 600 permissions - only your local user can read the file.
  1. Run the script. If no configuration file is found, it will run an interactive setup menu to choose your backend and configure credentials:
$ gn
No config found at ~/gn/gn.conf - let's set one up.
Select your provider:
1) Koofr (WebDAV)
2) GitHub
Choice [1-2]: 2
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.

Usage

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 -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

Notes

Heads up Sync is last-write-wins. There's no merge or conflict detection - if you edit the same note from two machines without syncing in between, the second push overwrites the first.
Tip Notes are raw markdown files in your chosen storage backend, so you can read and edit them directly via a web browser or mobile app — e.g. Koofr, GitHub

Source

The full script - copy it directly if you'd rather not download the file.

Loading gn.sh...