Skip to main content

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.yaml into 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

nnote-0.1.3.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nnote-0.1.3-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

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

Hashes for nnote-0.1.3.tar.gz
Algorithm Hash digest
SHA256 343c592695d018e824617672a777531636bceed3d72798fd6fdac6bdac132111
MD5 ff88800e93a7f3625f2271f910e2704f
BLAKE2b-256 b354a2640552b8cf911121a8951ac12c044302ab955f28373769da50884b51c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for nnote-0.1.3.tar.gz:

Publisher: publish.yml on stiermid/nnote

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for nnote-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e613a1652a5d5e38692548e8e59f243e1d118b17dcdee00a04eb6517dbc00aa9
MD5 aa760280c9259fed95763a0d660acbd5
BLAKE2b-256 532ec69f601d66d63b8fab5b6c63439e29c40fefbfa1126e1982d59e4ea85e0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for nnote-0.1.3-py3-none-any.whl:

Publisher: publish.yml on stiermid/nnote

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page