https://github.com/terror/notes
A lightweight command-line utility for managing plain text notes
https://github.com/terror/notes
Last synced: about 2 months ago
JSON representation
A lightweight command-line utility for managing plain text notes
- Host: GitHub
- URL: https://github.com/terror/notes
- Owner: terror
- License: cc0-1.0
- Created: 2022-11-27T23:32:18.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-12-23T19:45:54.000Z (8 months ago)
- Last Synced: 2026-05-13T11:46:13.382Z (3 months ago)
- Language: Shell
- Homepage:
- Size: 806 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING
- License: LICENSE
Awesome Lists containing this project
README
## notes 📝
[](https://github.com/terror/notes/actions/workflows/ci.yaml)
**notes** is a simple command-line utility that helps with managing a flat
directory of notes powered by fzf, fd and ripgrep.

## Installation
You can install the script onto your machine by simply copying it into the
appropriate location:
```bash
curl https://raw.githubusercontent.com/terror/notes/master/notes -o /usr/local/bin/notes
chmod +x /usr/local/bin/notes
```
## Usage
`notes` requires a few environment variables to be set, namely:
- `$EDITOR`: The text editor you'll be editing your notes with [default: `vim`]
- `$NOTE_DIR`: Path to your notes directory [default: `~/notes`]
- `$NOTE_EXT`: File extension of your notes [default: `md`]
- `$NOTE_FORMAT_COMMAND`: Command to run when formatting notes [default: `prettier --single-quote --prose-wrap always --write`]
Moreover, a few external dependencies are required for full usage of the
program, namely:
- [`bat`](https://github.com/sharkdp/bat) - A cat clone
- [`fd`](https://github.com/sharkdp/fd) - A fast and user-friendly alternative to find
- [`fzf`](https://github.com/junegunn/fzf) - A fuzzy file finder
- [`prettier`](https://github.com/prettier/prettier) (if `$NOTE_FORMAT_COMMAND` is set to use it) - A document formatter
- [`ripgrep`](https://github.com/BurntSushi/ripgrep) - A line-oriented search tool
Below are the available ways you can interact with the program:
```present notes help
A simple note management CLI powered by fzf, fd, and ripgrep.
Usage: notes [COMMAND]
Available commands:
d | daily Open up todays note
h | help Show this message
k | keybindings View all fzf window keybindings
s | search Start a full-text search
```
Running `notes` without any arguments will spawn an interactive `fzf` window
that lets you perform actions on your notes directory.
`notes` sets a bunch of keybindings within the `fzf` window for note
interactions:
```
Toggle the preview window
Exit
Delete the selected file
Create a new file whose name is the current query string
Format the selected file
Scroll down the preview window
Scroll up the preview window
Reload the result buffer
Edit the selected file
```
Most notably, you can create and remove notes using `ctrl-e` and `ctrl-d`.
## Prior Art
I'm not aware of any similar tool out there. I suppose it is loosely inspired by
zettelkasten-based tools, with the goal of being very simple to use.