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.2.tar.gz (13.3 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.2-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: noteagator-0.1.2.tar.gz
  • Upload date:
  • Size: 13.3 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.2.tar.gz
Algorithm Hash digest
SHA256 d261f02e8b9e024fc3472394ceb2cd90e361e9deacb2440ddd0ba6c3f26c90a7
MD5 45c6be0c7061231e91d5fa07e9f406dd
BLAKE2b-256 28c99771d273c093eeed7ef5776713163c3d4c3e1f6f59411917d2b6299f246d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: noteagator-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.1 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 27ab96dfac47dcbbcf9927b91e56c03046ffb953baa3d02fd3342948e3e33944
MD5 8988c3cfe6abd8aee54e0a01f744ae1a
BLAKE2b-256 16f84605f5b660b72c9a4d99ccdeaa2c0f8525d9edb076a76115fbd40c2e1958

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