1 Editions
riomoo edited this page 2026-04-08 18:34:42 -04:00
This file contains ambiguous Unicode characters

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) ~35 MB (compiled)

Bash Edition Details

The Bash edition (nt.sh) is a single self-contained script. It uses:

  • sed for in-place line edits (checkbox toggling, pattern replacement)
  • grep for search and pattern matching
  • find for 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 regexp package for all Markdown parsing and checkbox manipulation
  • os.ReadFile / os.WriteFile for atomic note updates
  • bufio.Scanner for the interactive toggle TUI
  • os/exec for 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.