3 releases
Uses new Rust 2024
| 0.1.2 | Aug 1, 2025 |
|---|---|
| 0.1.1 | Jul 29, 2025 |
| 0.1.0 | Jul 28, 2025 |
#1309 in Command line utilities
90 downloads per month
40KB
726 lines
nural
nural is a fast, minimal, and context aware CLI note tool
nural is designed to deal with all the common pain points of CLI note tools; high cognitive load, cumbersome note access, and a cluttered note store. With nural, notes are scoped to directories (called "contexts"), meaning notes are only visible where they're relevant. In addition, all commands do their best to infer your intent, despite partial or even missing information.
Quickstart
To set up a note context run nural init in your project root. This context spans all child directories of your project root.
You can use exact note names in commands
nural create todo
nural append "example text" todo
You can also use partial note names. The below example will first check for a note named "to", and fall back to a fuzzy match. If there are multiple notes that match (e.g. "todo" and "stores") it will open a search in the TUI where you can select a note by typing, using the arrow keys, and pressing enter
nural open to
You can also completely leave out the note name to directly open the search UI and select a note
nural read
All commands have aliases (visible in their help messages). This, in combination with partial note name parsing, lets you access notes with minimal input and thought. For example, the below command would append the example text to the end of the newly created todo note
nural c todo
nural a "Update readme" to
Installation
Currently, the only methods of installation are cargo or building the source yourself.
cargo install nural- ensure
~/.cargo/binis in your system path. - (optional) add an alias for nural, e.g.
alias n=nural
Platforms
nural is currently primarily built and tested on Linux. Windows is supported, but at the moment requires additional configuration from the default Linux commands. In a future update the reader and lister commands will be replaced by built in functionality.
You can run nural config to print the config location for your platform.
Setup
Following installation and a dry run of nural from the terminal to generate files, you can make some configuration tweaks.
- The
note_extensionsetting lets you change your preferred note file extension, I would recommend leaving this default at .md. - The
editorsetting is the command to be run to open notes. Default isnano. - The
readersetting is the command to be run to print notes to the terminal. Default iscat. - The
listersetting is the command to be run to print all available notes to the terminal. Default istree.
All other settings in the config are currently unimplemented.
Future Plans
I'm planning to continue development and implement more features
- Different storage modes (stored in project folder vs inside nural installation folder)
- Metadata for notes to allow more intelligent CLI parsing, e.g commands automatically selecting the MRU note
- Piping text into append command
- Global flag to access a more traditional global note store
Suggestions
I'm eager for feedback and feature requests, just open an issue or reach out directly if you like the tool but wish it had something.
Dependencies
~9–22MB
~289K SLoC