nb is a free, open source documentation & knowledge base project written in Shell and released under AGPL-3.0. It has 8,406 GitHub stars, 254 forks and 153 open issues, and was last pushed 23 days ago. On this registry it ranks #19 of 40 tracked projects in Documentation & Knowledge Base, with 5 head-to-head comparisons available. It gained 1 stars over the last 3 tracked days.

What is nb?

nb is a command line and local web note-taking, bookmarking, archiving, and knowledge base application distributed as a single portable shell script, aimed at people who want plain text notes, Git-backed history, and local search without a hosted service.

What it is

nb is a note-taking and bookmarking application written in Shell and published under the AGPL-3.0 licence, with 8,408 stars, 254 forks, and 153 open issues on its repository. It occupies the Content & Publishing / Documentation & Knowledge Base category as a CLI-first tool that also serves a local web interface for browsing. Notes are created in text-based formats such as Markdown, Org, LaTeX, and AsciiDoc, and the program can work with files in any format. Authors edit with Vim, Emacs, VS Code, Sublime Text, or any other editor they prefer, and read items in terminal and GUI web browsers. It runs in any standard Linux / Unix environment, including macOS and Windows via WSL, MSYS, and Cygwin, and requires only Bash, Git, and a text editor with command line support.

The concrete problem it solves is the split between a hosted, account-bound note service and a separate bookmark manager. nb replaces that arrangement with plain text files on local disk, versioned automatically in the background by Git, so notes and bookmarks remain readable, editable, and independent of any vendor. Its bookmarking side does the same job for web pages: page information is downloaded, cleaned up, structured, and saved into normal Markdown documents made for humans, which means archived bookmarks can be viewed and edited exactly like any other note rather than living inside a proprietary database. Broken links are handled through Internet Archive Wayback Machine snapshot lookup.

Key capabilities

  • Global and local notebooks, with folders for organization, pinning, #tagging, and filtering.
  • Git-backed revision history, plus syncing of notebooks to remote repositories; notebooks can also be synced with a general purpose utility such as Dropbox.
  • Pandoc-backed import and export, allowing conversion between notes and many document formats.
  • Password-protected encrypted notes and bookmarks.
  • [[wiki-style linking]] between notes, alongside inline images and todos with tasks.
  • Bookmark browsing locally served and distraction-free in terminal and GUI web browsers, with local full-text search of cached page content and regular expression support.
  • Customizable color themes and extensibility through plugins.

Who uses it and how

  • Individuals who keep plain text notes in one notebook with just a few items, and equally those who run dozens of notebooks containing thousands of notes, bookmarks, and other items.
  • Writers and researchers who prefer editing in Vim, Emacs, VS Code, or Sublime Text and want Git to record every change without manual commits.
  • Bookmark collectors who need full-text search over cached page content and Wayback Machine lookups when links rot.
  • Users on Linux, macOS, WSL, MSYS, or Cygwin who want the same toolchain across environments and are willing to rely on Bash and Git.
  • Anyone who wants notes edited in other apps on other devices, using a sync utility such as Dropbox rather than a hosted note service.

Getting started

The entire program is contained within a single well-tested shell script that can be installed, copied, or curled almost anywhere and just work; Bash, Git, and a command-line-capable text editor are the required dependencies, and optional dependencies only enhance functionality. Further installation and usage documentation is published at https://xwmx.github.io/nb.

How it compares

This registry entry provides no list of comparable or paid products that nb replaces, and the supplied facts name no similar tools. On the evidence available, nb stands alone here: its positioning rests on vendor independence, portability, and plain text data storage rather than on parity with any named alternative.

When to use it — and when not to

A self-hoster must supply a Unix-like environment with Bash, Git, and a text editor, and must accept responsibility for notebook storage, Git remotes, and any sync utility they choose; no database or application server is involved. It is a poor fit for people who want a hosted, GUI-first or mobile-first service, or who are unwilling to work from a command line. Honest caveats from the facts: the project carries 153 open issues, encryption relies on passwords the user manages, and enhanced functionality depends on installing optional dependencies that are not part of the single script.

project readme (upstream, from github) — read inline

nb

Build Status

 

nb is a command line and local web note‑taking, bookmarking, archiving, and knowledge base application with:

and more, in a single portable script.

nb creates notes in text-based formats like Markdown, Org, LaTeX, and AsciiDoc, can work with files in any format, can import and export notes to many document formats, and can create private, password-protected encrypted notes and bookmarks. With nb, you can write notes using Vim, Emacs, VS Code, Sublime Text, and any other text editor you like, as well as terminal and GUI web browsers. nb works in any standard Linux / Unix environment, including macOS and Windows via WSL, MSYS, and Cygwin. Optional dependencies can be installed to enhance functionality, but nb works great without them.

home

nb is also a powerful bookmarking system featuring:

  • locally-served, text-centric, distraction-free bookmark browsing in terminal and GUI web browsers,
  • local full-text search of cached page content with regular expression support,
  • convenient filtering and listing,
  • Internet Archive Wayback Machine snapshot lookup for broken links,
  • tagging, pinning, linking, and full integration with other nb features.

Page information is downloaded, cleaned up, structured, and saved into normal Markdown documents made for humans, so bookmarks are easy to view and edit just like any other note.

nb browse

nb uses Git in the background to automatically record changes and sync notebooks with remote repositories. nb can also be configured to sync notebooks using a general purpose syncing utility like Dropbox so notes can be edited in other apps on any device.

nb list empty

nb is designed to be portable, future-focused, and vendor independent, providing a full-featured and intuitive experience within a highly composable multimodal user-centric text interface. The entire program is contained within a single well-tested shell script that can be installed, copied, or curled almost anywhere and just work, using a strategy inspired by progressive enhancement for various experience improvements in more capable environments. nb works great whether you have one notebook with just a few notes or dozens of notebooks containing thousands of notes, bookmarks, and other items. nb makes it easy to incorporate other tools, writing apps, and workflows. nb can be used a little, a lot, once in a while, or for just a subset of features. nb is flexible.

 

📝 🔖 🔍 🌍 🔒 ✅ 🔄 🎨 📚 📌 📂 🌄

 

nb

Installation · Overview  

Help

 ↑ 

Installation

Dependencies
Required
Optional

nb leverages standard command line tools and works in standard Linux / Unix environments. nb also checks the environment for some additional optional tools and uses them to enhance the experience whenever they are available.

Recommended:

Also supported for various enhancements:

Ack, afplay, asciidoctor, The Silver Searcher (ag), catimg, Chafa, Chromium / Chrome, eza, ffplay, ImageMagick, glow, GnuPG, highlight, imgcat, joshuto, kitty's icat kitten, lowdown, lsd, Links, Lynx, mdcat, mdless, mdv, Midnight Commander (mc), mpg123, MPlayer, ncat, netcat, note-link-janitor (via plugin), pdftotext, Pygments, Ranger, readability-cli, rga / ripgrep-all, sc-im, socat, termvisage, termpdf.py, Tidy-Viewer (tv), timg, vifm, viu, VisiData

macOS / Homebrew
brew install xwmx/taps/nb

Installing nb with Homebrew also installs

readme truncated — read the full docs on github

Frequently asked questions

Is nb free to use?

nb is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does nb do?

CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering, search, Git versioning & syncing, Pandoc conversion, + mo

What is nb written in?

nb is primarily written in Shell. Its source is publicly available at https://github.com/xwmx/nb, and it has 8,406 GitHub stars.