Nb
CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering, search, Git versioning & syncing, Pandoc conversion, + more, in a single portable script.
Install / Use
/learn @xwmx/NbQuality Score
Category
Development & EngineeringSupported Platforms
README
nb is a command line and local web
note‑taking, bookmarking, archiving,
and knowledge base application
with:
- plain text data storage,
- encryption,
- filtering, pinning, #tagging, and search,
- Git-backed versioning and syncing,
- Pandoc-backed conversion,
- <a href="#-linking">[[wiki-style linking]]</a>,
- terminal and GUI web browsing,
- inline images,
- todos with tasks,
- global and local notebooks,
- organization with folders,
- customizable color themes,
- extensibility through plugins,
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.
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
nbfeatures.
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.
<div align="center"> <img src="https://xwmx.github.io/misc/nb/images/gui-terminal-browse.png" alt="nb browse" width="500"> </div>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 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.
Installation
Dependencies
Required
- Bash
nbworks perfectly with Zsh, fish, and any other shell set as your primary login shell, the system just needs to have Bash available on it.
- Git
- A text editor with command line support, such as:
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
the recommended dependencies above
and completion scripts for Bash, Zsh, and Fish.
Install the latest development version from the repository with:
brew install xwmx/taps/nb --head
nb is also available in
homebrew-core.
Installing it together with the bash formula is recommended:
brew install nb bash
Ubuntu, Windows, and others
npm
npm install -g nb.sh
After npm installation completes, run
sudo "$(which nb)" completions install
to install Bash and Zsh completion scripts (recommended).
On Ubuntu and WSL, you can
run sudo "$(which nb)" env install
to install the optional dependencies.
When nb is installed on Windows,
socat (MSYS,
Cygwin) is recommended.
*nb is also available under its original package name,
notes.sh,
which comes
Related Skills
apple-reminders
328.6kManage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
gh-issues
328.6kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
healthcheck
328.6kHost security hardening and risk-tolerance configuration for OpenClaw deployments
node-connect
328.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
