cli note taker
Project description
nnote
A minimal CLI note-taking tool. Notes are plain files stored in a directory of your choice.
Installation
pip install -e .
Setup
nnote init
Prompts for a notes directory (default: ~/nnotes) and a default editor. Config is saved to ~/.config/nnote/config.yaml. If $EDITOR is set in your environment, it will be used as the editor default.
Commands
nnote new [<title>] [-d <dir>]
Create a new note and open it in the configured editor. Use -d to place the note inside a subdirectory of your notes directory (created automatically if it doesn't exist).
Omit the title and provide only -d to create a directory without opening an editor.
nnote new todo
nnote new standup -d work
nnote new -d archive
nnote view <title> [-d <dir>]
Print the contents of a note to stdout.
nnote view todo
nnote view standup -d work
nnote edit <title> [-d <dir>]
Open an existing note in the configured editor. Errors if the note doesn't exist (use new to create it).
nnote edit todo
nnote list [-d <dir>]
Display all notes as a tree. Scope to a subdirectory with -d.
nnote list
nnote list -d work
/home/user/nnotes
├── work/
│ ├── meeting
│ └── standup
└── todo
nnote drop [<title>] [-d <dir>]
Remove a note or a directory. When dropping a directory, prompts for confirmation if it contains files.
nnote drop todo # remove a note
nnote drop standup -d work # remove a note inside a subdirectory
nnote drop -d work # remove the entire directory
nnote move <title> [<dest_title>] [-d <dir>] [--dest-dir <dir>]
Move or rename a note. Provide a new title to rename, --dest-dir to move to another subdirectory, or both.
nnote move todo done # rename
nnote move standup -d work --dest-dir arch # move to another subdirectory
nnote move standup meeting -d work # rename within a subdirectory
nnote backup [<output_path>] [-d <dir>] [--include-config] [--dry-run] [--quiet]
Back up notes to a .tar.gz archive. If no output path is given, saves nnote-backup-YYYY-MM-DD.tar.gz in the current directory.
-d— scope the backup to a subdirectory--include-config— also bundle~/.config/nnote/config.yamlinto the archive--dry-run— list files that would be included without writing anything--quiet— suppress output (useful for scripting)
nnote backup # nnote-backup-2026-04-16.tar.gz in cwd
nnote backup ~/backups/notes.tar.gz # custom output path
nnote backup -d work # only the 'work' subdirectory
nnote backup --include-config # include config file
nnote backup --dry-run # preview without creating archive
nnote search <query> [-d <dir>]
Search notes by title and content. Results are ranked by relevance: exact title matches score highest, followed by prefix/substring/fuzzy title matches, then content hits. Matched terms are highlighted in the output.
nnote search meeting
nnote search budget -d work
work/meeting [title]
3: discussed the project budget
7: next meeting on friday
Config file
~/.config/nnote/config.yaml
notes_dir: /home/user/nnotes
editor: nvim
The editor field can be any terminal editor command (vim, nano, hx, etc.). If omitted, $EDITOR is used.
License
This project is licensed under the GNU General Public License v3.0 or later. See LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nnote-0.1.3.tar.gz.
File metadata
- Download URL: nnote-0.1.3.tar.gz
- Upload date:
- Size: 24.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
343c592695d018e824617672a777531636bceed3d72798fd6fdac6bdac132111
|
|
| MD5 |
ff88800e93a7f3625f2271f910e2704f
|
|
| BLAKE2b-256 |
b354a2640552b8cf911121a8951ac12c044302ab955f28373769da50884b51c4
|
Provenance
The following attestation bundles were made for nnote-0.1.3.tar.gz:
Publisher:
publish.yml on stiermid/nnote
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nnote-0.1.3.tar.gz -
Subject digest:
343c592695d018e824617672a777531636bceed3d72798fd6fdac6bdac132111 - Sigstore transparency entry: 1316875106
- Sigstore integration time:
-
Permalink:
stiermid/nnote@b519610d158f8d0da9c20fc9c061629cd44f712a -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/stiermid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b519610d158f8d0da9c20fc9c061629cd44f712a -
Trigger Event:
release
-
Statement type:
File details
Details for the file nnote-0.1.3-py3-none-any.whl.
File metadata
- Download URL: nnote-0.1.3-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e613a1652a5d5e38692548e8e59f243e1d118b17dcdee00a04eb6517dbc00aa9
|
|
| MD5 |
aa760280c9259fed95763a0d660acbd5
|
|
| BLAKE2b-256 |
532ec69f601d66d63b8fab5b6c63439e29c40fefbfa1126e1982d59e4ea85e0f
|
Provenance
The following attestation bundles were made for nnote-0.1.3-py3-none-any.whl:
Publisher:
publish.yml on stiermid/nnote
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nnote-0.1.3-py3-none-any.whl -
Subject digest:
e613a1652a5d5e38692548e8e59f243e1d118b17dcdee00a04eb6517dbc00aa9 - Sigstore transparency entry: 1316875125
- Sigstore integration time:
-
Permalink:
stiermid/nnote@b519610d158f8d0da9c20fc9c061629cd44f712a -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/stiermid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b519610d158f8d0da9c20fc9c061629cd44f712a -
Trigger Event:
release
-
Statement type: