Table of Contents
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Editions
nt ships in two fully feature-equivalent editions. Both read and write notes in the same ~/.config/nt directory and produce the same output, so you can switch between them at any time.
Comparison
Bash nt.sh |
Go nt-go/ |
|
|---|---|---|
| Dependencies | bash 4+, git, sed | Go 1.21+, git (only at build time) |
| Runtime dependencies | bash, git, sed, grep | git |
| Install | Copy script to $PATH |
make install or go build -o nt ./cmd/nt |
| Portability | Any Unix/macOS with bash 4+ | Single static binary — any OS/arch |
| macOS compatibility | Requires brew-installed bash 4+ | Works with stock macOS |
| Windows | WSL / Git Bash only | Native (no WSL needed) |
| Feature parity | ✓ Full | ✓ Full |
| Terminal rendering | ANSI via echo -e |
ANSI via compiled regexes |
| Checkbox regex | sed + bash regex |
regexp package |
| Binary size | ~15 KB (script) | ~3–5 MB (compiled) |
Bash Edition Details
The Bash edition (nt.sh) is a single self-contained script. It uses:
sedfor in-place line edits (checkbox toggling, pattern replacement)grepfor search and pattern matchingfindfor note discovery- bash built-in regex (
=~) for Markdown rendering
It is the easiest to audit and modify, and works on any Unix system with a reasonably modern bash.
Go Edition Details
The Go edition (nt-go/) is a compiled binary with no runtime dependencies beyond git. It uses:
- The
regexppackage for all Markdown parsing and checkbox manipulation os.ReadFile/os.WriteFilefor atomic note updatesbufio.Scannerfor the interactive toggle TUIos/execfor editor and git subprocess calls
Because it is a compiled binary, it starts faster and handles edge cases in file paths and Unicode more robustly than the shell version.
Which Should I Use?
- Bash — if you want something you can read and modify in 5 minutes, or if you are on a system where installing Go is inconvenient.
- Go — if you are on macOS (avoids the bash 3 / bash 4 issue), want a single portable binary, or prefer a compiled tool.
Both editions are maintained together and remain feature-identical.