Skip to main content

Notebook Navigator a keyboard first note tool

Project description

Notebook Navigator (noteagator)

Notebook Navigator (noteagator) helps you organize, browse, and print collections of plain Markdown notes.
It's built for zero lock-in and a keyboard-first workflow, letting you replace text, copy code, and navigate your notes entirely without the mouse.

install

# recommended
pipx install noteagator

# or with pip
pip install noteagator

Verify:

ngt --help

Debian Users Need xclip

Debian based Linux users will also need to install xclip to use code-copy feature.

sudo apt-get install xclip

Quick Start (2 minutes)

  1. Open your notebook directory in an editor

     code -n "$(ngt show-base)"
    
  2. Create a note (any .md file under your notebook base)

     ---
     description: This is an example note
     placeholders:
         i: foo
     format: slim
     ---
     My Command
     ```
     echo 'foo'
     ```
    
  3. List Notes

     $ ngt ls
     Notebook Directory: /
     1 📄 example.md  - This is an example note
    
  4. Print with replacement and copy code Replace placeholder i with bar and copy the first code block to your clipboard:

     $ ngt print 1 -i 'bar' -c 1
     description: This is an example note
     format: slim
     note: /home/user/.noteagator/notebook/example.md
     placeholders:
     i: foo
     ---
     My Command
     --copy 1 $ echo 'bar'
    

    Your clipboard now contains:

     echo 'bar'
    

Core Concepts

  • Notebook Base - The root directory Noteagator treats as your notebook.
    Set it:

      ngt set-base /path/to/your/notebook
    

    Show it:

      ngt show-base
    
  • Placeholders (YAML front matter) - Declare keys you can swap at print time:
    Run ngt print --help for a list of valid placeholders keys.

      ---
      placeholders:
        i: foo
        d: world
      ---
    

    Then:

      ngt print 3 -i 'bar' -j 'team'
    
  • Formats
    ngt print can render "slim" (great for large notes) or "markdown".

      ngt print 2 --format markdown
    
  • Copy-Code
    -c N copies the Nth fenced code block from the printed note to your clipboard, no mouse needed.

Common Commands (Cheat Sheet)

# set / view notebook
ngt set-base /path/to/notebook
ngt show-base

# explore
ngt ls            # list notes in current directory
ngt ls -R         # list recursively
ngt search netcat # Search Notes for netcat

# print & replace
ngt print 7             # print note #7
ngt print 7 -i value    # replace placeholder 'i'
ngt print 7 -i one -j two --format markdown

# copy code
ngt print 7 -c 1        # copy first code block to clipboard

User Guide

This repo includes a full user guide you can use as your notebook while learning.

$ ngt set-base noteagator/noteagator_user_guide 
$ ngt ls -R                                    
Notebook Directory: /
  1 📁 navigation
    2 📄 1.base.md  - How to define your notebook
    3 📄 2.edit.md  - How to create/edit notes
    4 📄 3.ls.md  - How to list notes
    5 📄 4.cd.md  - How to change directories in a notebook.
  6 📁 printing_notes
    7 📄 1.print.md  - How to print notes
    8 📄 2.copy.md  - How to copy code snipts
    9 📄 3.replace.md  - How to replace placeholders
    10 📄 4.format.md  - How to control print format
  11 📁 yaml_front_matter
    12 📄 description.md  - How to add descriptions to notes
    13 📄 format.md  - How to define note format
    14 📄 placeholders.md  - How to use placeholders in notes

Troubleshooting

  • "No Notes Found"
    Make sure your notebook base is set to a directory that actually contains .md files:

      ngt show-base
      ngt set-base /correct/path
    
  • Clipboard didn't change with -c
    Re-run with -c 1 and confirm the printed note actually has a fenced code block. (If your OS needs clipboard tooling, install one: xclip/xsel on some Linux setups.)

  • Placeholders not replaced Ensure your front matter has a placeholders: map and the key you're passing (like -i) exists.

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

noteagator-0.1.0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

noteagator-0.1.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file noteagator-0.1.0.tar.gz.

File metadata

  • Download URL: noteagator-0.1.0.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.1

File hashes

Hashes for noteagator-0.1.0.tar.gz
Algorithm Hash digest
SHA256 537ec4366e4888c9bc191f5795f3156505d17b519d2fe44ce033d88593611c87
MD5 1530ffee4061c29168138625bb35fa15
BLAKE2b-256 cddf5d839c7d163b46ea1de173aa36de21891fefc50bda7020b67782e0b5c9b6

See more details on using hashes here.

File details

Details for the file noteagator-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: noteagator-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.1

File hashes

Hashes for noteagator-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 91a8711e55e7e8b853f6c81d540ec0647ad6ff8271dc0344605cee4b9e87e205
MD5 2c4074c07e264d227f9c5bc996aaeacf
BLAKE2b-256 1ec0ab1ce7b251b9513b6bbf10baf3410c5ee7a7c43d3193ff3c08a4661209be

See more details on using hashes here.

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