quick-notes

Write it down before you forget it.

Quick Notes is a tiny command-line app for people who think in the terminal. Type note, jot down whatever's on your mind, and it's saved locally in an instant - then quietly synced to a server only you control.

01. local first

Saved before you finish typing

Every line lands on disk instantly. Nothing waits on a network round trip.

02. private by network

No cloud account, ever

Your notes sync to your own VPS, reachable only through your private Tailscale network.

03. quiet by default

No manual sync command

Background sync just happens. Offline notes catch up the moment you're back.

Get set up

Install on the devices you write from

You'll need Go 1.25+ and Tailscale connected on every device you want to sync - laptop, VPS, and phone.

Build the binary and put it on your path.

git clone https://github.com/bkrisa/notes.git
cd notes
go build -o note main.go
sudo mv note /usr/local/bin/

Then point this client at your server:

echo 'export QNOTE_SERVER="http://<your-vps-tailscale-ip>:8080"' >> ~/.bashrc
source ~/.bashrc

Clone and build the same way as the client, then run it as a background service under a dedicated, unprivileged user - never root.

Note: unlike the client install, don't move the binary to /usr/local/bin - leave it in place, since the systemd service below expects it at this path.
[Unit]
Description=Note App Server
After=network.target tailscaled.service

[Service]
Type=simple
User=note-user
WorkingDirectory=/path/to/notes
Environment=QNOTE_LISTEN=<your-vps-tailscale-ip>:8080
ExecStart=/path/to/notes/note --server
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Save that as /etc/systemd/system/note.service, then:

sudo systemctl daemon-reload
sudo systemctl enable --now note

Same build, adapted for Termux's package layout.

pkg install golang git
git clone https://github.com/bkrisa/notes.git
cd notes
go build -o note main.go
cp note $PREFIX/bin/
Termux's golang package can lag behind the latest Go release. If tailscale.com refuses to build due to a version mismatch, try an older release: go get [email protected] && go mod tidy

Day to day

Write, find, edit - all from the prompt

Run note with no arguments to start a new note. Each line saves as you go.

While writing

CommandAction
:wSave and keep adding lines
:wqSave and quit
:qQuit without saving
:uUndo the last line

From the command line

CommandAction
note :lsList all notes
note :find <term>Search by note ID or content
note :date <query>Search by creation date, e.g. 2026-08-06
note :edit <id>Edit line by line - Enter keeps a line, typing replaces it
note :d <id>Delete a note
>
No manual sync step. Notes save locally the instant you write them and sync to your server automatically in the background. Offline? The note just stays local until the next save attempt succeeds.

Under the hood

How a note gets from your laptop to your server

The path never touches the public internet - only your private Tailscale network.

note (client)
laptop, phone, or terminal
Tailscale network
the only path in or out
note --server
your own VPS

Trust boundary

Security