./sn --insecure (only if using dev HTTPS with self-signed certs)
Binaries from GitHub Releases
We publish prebuilt binaries for macOS, Linux, and Windows when a tag is pushed (vX.Y.Z)
Download from the Releases tab and place sn in your PATH
Install
Requirements: Go 1.22+
Local (from this repo):
cd cli && go install ./cmd/sn
From GitHub (always latest from main):
go install github.com/ktappdev/secretnotes-go-backend/cli/cmd/sn@main
Alternative (@latest may be cached by proxies):
go install github.com/ktappdev/secretnotes-go-backend/cli/cmd/sn@latest
# If @latest fails due to proxy cache:
go env -w GOPROXY=direct
go install github.com/ktappdev/secretnotes-go-backend/cli/cmd/sn@latest
go env -u GOPROXY
Autosave
Default: ON (1200 ms debounce)
Toggle in the app: press Alt+S (persisted to config immediately)
One-time for this run: ./sn --autosave (optional: --autosave-debounce-ms 1200)
You can also edit preferences.autosaveEnabled and preferences.autosaveDebounceMs in the config
Passphrase lives only in memory for the session and is zeroed on exit.
No passphrases in config or logs.
No recovery: If you forget your passphrase, your note is permanently unrecoverable.
Privacy & exit behavior
Ctrl+Q: wipes the screen and scrollback to remove any trace of your note
Ctrl+C: clears the visible screen but preserves scrollback history
Terminal support varies: not all terminals honor scrollback clear (CSI 3 J). If privacy is critical, manually clear or close your terminal after quitting. For stubborn terminals, set SN_WIPE_AGGRESSIVE=1 when launching.
Why clear the screen?
Your note content can remain in the terminal’s visible buffer or scrollback history
Screen recording, streaming, or remote support tools can capture that history
Clearing (and optionally wiping scrollback) reduces the chance of accidental disclosure
Troubleshooting
Status shows Connected/Offline; the backend host is not displayed.
If you see a server health warning, ensure your backend is running and the URL is correct.
Saving issues often mean the passphrase doesn’t match the note or the server is unreachable.