A generic note taking software with version control
  • Go 55.3%
  • Shell 43.6%
  • Makefile 1.1%
Find a file
riomoo 86742c678d
declared v1.0
- Fixed Readme
- Added SVG
- tweaked note taking version control

Co-authored-by: riomoo <alister@kamikishi.net>
Co-committed-by: riomoo <alister@kamikishi.net>
2026-04-08 21:11:03 +00:00
bash declared v1.0 2026-04-08 21:11:03 +00:00
cmd/nt declared v1.0 2026-04-08 21:11:03 +00:00
docs/images/svgs declared v1.0 2026-04-08 21:11:03 +00:00
internal/notes declared v1.0 2026-04-08 21:11:03 +00:00
.gitignore declared v1.0 2026-04-08 21:11:03 +00:00
go.mod declared v1.0 2026-04-08 21:11:03 +00:00
LICENSE declared v1.0 2026-04-08 21:11:03 +00:00
Makefile declared v1.0 2026-04-08 21:11:03 +00:00
README.md declared v1.0 2026-04-08 21:11:03 +00:00

nt: Note Taking Tool

A minimal, fast note-taking CLI with Markdown support, git version control, interactive checkboxes, hyperlinks, and tables. All notes live in ~/.config/nt and every change is auto-committed to git.


License

Custom badge


Two editions

Bash nt.sh Go nt-go/
Dependencies bash 4+, git, sed Go 1.26.1+, git
Install chmod +x bash/nt.sh && sudo cp bash/nt.sh /usr/local/bin/nt cd nt-go && make install
Portability Any Unix Compile once, run anywhere

Installation

Bash

chmod +x bash/nt.sh
sudo cp bash/nt.sh /usr/local/bin/nt

Go

cd nt-go
make install          # builds and copies to /usr/local/bin/nt
# or: go build -o nt ./cmd/nt && sudo mv nt /usr/local/bin/

Usage

nt new    <name>              Create a note (opens $EDITOR)
nt edit   <name>              Edit existing note
nt show   <name>              Render note in terminal
nt list                       List all notes
nt delete <name>              Delete a note
nt search <query>             Full-text search across notes
nt log                        Git history of notes
nt git    [args]              Run any git command on the notes repo

Quick append (no editor needed)

nt add meeting task  "Follow up with Alice"
nt add meeting link  "RFC doc" https://example.com/rfc
nt add meeting table Name Status Priority
nt add meeting line  "Some free-form text"

Checkboxes

# From the command line
nt check   meeting "Follow up with Alice"   # marks [X]
nt uncheck meeting "Follow up with Alice"   # marks [ ]

# Interactive toggler (navigate with number keys)
nt toggle  meeting

Markdown cheat sheet

# Heading 1
## Heading 2
### Heading 3

- [ ] Unchecked task
- [X] Checked task

[Link label](https://example.com)

**bold text**   *italic text*

| Name   | Status   | Priority |
| ------ | -------- | -------- |
| Alice  | Active   | High     |
| Bob    | Pending  | Medium   |

Notes directory layout

~/.config/nt/
├── .git/               ← git repo (auto-managed)
├── meeting.md
├── ideas.md
└── projects/
    └── roadmap.md

Subdirectories are supported — nt new projects/roadmap works as expected.


Git integration

Every create/edit/delete/check auto-commits with a descriptive message. Use nt log to browse history, and nt git remote add origin <url> to push to a remote for backup/sync.