[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10353":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":47,"readmeContent":48,"aiSummary":49,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":50,"discoverSource":51},10353,"nb","xwmx\u002Fnb","xwmx","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.","https:\u002F\u002Fxwmx.github.io\u002Fnb",null,"Shell",8201,252,78,141,0,2,6,48,7,38.21,"GNU Affero General Public License v3.0",false,"master",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"archiving","bash","bookmark-manager","bookmarks","cli","command-line","git","knowledge-base","markdown","note-taking","notebook","notes","notes-app","pandoc","productivity","shell","sync","vim","vscode","zettelkasten","2026-06-12 02:02:20","\u003Cp align=\"center\">\u003C\u002Fp>\u003C!-- spacer -->\n\n\u003Cdiv align=\"center\">\n  \u003Cimg  src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fxwmx\u002Fnb\u002Fmaster\u002Fdocs\u002Fassets\u002Fimages\u002Fnb.png\"\n        alt=\"nb\"\n        width=\"200\">\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\u003C\u002Fp>\u003C!-- spacer -->\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxwmx\u002Fnb\u002Factions\" rel=\"nofollow\">\n    \u003Cimg  src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fxwmx\u002Fnb\u002Ftests.yml?branch=master\"\n          alt=\"Build Status\"\n          style=\"max-width:100%;\">\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">&nbsp;\u003C\u002Fdiv>\u003C!-- spacer -->\n\u003Cbr\u002F>\n\n`nb` is a command line and local web\nnote‑taking, bookmarking, archiving,\nand knowledge base application\nwith:\n\n- plain text data storage,\n- [encryption](#password-protected-encrypted-notes-and-bookmarks),\n- [filtering](#listing--filtering), [pinning](#-pinning), [#tagging](#-tagging), and [search](#-search),\n- [Git](https:\u002F\u002Fgit-scm.com\u002F)-backed [versioning](#-revision-history) and [syncing](#-git-sync),\n- [Pandoc](https:\u002F\u002Fpandoc.org\u002F)-backed [conversion](#%EF%B8%8F-import--export),\n- \u003Ca href=\"#-linking\">[[wiki-style linking]]\u003C\u002Fa>,\n- terminal and GUI web [browsing](#-browsing),\n- inline [images](#-images),\n- [todos](#-todos) with [tasks](#%EF%B8%8F-tasks),\n- global and local [notebooks](#-notebooks),\n- organization with [folders](#-folders),\n- customizable [color themes](#-color-themes),\n- extensibility through [plugins](#-plugins),\n\nand more, in a single portable script.\n\n`nb` creates notes in text-based formats like\n[Markdown](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown),\n[Org](https:\u002F\u002Forgmode.org\u002F),\n[LaTeX](https:\u002F\u002Fwww.latex-project.org\u002F),\nand [AsciiDoc](https:\u002F\u002Fasciidoc.org\u002F),\ncan work with files in any format,\ncan import and export notes to many document formats,\nand can create private, password-protected encrypted notes and bookmarks.\nWith `nb`, you can write notes using\nVim,\nEmacs,\nVS Code,\nSublime Text,\nand any other text editor you like,\nas well as terminal and GUI web browsers.\n`nb` works in any standard Linux \u002F Unix environment,\nincluding macOS and Windows via WSL, MSYS, and Cygwin.\n[Optional dependencies](#optional) can be installed to enhance functionality,\nbut `nb` works great without them.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg  src=\"https:\u002F\u002Fxwmx.github.io\u002Fmisc\u002Fnb\u002Fimages\u002Fnb-theme-nb-home.png\"\n        alt=\"home\"\n        width=\"450\">\n\u003C\u002Fdiv>\n\n`nb` is also a powerful [bookmarking](#-bookmarks) system featuring:\n\n- locally-served, text-centric, distraction-free bookmark [browsing](#-browsing)\n  in terminal and GUI web browsers,\n- local full-text search of cached page content with regular expression support,\n- convenient filtering and listing,\n- [Internet Archive Wayback Machine](https:\u002F\u002Farchive.org\u002Fweb\u002F) snapshot lookup\n  for broken links,\n- tagging, pinning, linking, and full integration with other `nb` features.\n\nPage information is\ndownloaded,\ncleaned up,\nstructured,\nand saved\ninto normal Markdown documents made for humans,\nso bookmarks are easy to view and edit just like any other note.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg  src=\"https:\u002F\u002Fxwmx.github.io\u002Fmisc\u002Fnb\u002Fimages\u002Fgui-terminal-browse.png\"\n        alt=\"nb browse\"\n        width=\"500\">\n\u003C\u002Fdiv>\n\n`nb` uses [Git](https:\u002F\u002Fgit-scm.com\u002F) in the background to\nautomatically record changes and sync notebooks with remote repositories.\n`nb` can also be configured to\nsync notebooks using a general purpose syncing utility like Dropbox\nso notes can be edited in other apps on any device.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg  src=\"https:\u002F\u002Fxwmx.github.io\u002Fmisc\u002Fnb\u002Fimages\u002Fterminal-empty.png\"\n        alt=\"nb list empty\"\n        width=\"450\">\n\u003C\u002Fdiv>\n\n`nb` is designed to be portable, future-focused, and vendor independent,\nproviding a full-featured and intuitive experience within\na highly composable multimodal user-centric text interface.\nThe entire program is contained within\na single [well-tested](#tests) shell script\nthat can be\ninstalled, copied, or `curl`ed almost anywhere and just work,\nusing a strategy inspired by\n[progressive enhancement](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProgressive_enhancement)\nfor various experience improvements in more capable environments.\n`nb` works great whether you have one notebook with just a few notes\nor dozens of notebooks containing thousands of notes, bookmarks, and other items.\n`nb` makes it easy to incorporate other tools, writing apps, and workflows.\n`nb` can be used a little, a lot, once in a while, or for just a subset of features.\n`nb` is flexible.\n\n\u003Cdiv align=\"center\">&nbsp;\u003C\u002Fdiv>\u003C!-- spacer -->\n\n\u003Cdiv align=\"center\">\n  \u003Csub>\n  📝\n  🔖\n  🔍\n  🌍\n  🔒\n  ✅\n  🔄\n  🎨\n  📚\n  📌\n  📂\n  🌄\n  \u003C\u002Fsub>\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">&nbsp;\u003C\u002Fp>\u003C!-- spacer -->\n\n\u003Cdiv align=\"center\">\n  \u003Ch1 align=\"center\" id=\"nb\">\u003Ccode>nb\u003C\u002Fcode>\u003C\u002Fh1>\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"#installation\">Installation\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#overview\">Overview\u003C\u002Fa>&nbsp;&nbsp;\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\u003C\u002Fp>\u003C!-- spacer -->\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"#-help\">Help\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\u003C\u002Fp>\u003C!-- spacer -->\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"#top\">&nbsp;↑&nbsp;\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n### Installation\n\n#### Dependencies\n\n##### Required\n\n- [Bash](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBash_(Unix_shell))\n  - `nb` works perfectly with Zsh, fish, and any other shell\n    set as your primary login shell,\n    the system just needs to have Bash available on it.\n- [Git](https:\u002F\u002Fgit-scm.com\u002F)\n- A text editor with command line support, such as:\n  - [Vim](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVim_\\(text_editor\\)),\n  - [Emacs](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FEmacs),\n  - [Visual Studio Code](https:\u002F\u002Fcode.visualstudio.com\u002F),\n  - [Sublime Text](https:\u002F\u002Fwww.sublimetext.com\u002F),\n  - [Helix](https:\u002F\u002Fhelix-editor.com\u002F),\n  - [micro](https:\u002F\u002Fgithub.com\u002Fzyedidia\u002Fmicro),\n  - [nano](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGNU_nano),\n  - [Atom](https:\u002F\u002Fatom.io\u002F),\n  - [TextMate](https:\u002F\u002Fmacromates.com\u002F),\n  - [MacDown](https:\u002F\u002Fmacdown.uranusjr.com\u002F),\n  - [some of these](https:\u002F\u002Fgithub.com\u002Ftopics\u002Ftext-editor),\n  - [and many of these.](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FList_of_text_editors)\n\n##### Optional\n\n`nb` leverages standard command line tools\nand works in standard Linux \u002F Unix environments.\n`nb` also checks the environment for some additional optional tools and\nuses them to enhance the experience whenever they are available.\n\nRecommended:\n\n- [`bat`](https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fbat)\n- [`ncat`](https:\u002F\u002Fnmap.org\u002Fncat\u002F) or [`socat`](https:\u002F\u002Fwww.kali.org\u002Ftools\u002Fsocat\u002F)\n- [`pandoc`](https:\u002F\u002Fpandoc.org\u002F)\n- [`rg`](https:\u002F\u002Fgithub.com\u002FBurntSushi\u002Fripgrep)\n- [`tig`](https:\u002F\u002Fgithub.com\u002Fjonas\u002Ftig)\n- [`w3m`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FW3m)\n\nAlso supported for various enhancements:\n\n[Ack](https:\u002F\u002Fbeyondgrep.com\u002F),\n[`afplay`](https:\u002F\u002Fss64.com\u002Fosx\u002Fafplay.html),\n[`asciidoctor`](https:\u002F\u002Fasciidoctor.org\u002F),\n[The Silver Searcher (`ag`)](https:\u002F\u002Fgithub.com\u002Fggreer\u002Fthe_silver_searcher),\n[`catimg`](https:\u002F\u002Fgithub.com\u002Fposva\u002Fcatimg),\n[Chafa](https:\u002F\u002Fgithub.com\u002Fhpjansson\u002Fchafa),\n[Chromium](https:\u002F\u002Fwww.chromium.org) \u002F [Chrome](https:\u002F\u002Fwww.google.com\u002Fchrome\u002F),\n[`eza`](https:\u002F\u002Fgithub.com\u002Feza-community\u002Feza),\n[`ffplay`](https:\u002F\u002Fffmpeg.org\u002Fffplay.html),\n[ImageMagick](https:\u002F\u002Fimagemagick.org\u002F),\n[`glow`](https:\u002F\u002Fgithub.com\u002Fcharmbracelet\u002Fglow),\n[GnuPG](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGNU_Privacy_Guard),\n[`highlight`](http:\u002F\u002Fwww.andre-simon.de\u002Fdoku\u002Fhighlight\u002Fen\u002Fhighlight.php),\n[`imgcat`](https:\u002F\u002Fwww.iterm2.com\u002Fdocumentation-images.html),\n[`joshuto`](https:\u002F\u002Fgithub.com\u002Fkamiyaa\u002Fjoshuto),\n[kitty's `icat` kitten](https:\u002F\u002Fsw.kovidgoyal.net\u002Fkitty\u002Fkittens\u002Ficat.html),\n[`lowdown`](https:\u002F\u002Fkristaps.bsd.lv\u002Flowdown),\n[`lsd`](https:\u002F\u002Fgithub.com\u002Flsd-rs\u002Flsd),\n[Links](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinks_(web_browser)),\n[Lynx](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLynx_(web_browser)),\n[`mdcat`](https:\u002F\u002Fgithub.com\u002Fswsnr\u002Fmdcat),\n[`mdless`](https:\u002F\u002Fgithub.com\u002Fttscoff\u002Fmdless),\n[`mdv`](https:\u002F\u002Fgithub.com\u002Faxiros\u002Fterminal_markdown_viewer),\n[Midnight Commander (`mc`)](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMidnight_Commander),\n[`mpg123`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMpg123),\n[MPlayer](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMPlayer),\n[`ncat`](https:\u002F\u002Fnmap.org\u002Fncat\u002F),\n[`netcat`](https:\u002F\u002Fnetcat.sourceforge.net\u002F),\n[note-link-janitor](https:\u002F\u002Fgithub.com\u002Fandymatuschak\u002Fnote-link-janitor)\n(via [plugin](https:\u002F\u002Fgithub.com\u002Fxwmx\u002Fnb\u002Fblob\u002Fmaster\u002Fplugins\u002Fbacklink.nb-plugin)),\n[`pdftotext`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPdftotext),\n[Pygments](https:\u002F\u002Fpygments.org\u002F),\n[Ranger](https:\u002F\u002Franger.github.io\u002F),\n[readability-cli](https:\u002F\u002Fgitlab.com\u002Fgardenappl\u002Freadability-cli),\n[`rga` \u002F ripgrep-all](https:\u002F\u002Fgithub.com\u002Fphiresky\u002Fripgrep-all),\n[`sc-im`](https:\u002F\u002Fgithub.com\u002Fandmarti1424\u002Fsc-im),\n[`socat`](https:\u002F\u002Fwww.kali.org\u002Ftools\u002Fsocat\u002F),\n[`termvisage`](https:\u002F\u002Fgithub.com\u002FAnonymouX47\u002Ftermvisage),\n[`termpdf.py`](https:\u002F\u002Fgithub.com\u002Fdsanson\u002Ftermpdf.py),\n[Tidy-Viewer (`tv`)](https:\u002F\u002Fgithub.com\u002Falexhallam\u002Ftv),\n[`timg`](https:\u002F\u002Fgithub.com\u002Fhzeller\u002Ftimg),\n[vifm](https:\u002F\u002Fvifm.info\u002F),\n[`viu`](https:\u002F\u002Fgithub.com\u002Fatanunq\u002Fviu),\n[VisiData](https:\u002F\u002Fwww.visidata.org\u002F)\n\n#### macOS \u002F Homebrew\n\n```bash\nbrew install xwmx\u002Ftaps\u002Fnb\n```\n\nInstalling `nb` with Homebrew also installs\nthe recommended dependencies above\nand completion scripts for Bash, Zsh, and Fish.\n\nInstall the latest development version from the repository with:\n\n```bash\nbrew install xwmx\u002Ftaps\u002Fnb --head\n```\n\n`nb` is also available in\n[homebrew-core](https:\u002F\u002Fgithub.com\u002FHomebrew\u002Fhomebrew-core).\nInstalling it together with the `bash` formula is recommended:\n\n```bash\nbrew install nb bash\n```\n\n#### Ubuntu, Windows, and others\n\n##### npm\n\n```bash\nnpm install -g nb.sh\n```\n\nAfter `npm` installation completes, run\n`sudo \"$(which nb)\" completions install`\nto install Bash and Zsh completion scripts (recommended).\n\nOn Ubuntu and WSL, you can\nrun [`sudo \"$(which nb)\" env install`](#env)\nto install the optional dependencies.\n\nWhen `nb` is installed on Windows,\n`socat` ([MSYS](https:\u002F\u002Fpackages.msys2.org\u002Fpackage\u002Fsocat),\n[Cygwin](https:\u002F\u002Fcygwin.com\u002Fpackages\u002Fsummary\u002Fsocat.html)) is recommended.\n\n*`nb` is also available under its original package name,\n[notes.sh](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fnotes.sh),\nwhich comes with an extra `notes` executable wrapping `nb`.*\n\n##### Download and Install\n\nTo install as an administrator,\ncopy and paste one of the following multi-line commands:\n\n```bash\n# install using wget\nsudo wget https:\u002F\u002Fraw.github.com\u002Fxwmx\u002Fnb\u002Fmaster\u002Fnb -O \u002Fusr\u002Flocal\u002Fbin\u002Fnb &&\n  sudo chmod +x \u002Fusr\u002Flocal\u002Fbin\u002Fnb &&\n  sudo nb completions install --download\n\n# install using curl\nsudo curl -L https:\u002F\u002Fraw.github.com\u002Fxwmx\u002Fnb\u002Fmaster\u002Fnb -o \u002Fusr\u002Flocal\u002Fbin\u002Fnb &&\n  sudo chmod +x \u002Fusr\u002Flocal\u002Fbin\u002Fnb &&\n  sudo nb completions install --download\n```\n\nOn Ubuntu and WSL, you can\nrun [`sudo nb env install`](#env) to install the optional dependencies.\n\n###### User-only Installation\n\nTo install with just user permissions, simply\nadd the `nb` script to your `$PATH`.\nIf you already have a `~\u002Fbin` directory, for example, you can\nuse one of the following commands:\n\n```bash\n# download with wget\nwget https:\u002F\u002Fraw.github.com\u002Fxwmx\u002Fnb\u002Fmaster\u002Fnb -O ~\u002Fbin\u002Fnb && chmod +x ~\u002Fbin\u002Fnb\n\n# download with curl\ncurl -L https:\u002F\u002Fraw.github.com\u002Fxwmx\u002Fnb\u002Fmaster\u002Fnb -o ~\u002Fbin\u002Fnb && chmod +x ~\u002Fbin\u002Fnb\n```\n\nInstalling with just user permissions doesn't include\nthe optional dependencies or completions,\nbut `nb` core functionality works without them.\nIf you have `sudo` access and want\nto install the completion scripts and dependencies, run the following command:\n\n```bash\nsudo nb env install\n```\n\n##### Make\n\nTo install with [Make](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMake_(software)),\nclone this repository, navigate to the clone's root directory, and run:\n\n```bash\nsudo make install\n```\n\nThis will also install the completion scripts on all systems and\nthe recommended dependencies on Ubuntu and WSL.\n\n##### bpkg\n\nTo install with [bpkg](https:\u002F\u002Fgithub.com\u002Fbpkg\u002Fbpkg):\n\n```bash\nbpkg install xwmx\u002Fnb\n```\n\n##### basher\n\nTo install with [basher](https:\u002F\u002Fwww.basher.it\u002F):\n\n```bash\nbasher install xwmx\u002Fnb\n```\n\n#### Tab Completion\n\nBash, Fish, and Zsh tab completion should be enabled\nwhen `nb` is installed using the methods above,\nassuming you have the appropriate system permissions or installed with `sudo`.\nIf completion isn't working after installing `nb`, see the\n[completion installation instructions](https:\u002F\u002Fgithub.com\u002Fxwmx\u002Fnb\u002Ftree\u002Fmaster\u002Fetc).\n\n#### Updating\n\nWhen `nb` is installed using a package manager like npm or Homebrew,\nuse the package manager's upgrade functionality to update `nb` to\nthe latest version.\nWhen installed via other methods,\n`nb` can be updated to the latest version using\nthe [`nb update`](#update) subcommand.\n\n## Overview\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"#-notes\">\u003Ccode>📝\u003C\u002Fcode>&nbsp;Notes\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#adding\">Adding\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#listing--filtering\">Listing\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#editing\">Editing\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#viewing\">Viewing\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#deleting\">Deleting\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-bookmarks\">\u003Ccode>🔖\u003C\u002Fcode>&nbsp;Bookmarks\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-todos\">\u003Ccode>✅\u003C\u002Fcode>&nbsp;Todos\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#%EF%B8%8F-tasks\">\u003Ccode>✔️\u003C\u002Fcode>&nbsp;Tasks\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-tagging\">\u003Ccode>🏷\u003C\u002Fcode>&nbsp;Tagging\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-linking\">\u003Ccode>🔗\u003C\u002Fcode>&nbsp;Linking\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-browsing\">\u003Ccode>🌍\u003C\u002Fcode>&nbsp;Browsing\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-images\">\u003Ccode>🌄\u003C\u002Fcode>&nbsp;Images\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-zettelkasten\">\u003Ccode>🗂\u003C\u002Fcode>&nbsp;Zettelkasten\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-folders\">\u003Ccode>📂\u003C\u002Fcode>&nbsp;Folders\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-pinning\">\u003Ccode>📌\u003C\u002Fcode>&nbsp;Pinning\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-search\">\u003Ccode>🔍\u003C\u002Fcode>&nbsp;Search\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-moving--renaming\">\u003Ccode>↔\u003C\u002Fcode>&nbsp;Moving&nbsp;&&nbsp;Renaming\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-revision-history\">\u003Ccode>🗒\u003C\u002Fcode>&nbsp;History\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-notebooks\">\u003Ccode>📚\u003C\u002Fcode>&nbsp;Notebooks\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-git-sync\">\u003Ccode>🔄\u003C\u002Fcode>&nbsp;Git&nbsp;Sync\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#%EF%B8%8F-import--export\">\u003Ccode>↕️\u003C\u002Fcode>&nbsp;Import&nbsp;\u002F&nbsp;Export\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#%EF%B8%8F-set--settings\">\u003Ccode>⚙️\u003C\u002Fcode>\u003Ccode>set\u003C\u002Fcode>&\u003Ccode>settings\u003C\u002Fcode>\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-color-themes\">\u003Ccode>🎨\u003C\u002Fcode>&nbsp;Color&nbsp;Themes\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-plugins\">\u003Ccode>🔌\u003C\u002Fcode>&nbsp;Plugins\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-selectors\">\u003Ccode>:\u002F\u003C\u002Fcode>&nbsp;Selectors\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#01-metadata\">\u003Ccode>01\u003C\u002Fcode>&nbsp;Metadata\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-interactive-shell\">\u003Ccode>❯\u003C\u002Fcode>&nbsp;Shell\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#shortcut-aliases\">Shortcuts\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-help\">\u003Ccode>?\u003C\u002Fcode>&nbsp;Help\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#-variables\">\u003Ccode>$\u003C\u002Fcode>&nbsp;Variables\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#specifications\">Specifications\u003C\u002Fa>&nbsp;·\n  \u003Ca href=\"#tests\">Tests\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\u003C\u002Fp>\u003C!-- spacer -->\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"#nb\">&nbsp;↑&nbsp;\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\u003C\u002Fp>\u003C!-- spacer -->\n\nTo get started, simply run:\n\n```bash\nnb\n```\n\n`nb` sets up your initial `home` notebook the first time it runs.\n\nBy default, notebooks and notes are global (at `~\u002F.nb`),\nso they are always available to `nb`\nregardless of the current working directory.\n`nb` also supports [local notebooks](#global-and-local-notebooks).\n\n### 📝 Notes\n\n#### Adding\n\n\u003Cp>\n  \u003Csup>\n    \u003Ca href=\"#overview\">↑\u003C\u002Fa> ·\n    \u003Ca href=\"#add\">\u003Ccode>nb add\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#browse\">\u003Ccode>nb browse add\u003C\u002Fcode>\u003C\u002Fa>\n  \u003C\u002Fsup>\n\u003C\u002Fp>\n\nUse [`nb add`](#add) (shortcuts: [`nb a`](#add), [`nb +`](#add))\nto create new notes:\n\n```bash\n# create a new note in your text editor\nnb add\n\n# create a new note with the filename \"example.md\"\nnb add example.md\n\n# create a new note containing \"This is a note.\"\nnb add \"This is a note.\"\n\n# create a new note with piped content\necho \"Note content.\" | nb add\n\n# create a new password-protected, encrypted note titled \"Secret Document\"\nnb add --title \"Secret Document\" --encrypt\n\n# create a new note in the notebook named \"example\"\nnb example:add \"This is a note.\"\n\n# create a new note in the folder named \"sample\"\nnb add sample\u002F\n```\n\n[`nb add`](#add) with no arguments or input will open the new, blank note\nin your environment's preferred text editor.\nYou can change your editor using\nthe `$EDITOR` environment variable\nor [`nb set editor`](#editor).\n\n`nb` files are [Markdown](https:\u002F\u002Fdaringfireball.net\u002Fprojects\u002Fmarkdown\u002F)\nfiles by default. The default file type can be changed to\nwhatever you like\nusing [`nb set default_extension`](#default_extension).\n\n[`nb add`](#add) has intelligent argument parsing\nand behaves differently depending on the types of arguments it receives.\nWhen a filename with extension is specified,\na new note with that filename is opened in the editor:\n\n```bash\nnb add example.md\n```\n\nWhen a string is specified, a new note is immediately created\nwith that string as the content and without opening the editor:\n\n```bash\n❯ nb add \"This is a note.\"\nAdded: [1] 20200101000000.md\n```\n\n[`nb add \u003Cstring>`](#add) is useful for quickly jotting down notes directly\nvia the command line. Quoting content is optional, but recommended.\n\nWhen no filename is specified, [`nb add`](#add) uses the current datetime as\nthe filename.\n\n[`nb add`](#add) can also receive piped content, which behaves the same as\n[`nb add \u003Cstring>`](#add):\n\n```bash\n# create a new note containing \"Note content.\"\n❯ echo \"Note content.\" | nb add\nAdded: [6] 20200101000100.md\n\n# create a new note containing the clipboard contents on macOS\n❯ pbpaste | nb add\nAdded: [7] 20200101000200.md\n\n# create a new note containing the clipboard contents using xclip\n❯ xclip -o | nb add\nAdded: [8] 20200101000300.md\n```\n\nContent can be passed with the [`--content \u003Ccontent>`](#add) option,\nwhich also creates a new note without opening the editor:\n\n```bash\nnb add --content \"Note content.\"\n```\n\nWhen content is piped,\nspecified with [`--content \u003Ccontent>`](#add),\nor passed as a string argument,\nuse the [`--edit`](#add) flag to open the file in the editor\nbefore the change is committed.\n\nThe title, filename, and content can also be specified with long and\nshort options:\n\n```bash\n❯ nb add --filename \"example.md\" -t \"Example Title\" -c \"Example content.\"\nAdded: [9] example.md \"Example Title\"\n```\n\nThe [`-t \u003Ctitle>`](#add) \u002F [`--title \u003Ctitle>`](#add) option also\nsets the filename to the title,\nlowercased with spaces and non-filename characters replaced with underscores:\n\n```bash\n❯ nb add --title \"Example Title\" \"Example content.\"\nAdded: [10] example_title.md \"Example Title\"\n```\n\nTags can be added with the [`--tags \u003Ctag1>,\u003Ctag2>...`](#add) option, which\ntakes a comma separated list of tags,\nconverts them to [#hashtags](#-tagging),\nand inserts them between the title and content:\n\n```bash\n❯ nb add \"Example content.\" --title \"Tagged Example\" --tags tag1,tag2\nAdded: [11] tagged_example.md \"Tagged Example\"\n\n❯ nb show 11 --print\n# Tagged Example\n\n#tag1 #tag2\n\nExample content.\n```\n\n[Search](#-search) for tagged items with\n[`nb search`](#search) \u002F [`nb q`](#search):\n\n```bash\n# search for items tagged with \"#tag1\"\nnb search --tag tag1\n\n# search for items tagged with \"#tag1\" AND \"#tag2\", short options\nnb q -t tag1 -t tag2\n\n# search for items tagged with \"#tag1\" OR \"#tag2\", arguments\nnb q \\#tag1 --or \\#tag2\n```\n\nFiles can be created with any file type by specifying the extension either\nin the filename (`example.md`),\nthe extension by itself (`.md`),\nor via the [`--type \u003Ctype>`](#add) option (`--type md`):\n\n```bash\n# open a new Org file in the editor\nnb add example.org\n\n# open a new reStructuredText file in the editor\nnb add --type rst\n\n# open a new JavaScript file in the editor\nnb add .js\n```\n\nCombining a type argument with piped clipboard content provides\na very convenient way to save code snippets using a clipboard utility such as\n`pbpaste`,\n`xclip`,\nor [`pb`](https:\u002F\u002Fgithub.com\u002Fxwmx\u002Fpb):\n\n```bash\n# save the clipboard contents as a JavaScript file in the current notebook\npb | nb add .js\n\n# save the clipboard contents as a Rust file in the \"rust\" notebook\n# using the shortcut alias `nb a`\npb | nb a rust: .rs\n\n# save the clipboard contents as a Haskell file named \"example.hs\" in the\n# \"snippets\" notebook using the shortcut alias `nb +`\npb | nb + snippets: example.hs\n```\n\nUse [`nb show`](#show) and [`nb browse`](#browse) to view code snippets\nwith automatic syntax highlighting and\nuse [`nb edit`](#edit) to open in your editor.\n\nThe [`clip` plugin](#clip) can also be used to\ncreate notes from clipboard content.\n\nPiping,\n[`--title \u003Ctitle>`](#add),\n[`--tags \u003Ctag-list>`](#add),\n[`--content \u003Ccontent>`](#add),\nand content passed in an argument\ncan be combined as needed\nto create notes with content from multiple input methods and sources\nusing a single command:\n\n```bash\n❯ pb | nb add \"Argument content.\" \\\n    --title   \"Sample Title\"      \\\n    --tags    tag1,tag2           \\\n    --content \"Option content.\"\nAdded: [12] sample_title.md \"Sample Title\"\n\n❯ nb show 12 --print\n# Sample Title\n\n#tag1 #tag2\n\nArgument content.\n\nOption content.\n\nClipboard content.\n```\n\nFor a full list of options available for [`nb add`](#add), run\n[`nb help add`](#add).\n\n##### Password-Protected Encrypted Notes and Bookmarks\n\nPassword-protected notes and [bookmarks](#-bookmarks) are\ncreated with the [`-e`](#add) \u002F [`--encrypt`](#add) flag and\nencrypted with AES-256 using OpenSSL by default.\nGPG is also supported and can be configured with\n[`nb set encryption_tool`](#encryption_tool).\n\nEach protected note and bookmark is\nencrypted individually with its own password.\nWhen an encrypted item is viewed, edited, or opened,\n`nb` will simply prompt for the item's password before proceeding.\nAfter an item is edited,\n`nb` automatically re-encrypts it and saves the new version.\n\nEncrypted notes can be decrypted\nusing the OpenSSL and GPG command line tools directly, so\nyou aren't dependent on `nb` to decrypt your files.\n\n##### Templates\n\nCreate a note based on a template by assigning a template string\nor path to a template file with [`add --template \u003Ctemplate>`](#add):\n\n\u003C!-- {% raw %} -->\n```bash\n# create a new note based on a template specified by path\nnb add --template \u002Fpath\u002Fto\u002Fexample\u002Ftemplate\n\n# create a new note based on a template defined as a string\nnb add --template \"{{title}} • {{content}}\"\n```\n\u003C!-- {% endraw %} -->\n\n`nb` template tags are enclosed in double curly brackets.\nSupported tags include:\n\n\u003Cdl>\n  \u003Cdt>\u003Ccode>&#x007B;{title}}\u003C\u002Fcode>\u003C\u002Fdt>\n  \u003Cdd>The note title, as specified with\n  \u003Ca href=\"#add\">\u003Ccode>add --title &#60;title>\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Fdd>\n  \u003Cdt>\u003Ccode>&#x007B;&#x007B;tags}}\u003C\u002Fcode>\u003C\u002Fdt>\n  \u003Cdd>A list of hashtags, as specified with\n  \u003Ca href=\"#add\">\u003Ccode>add --tags &#60;tag1>,&#60;tag2>\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Fdd>\n  \u003Cdt>\u003Ccode>&#x007B;{content}}\u003C\u002Fcode>\u003C\u002Fdt>\n  \u003Cdd>The note content, as specified with\n  \u003Ca href=\"#add\">\u003Ccode>add &#60;content>\u003C\u002Fcode>\u003C\u002Fa>,\n  \u003Ca href=\"#add\">\u003Ccode>add --content &#60;content>\u003C\u002Fcode>\u003C\u002Fa>,\n  and piped content.\u003C\u002Fdd>\n  \u003Cdt>\u003Ccode>&#x007B;{date}}\u003C\u002Fcode>\u003C\u002Fdt>\n  \u003Cdd>The ouput of the system's \u003Ccode>date\u003C\u002Fcode> command. Use the\n  \u003Ca href=\"https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman1\u002Fdate.1.html\">\u003Ccode>date\u003C\u002Fcode>\n  command options\u003C\u002Fa> to control formatting, e.g.,\n  \u003Ccode>&#x007B;{date +\"%Y-%m-%d\"}}\u003C\u002Fcode>.\n \u003C\u002Fdd>\n\u003C\u002Fdl>\n\nAn example complete markdown template could look like the following:\n\n\u003C!-- {% raw %} -->\n```\n# {{title}}\n\n{{date +\"%Y-%m-%d\"}}\n\n{{tags}}\n\n{{content}}\n```\n\u003C!-- {% endraw %} -->\n\nTemplates are Bash strings processed with `eval`, so you can use\ncommand substitution (`$(echo \"Example command\")`) to include\nthe output from command line tools and shell code.\n\nA default template can be configured by assigning a string or path\nto the [`$NB_DEFAULT_TEMPLATE`](#nb_default_template) variable\nin your `~\u002F.nbrc` file:\n\n\u003C!-- {% raw %} -->\n```bash\n# set the default template to a path\nexport NB_DEFAULT_TEMPLATE=\"\u002Fpath\u002Fto\u002Fexample\u002Ftemplate\"\n\n# set the default template with a string\nexport NB_DEFAULT_TEMPLATE=\"{{title}} • {{content}}\"\n```\n\u003C!-- {% endraw %} -->\n\nUse [`nb add --no-template`](#add) to skip using a template when\none is assigned.\n\n##### Shortcut Aliases: `nb a`, `nb +`\n\n`nb` includes shortcuts for many commands, including\n[`nb a`](#add) and [`nb +`](#add) for [`nb add`](#add):\n\n```bash\n# create a new note in your text editor\nnb a\n\n# create a new note with the filename \"example.md\"\nnb a example.md\n\n# create a new note containing \"This is a note.\"\nnb + \"This is a note.\"\n\n# create a new note containing the clipboard contents with xclip\nxclip -o | nb +\n\n# create a new note in the notebook named \"example\"\nnb example:a\n```\n\n##### Other Aliases: `nb create`, `nb new`\n\n[`nb add`](#add) can also be invoked with\n[`nb create`](#add) and [`nb new`](#add) for convenience:\n\n```bash\n# create a new note containing \"Example note content.\"\nnb new \"Example note content.\"\n\n# create a new note with the title \"Example Note Title\"\nnb create --title \"Example Note Title\"\n```\n\n##### Adding with `nb browse`\n\nItems can also be added within terminal and GUI web browsers using\n[`nb browse add`](#browse) \u002F [`nb b a`](#browse):\n\n```bash\n❯ nb browse add\n❯nb · home : +\n\n[                                                     ]\n[                                                     ]\n[                                                     ]\n[                                                     ]\n[                                                     ]\n[                                                     ]\n[                                                     ]\n[                                                     ]\n[                                                     ]\n[                                                     ]\n\n[add]\n```\n\nPass a filename, relative path, and \u002F or notebook name to\ncreate a new note at that location:\n\n```bash\n# open the add form in the browser to create the file \"file.md\" in the folder \"example\"\nnb browse add \"example\u002Ffile.md\"\n```\n\n[`nb browse add`](#browse) includes options for quickly\npre-populating new notes with content:\n\n```bash\n❯ nb browse add --title \"Example Title\" --content \"Example content.\" --tags tag1,tag2\n❯nb · home : +\n\n[# Example Title                                      ]\n[                                                     ]\n[#tag1 #tag2                                          ]\n[                                                     ]\n[Example content.                                     ]\n[                                                     ]\n[                                                     ]\n[                                                     ]\n[                                                     ]\n[                                                     ]\n\n[add]\n```\n\n[`nb browse add`](#browse) can also be opened with\n[`nb add --browse`](#add) \u002F [`nb a -b`](#add).\n\nFor more information, see [Browsing](#-browsing).\n\n#### Listing & Filtering\n\n\u003Cp>\n  \u003Csup>\n    \u003Ca href=\"#overview\">↑\u003C\u002Fa> ·\n    \u003Ca href=\"#ls\">\u003Ccode>nb ls\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#list\">\u003Ccode>nb list\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#browse\">\u003Ccode>nb browse\u003C\u002Fcode>\u003C\u002Fa>\n  \u003C\u002Fsup>\n\u003C\u002Fp>\n\nTo list notes and notebooks, run [`nb ls`](#ls) (shortcut alias: `nb`):\n\n\u003Cdiv align=\"center\">\n  \u003Cimg  src=\"https:\u002F\u002Fxwmx.github.io\u002Fmisc\u002Fnb\u002Fimages\u002Fnb-theme-utility-home.png\"\n        alt=\"nb ls\"\n        width=\"450\">\n\u003C\u002Fdiv>\n\nNotebooks are listed above the line,\nwith the current notebook highlighted and\u002For underlined,\ndepending on terminal capabilities.\n[`nb ls`](#ls) also includes a footer with example commands for easy reference.\nThe notebook header and command footer can be configured or hidden with\n[`nb set header`](#header) and\n[`nb set footer`](#footer).\n\n```bash\n❯ nb ls\nhome\n----\n[3] example.md · \"Example content.\"\n[2] sample.md · \"Sample content.\"\n[1] demo.md · \"- Demo list item one.\"\n```\n\nNotes from the current notebook are listed in the order they were last modified.\nBy default, each note is listed with its\nid, filename, and an excerpt from the first line of the note.\nWhen a note has a title, the title is displayed\ninstead of the filename and first line.\n\nMarkdown titles can be defined within a note using\n[either Markdown `h1` style](https:\u002F\u002Fdaringfireball.net\u002Fprojects\u002Fmarkdown\u002Fsyntax#header)\nor [YAML front matter](#front-matter):\n\n```markdown\n# Example Title\n```\n\n```markdown\nSample Title\n============\n```\n\n```markdown\n---\ntitle: Demo Title\n---\n```\n\n[Org](https:\u002F\u002Forgmode.org\u002F),\n[LaTeX](https:\u002F\u002Fwww.latex-project.org\u002F),\nand [AsciiDoc](https:\u002F\u002Fasciidoc.org\u002F)\ntitles are recognized in `.org`,`.latex`, and `.asciidoc` \u002F `.adoc` files:\n\n```text\n#+title: Example Org Title\n```\n\n```latex\n\\title{Example LaTeX Title}\n```\n\n```asciidoc\n= Example AsciiDoc Title\n```\n\nOnce defined, titles are displayed in place of the filename and first line\nin the output of [`nb ls`](#ls):\n\n```bash\n❯ nb ls\nhome\n----\n[3] Example Title\n[2] Sample Title\n[1] Demo Title\n```\n\nPass an id, filename, or title to view the listing for that note:\n\n```bash\n❯ nb ls Sample\\ Title\n[2] Sample Title\n\n❯ nb ls 3\n[3] Example Title\n```\n\nIf there is no exact match, `nb` will list items with\ntitles and filenames that fuzzy match the query:\n\n```bash\n❯ nb ls exa\n[3] Example Title\n\n❯ nb ls ample\n[3] Example Title\n[2] Sample Title\n```\n\nMultiple words act like an `OR` filter, listing any\ntitles or filenames that match any of the words:\n\n```bash\n❯ nb ls example demo\n[3] Example Title\n[1] Demo Title\n```\n\nWhen multiple words are quoted, filter titles and filenames for that phrase:\n\n```bash\n❯ nb ls \"example title\"\n[3] Example Title\n```\n\nFor full text search, see [Search](#-search).\n\nTo view excerpts of notes, use the [`--excerpt`](#ls) or [`-e`](#ls) option,\nwhich optionally accepts a length:\n\n```bash\n❯ nb ls 3 --excerpt\n[3] Example Title\n-----------------\n# Example Title\n\nThis is an example excerpt.\n\n❯ nb ls 3 -e 8\n[3] Example Title\n-----------------\n# Example Title\n\nThis is an example excerpt.\n\nMore example content:\n\n- one\n- two\n```\n\nSeveral classes of file types are represented with emoji\n[indicators](#indicators) to make them easily identifiable in lists.\nFor example, bookmarks and encrypted notes are listed with `🔖` and `🔒`:\n\n```bash\n❯ nb ls\nhome\n----\n[4] Example Note\n[3] 🔒 encrypted-note.md.enc\n[2] 🔖 Example Bookmark (example.com)\n[1] 🔖 🔒 encrypted.bookmark.md.enc\n```\n\nFile types include:\n\n```text\n 🔉  Audio\n 📖  Book\n 🔖  Bookmark\n 🔒  Encrypted\n 📂  Folder\n 🌄  Image\n 📄  PDF, Word, or Open Office document\n 📹  Video\n```\n\nBy default, items are listed starting with the most recently modified.\nTo reverse the order, use the [`-r`](#ls) or [`--reverse`](#ls) flag:\n\n```bash\n❯ nb ls\nhome\n----\n[2] Todos\n[3] Example Title\n[1] Ideas\n\n❯ nb ls --reverse\n[1] Ideas\n[3] Example Title\n[2] Todos\n```\n\nNotes can be sorted with the [`-s`](#ls) \u002F [`--sort`](#ls) flag,\nwhich can be combined with [`-r`](#ls) \u002F [`--reverse`](#ls):\n\n```bash\n❯ nb ls\nhome\n----\n[2] Sample Title\n[3] Example Title\n[1] Demo Title\n\n❯ nb ls --sort\n[1] Demo Title\n[2] Sample Title\n[3] Example Title\n\n❯ nb ls --sort --reverse\n[3] Example Title\n[2] Sample Title\n[1] Demo Title\n```\n\n`nb` with no subcommand behaves like an alias for [`nb ls`](#ls),\nso the examples above can be run without the `ls`:\n\n```bash\n❯ nb\nhome\n----\n[2] Sample Title\n[3] Example Title\n[1] Demo Title\n\n❯ nb example\n[3] Example Title\n\n❯ nb 3 --excerpt\n[3] Example Title\n-----------------\n# Example Title\n\nThis is an example excerpt.\n\n❯ nb 3 -e 8\n[3] Example Title\n-----------------\n# Example Title\n\nThis is an example excerpt.\n\nMore example content:\n\n- one\n- two\n\n❯ nb --sort\n[1] Demo Title\n[2] Sample Title\n[3] Example Title\n\n❯ nb --sort --reverse\n[3] Example Title\n[2] Sample Title\n[1] Demo Title\n```\n\nShort options can be combined for brevity:\n\n```bash\n# equivalent to `nb --sort --reverse --excerpt 2` and `nb -s -r -e 2`:\n❯ nb -sre 2\n[3] Example Title\n-----------------\n# Example Title\n\n[2] Sample Title\n----------------\nSample Title\n============\n[1] Demo Title\n--------------\n---\ntitle: Demo Title\n```\n\n`nb` and [`nb ls`](#ls) display the 15 most recently modified items.\nThe default limit can be changed with [`nb set limit \u003Cnumber>`](#limit).\nTo list a different number of items on a per-command basis, use the\n[`-n \u003Climit>`](#ls),\n[`--limit \u003Climit>`](#ls),\n[`--\u003Climit>`](#ls),\n[`-a`](#ls),\nand [`--all`](#ls)\nflags:\n\n```bash\n❯ nb -n 1\nhome\n----\n[5] Example Five\n4 omitted. 5 total.\n\n❯ nb --limit 2\nhome\n----\n[5] Example Five\n[4] Example Four\n3 omitted. 5 total.\n\n❯ nb --3\nhome\n----\n[5] Example Five\n[4] Example Four\n[3] Example Three\n2 omitted. 5 total.\n\n❯ nb --all\nhome\n----\n[5] Example Five\n[4] Example Four\n[3] Example Three\n[2] Example Two\n[1] Example One\n```\n\nLists can be paginated with\n[`-p \u003Cnumber>`](#ls) \u002F [`--page \u003Cnumber>`](#ls),\nwhich paginates by the value of [`nb set limit`](#limit) by\ndefault, or the value of\n[`-n \u003Climit>`](#ls),\n[`--limit \u003Climit>`](#ls),\nor [`--\u003Climit>`](#ls)\nwhen present:\n\n```bash\n❯ nb\nhome\n----\n[6] Example Six\n[5] Example Five\n[4] Example Four\n[3] Example Three\n[2] Example Two\n[1] Example One\n\n❯ nb set limit 3\nNB_LIMIT set to 3\n\n❯ nb --page 1\n[6] Example Six\n[5] Example Five\n[4] Example Four\n\n❯ nb -p 2\n[3] Example Three\n[2] Example Two\n[1] Example One\n\n❯ nb -p 2 --limit 2\n[4] Example Four\n[3] Example Three\n\n❯ nb -p 3 --2\n[2] Example Two\n[1] Example One\n```\n\nList [#tagged](#tagging) items by passing `\\#escaped` or `\"#quoted\"` hashtags\nor tags specified with the [`--tags`](#ls) option. Multiple tags perform an\n`AND` query:\n\n```bash\n# list items in the current notebook tagged with \"#tag1\", escaped\nnb \\#tag1\n\n# list items in the \"example\" notebook tagged with \"#tag2\", quoted\nnb example: \"#tag2\"\n\n# list items in all notebooks tagged with \"#tag1\", long option\nnb \\#tag1 --all\n\n# list items in the current notebook tagged with \"#tag1\" AND \"#tag2\"\nnb \\#tag1 \"#tag2\"\n\n# list items in all notebooks tagged with \"#tag2\" AND \"#tag3\", short option\nnb --tags tag2,tag3 -a\n```\n\n[`nb ls`](#ls) is a combination of\n[`nb notebooks`](#notebooks) and [`nb list`](#list)\nin one view and accepts the same arguments as [`nb list`](#list),\nwhich lists only notes without the notebook list and with no limit by default:\n\n```bash\n❯ nb list\n[100] Example One Hundred\n[99]  Example Ninety-Nine\n[98]  Example Ninety-Eight\n... lists all notes ...\n[2]   Example Two\n[1]   Example One\n```\n\nFor more information about options for listing notes, run\n[`nb help ls`](#ls)\nand\n[`nb help list`](#list).\n\n##### Listing with `browse`\n\nItems can be listed within terminal and GUI web browsers using\n[`nb browse`](#browse) \u002F [`nb b`](#browse):\n\n```bash\n❯ nb browse example:sample\u002Fdemo\u002F\n❯nb · example : sample \u002F demo \u002F +\n\nsearch: [                    ]\n\n[example:sample\u002Fdemo\u002F7] Title Seven\n[example:sample\u002Fdemo\u002F6] Title Six\n[example:sample\u002Fdemo\u002F5] Title Five\n[example:sample\u002Fdemo\u002F4] Title Four\n[example:sample\u002Fdemo\u002F3] Title Three\n\nnext ❯\n```\n\nFor more information, see [Browsing](#-browsing).\n\n#### Editing\n\n\u003Cp>\n  \u003Csup>\n    \u003Ca href=\"#overview\">↑\u003C\u002Fa> ·\n    \u003Ca href=\"#edit\">\u003Ccode>nb edit\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#browse\">\u003Ccode>nb browse edit\u003C\u002Fcode>\u003C\u002Fa>\n  \u003C\u002Fsup>\n\u003C\u002Fp>\n\nYou can edit an item in your editor with\n[`nb edit`](#edit) (shortcut: [`nb e`](#edit)):\n\n```bash\n# edit note by id\nnb edit 3\n\n# edit note by filename\nnb edit example.md\n\n# edit note by title\nnb edit \"A Document Title\"\n\n# edit note 12 in the notebook named \"example\"\nnb edit example:12\n\n# edit note 12 in the notebook named \"example\", alternative\nnb example:12 edit\n\n# edit note 12 in the notebook named \"example\", alternative\nnb example:edit 12\n\n# edit the last modified item\nnb edit --last\n```\n\n[`edit`](#edit) and other subcommands that take an identifier\ncan be called with the identifier and subcommand name reversed:\n\n```bash\n# edit note by id\nnb 3 edit\n```\n\n[`nb edit`](#edit) can also receive piped content, which it\nappends to the specified note without opening the editor:\n\n```bash\necho \"Content to append.\" | nb edit 1\n```\n\nContent can be passed with the [`--content \u003Ccontent>`](#edit) option,\nwhich also appends the content without opening the editor:\n\n```bash\nnb edit 1 --content \"Content to append.\"\n```\n\nUse the [`--overwrite`](#edit) option to overwrite existing file content\nand the [`--prepend`](#edit) option to prepend the new content before existing content.\n\nWhen content is piped or specified with [`--content \u003Ccontent>`](#edit),\nuse the [`--edit`](#edit) flag to open the file in the editor\nbefore the change is committed.\n\nEdit the last modified item with [`--last`](#edit) \u002F [`-l`](#edit):\n\n```bash\n# edit the last modified item\nnb edit --last\n\n# edit the last modified item, short option\nnb edit -l\n```\n\n##### Editing Encrypted Notes\n\nWhen a note is encrypted,\n[`nb edit`](#edit) prompts you for the note password,\nopens the unencrypted content in your editor,\nand then automatically reencrypts the note when you are done editing.\n\n##### Shortcut Alias: `nb e`\n\n[`nb edit`](#edit) can be called by the shortcut alias, [`nb e`](#edit):\n\n```bash\n# edit note by id\nnb e 3\n\n# edit note by filename\nnb e example.md\n\n# edit note by title\nnb e \"A Document Title\"\n\n# edit note by id, alternative\nnb 3 e\n\n# edit note 12 in the notebook named \"example\"\nnb e example:12\n\n# edit note 12 in the notebook named \"example\", alternative\nnb example:12 e\n\n# edit note 12 in the notebook named \"example\", alternative\nnb example:e 12\n\n# edit the last modified item, short option\nnb e -l\n```\n\nFor [`nb edit`](#edit) help information, run [`nb help edit`](#edit).\n\n##### Editing with `browse`\n\nItems can be edited within terminal and GUI web browsers using\n[`nb browse edit`](#browse) \u002F [`nb b e`](#browse):\n\n```bash\n❯ nb browse edit text:formats\u002Fmarkdown\u002F123\n❯nb · text : formats \u002F markdown \u002F 123 · ↓ · editing · - | +\n\n[# Daring Fireball: Markdown (daringfireball.net)         ]\n[                                                         ]\n[\u003Chttps:\u002F\u002Fdaringfireball.net\u002Fprojects\u002Fmarkdown\u002F>          ]\n[                                                         ]\n[## Related                                               ]\n[                                                         ]\n[- \u003Chttps:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown>               ]\n[                                                         ]\n[## Comments                                              ]\n[                                                         ]\n[See also:                                                ]\n[                                                         ]\n[- [[text:formats\u002Forg]]                                   ]\n[- [[cli:apps\u002Fnb]]                                        ]\n[                                                         ]\n[## Tags                                                  ]\n[                                                         ]\n\n[save] · last: 2021-01-01 01:00:00\n```\n\nFor more information, see\n[`browse edit`](#browse-edit) and [Browsing](#-browsing).\n\n#### Viewing\n\n\u003Cp>\n  \u003Csup>\n    \u003Ca href=\"#overview\">↑\u003C\u002Fa> ·\n    \u003Ca href=\"#show\">\u003Ccode>nb show\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#browse\">\u003Ccode>nb browse\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#open\">\u003Ccode>nb open\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#peek\">\u003Ccode>nb peek\u003C\u002Fcode>\u003C\u002Fa>\n  \u003C\u002Fsup>\n\u003C\u002Fp>\n\nNotes and other items can be viewed using\n[`nb show`](#show) (shortcut: [`nb s`](#show)):\n\n```bash\n# show note by id\nnb show 3\n\n# show note by filename\nnb show example.md\n\n# show note by title\nnb show \"A Document Title\"\n\n# show note by id, alternative\nnb 3 show\n\n# show note 12 in the notebook named \"example\"\nnb show example:12\n\n# show note 12 in the notebook named \"example\", alternative\nnb example:12 show\n\n# show note 12 in the notebook named \"example\", alternative\nnb example:show 12\n```\n\nBy default, [`nb show`](#show) opens notes in\n[`less`](https:\u002F\u002Flinux.die.net\u002Fman\u002F1\u002Fless),\nwith syntax highlighting if\n[`bat`](https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fbat),\n[`highlight`](http:\u002F\u002Fwww.andre-simon.de\u002Fdoku\u002Fhighlight\u002Fen\u002Fhighlight.php),\nor\n[Pygments](https:\u002F\u002Fpygments.org\u002F)\nis installed.\nYou can navigate in `less` using the following keys:\n\n```text\nKey               Function\n---               --------\nmouse scroll      Scroll up or down\narrow up or down  Scroll one line up or down\nf                 Jump forward one window\nb                 Jump back one window\nd                 Jump down one half window\nu                 Jump up one half window\n\u002F\u003Cquery>          Search for \u003Cquery>\nn                 Jump to next \u003Cquery> match\nq                 Quit\n```\n\n*If `less` scrolling isn't working in [iTerm2](https:\u002F\u002Fwww.iterm2.com\u002F),\ngo to*\n\"Settings\"\n-> \"Advanced\"\n-> \"Scroll wheel sends arrow keys when in alternate screen mode\"\n*and change it to* \"Yes\".\n*[More Info](https:\u002F\u002Fstackoverflow.com\u002Fa\u002F37610820)*\n\nUse the [`-p`](#show) \u002F [`--print`](#show) option\nto print to standard output with syntax highlighting:\n\n```bash\n❯ nb show 123 --print\n# Example Title\n\nExample content:\n\n- one\n- two\n- three\n```\n\nUse [`nb show --print --no-color`](#show) to print without syntax highlighting.\n\nWhen [Pandoc](https:\u002F\u002Fpandoc.org\u002F) is available,\nuse the [`-r`](#show) \u002F [`--render`](#show) option to\nrender the note to HTML and open it in your terminal browser:\n\n```bash\nnb show example.md --render\n# opens example.md as an HTML page in w3m, links, or lynx\n```\n\n[`nb show`](#show) also supports previewing other file types in the terminal,\ndepending on the tools available in the environment. To prefer specific tools\nfor certain file types, `nb` provides configuration variables that can be\nset in your `~\u002F.nbrc` file,\nwhich can be opened in your editor with [`nb settings edit`](#settings).\n\nSupported file types and tools include:\n\n- Markdown files ([`$NB_MARKDOWN_TOOL`](#nb_markdown_tool)):\n  - [`bat`](https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fbat)\n  - [`glow`](https:\u002F\u002Fgithub.com\u002Fcharmbracelet\u002Fglow)\n  - [`lowdown`](https:\u002F\u002Fkristaps.bsd.lv\u002Flowdown)\n  - [`mdcat`](https:\u002F\u002Fgithub.com\u002Fswsnr\u002Fmdcat)\n  - [`mdless`](https:\u002F\u002Fgithub.com\u002Fttscoff\u002Fmdless)\n  - [`mdv`](https:\u002F\u002Fgithub.com\u002Faxiros\u002Fterminal_markdown_viewer)\n- PDF files:\n  - [`termpdf.py`](https:\u002F\u002Fgithub.com\u002Fdsanson\u002Ftermpdf.py)\n    with [kitty](https:\u002F\u002Fsw.kovidgoyal.net\u002Fkitty\u002F)\n  - [`pdftotext`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPdftotext)\n- Audio files ([`$NB_AUDIO_TOOL`](#nb_audio_tool)):\n  - [`mplayer`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMPlayer)\n  - [`afplay`](https:\u002F\u002Fss64.com\u002Fosx\u002Fafplay.html)\n  - [`mpg123`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMpg123)\n  - [`ffplay`](https:\u002F\u002Fffmpeg.org\u002Fffplay.html)\n- [Images](#-images) ([`$NB_IMAGE_TOOL`](#nb_image_tool)):\n  - [`catimg`](https:\u002F\u002Fgithub.com\u002Fposva\u002Fcatimg)\n  - [Chafa](https:\u002F\u002Fgithub.com\u002Fhpjansson\u002Fchafa)\n  - [ImageMagick](https:\u002F\u002Fimagemagick.org\u002F) with a terminal that\n    supports [sixels](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSixel)\n  - [`imgcat`](https:\u002F\u002Fwww.iterm2.com\u002Fdocumentation-images.html) with\n    [iTerm2](https:\u002F\u002Fwww.iterm2.com\u002F)\n  - [kitty's `icat` kitten](https:\u002F\u002Fsw.kovidgoyal.net\u002Fkitty\u002Fkittens\u002Ficat.html)\n  - [`termvisage`](https:\u002F\u002Fgithub.com\u002FAnonymouX47\u002Ftermvisage)\n  - [`timg`](https:\u002F\u002Fgithub.com\u002Fhzeller\u002Ftimg)\n  - [`viu`](https:\u002F\u002Fgithub.com\u002Fatanunq\u002Fviu)\n- Folders, Directories, Notebooks ([`$NB_DIRECTORY_TOOL`](#nb_directory_tool)):\n  - [`eza`](https:\u002F\u002Fgithub.com\u002Feza-community\u002Feza)\n  - [`joshuto`](https:\u002F\u002Fgithub.com\u002Fkamiyaa\u002Fjoshuto)\n  - [`lsd`](https:\u002F\u002Fgithub.com\u002Flsd-rs\u002Flsd)\n  - [Midnight Commander (`mc`)](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMidnight_Commander)\n  - [`ranger`](https:\u002F\u002Franger.github.io\u002F)\n  - [`vifm`](https:\u002F\u002Fvifm.info\u002F)\n- Word Documents:\n  - [Pandoc](https:\u002F\u002Fpandoc.org\u002F) with\n    [`w3m`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FW3m) or\n    [`links`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinks_(web_browser))\n- Excel, CSV, TSV, and data files ([`$NB_DATA_TOOL`](#nb_data_tool)):\n  - [VisiData](https:\u002F\u002Fwww.visidata.org\u002F)\n  - [`sc-im`](https:\u002F\u002Fgithub.com\u002Fandmarti1424\u002Fsc-im)\n  - [Tidy-Viewer (`tv`)](https:\u002F\u002Fgithub.com\u002Falexhallam\u002Ftv)\n- EPUB ebooks:\n  - [Pandoc](https:\u002F\u002Fpandoc.org\u002F) with\n    [`w3m`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FW3m) or\n    [`links`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinks_(web_browser))\n\nWhen using [`nb show`](#show) with other file types or\nif the above tools are not available,\n[`nb show`](#show) opens files in\nyour system's preferred application for each type.\n\n[`nb show`](#show) also provides [options](#show) for\nquerying information about an item. For example, use the\n[`--added`](#show) \u002F [`-a`](#show) and [`--updated`](#show) \u002F [`-u`](#show)\nflags to print the date and time that an item was added or updated:\n\n```bash\n❯ nb show 2 --added\n2020-01-01 01:01:00 -0700\n\n❯ nb show 2 --updated\n2020-02-02 02:02:00 -0700\n```\n\n[`nb show`](#show) is primarily intended for viewing items within the terminal.\nTo view a file in the system's preferred GUI application, use\n[`nb open`](#open).\nTo [browse](#-browsing) rendered items in terminal and GUI web browsers, use\n[`nb browse`](#browse).\n\nFor full [`nb show`](#show) usage information, run [`nb help show`](#show).\n\n##### Shortcut Alias: `nb s`\n\n[`nb show`](#show) can be called using the shortcut alias [`nb s`](#show):\n\n```bash\n# show note by id\nnb s 3\n\n# show note by filename\nnb s example.md\n\n# show note by title\nnb s \"A Document Title\"\n\n# show note by id, alternative\nnb 3 s\n\n# show note 12 in the notebook named \"example\"\nnb s example:12\n\n# show note 12 in the notebook named \"example\", alternative\nnb example:12 s\n\n# show note 12 in the notebook named \"example\", alternative\nnb example:s 12\n```\n\n##### Alias: `nb view`\n\n[`nb show`](#show) can also be invoked with [`nb view`](#show) for convenience:\n\n```bash\n# show note by id\nnb view 3\n\n# show note by filename\nnb view example.md\n\n# show note by title\nnb view \"A Document Title\"\n\n# show note by id, alternative\nnb 3 view\n```\n\n##### Viewing with `browse`\n\nItems can be viewed within terminal and GUI web browsers using\n[`nb browse`](#browse) \u002F [`nb b`](#browse):\n\n```bash\n❯ nb browse text:formats\u002Fmarkdown\u002F123\n❯nb · text : formats \u002F markdown \u002F 123 · ↓ · edit | +\nDaring Fireball: Markdown (daringfireball.net)\n\nhttps:\u002F\u002Fdaringfireball.net\u002Fprojects\u002Fmarkdown\u002F\n\nRelated\n\n  • https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown\n\nComments\n\nSee also:\n\n  • [[text:formats\u002Forg]]\n  • [[cli:apps\u002Fnb]]\n\nTags\n\n#markup #plain-text\n\nContent\n\nDaring Fireball: Markdown\n\nDownload\n\nMarkdown 1.0.1 (18 KB) — 17 Dec 2004\n\nIntroduction\n\nMarkdown is a text-to-HTML conversion tool for web writers. Markdown allows\nyou to write using an easy-to-read, easy-to-write plain text format, then\nconvert it to structurally valid XHTML (or HTML).\n```\n\nFor more information, see [Browsing](#-browsing).\n\n#### Deleting\n\n\u003Cp>\n  \u003Csup>\n    \u003Ca href=\"#overview\">↑\u003C\u002Fa> ·\n    \u003Ca href=\"#delete\">\u003Ccode>nb delete\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#browse\">\u003Ccode>nb browse delete\u003C\u002Fcode>\u003C\u002Fa>\n  \u003C\u002Fsup>\n\u003C\u002Fp>\n\nTo delete one or more notes, pass any number of\nids, filenames, titles, and other [selectors](#-selectors)\nto [`nb delete`](#delete) (shortcuts: [`nb d`](#delete), [`nb -`](#delete)):\n\n```bash\n# delete item by id\nnb delete 3\n\n# delete item by filename\nnb delete example.md\n\n# delete item by title\nnb delete \"A Document Title\"\n\n# delete item by id, alternative\nnb 3 delete\n\n# delete item 12 in the notebook named \"example\"\nnb delete example:12\n\n# delete item 12 in the notebook named \"example\", alternative\nnb example:12 delete\n\n# delete item 12 in the notebook named \"example\", alternative\nnb example:delete 12\n\n# delete item 345 in the folder named \"example\"\nnb delete example\u002F345\n\n# delete items with the ids 89, 56, and 21\nnb delete 89 56 21\n```\n\nBy default, [`nb delete`](#delete) will display a confirmation prompt.\nTo skip, use the [`--force`](#delete) \u002F [`-f`](#delete) option:\n\n```bash\nnb delete 3 --force\n```\n\n##### Shortcut Aliases: `nb d`, `nb -`\n\n[`nb delete`](#delete) has the aliases [`nb d`](#delete) and [`nb -`](#delete):\n\n```bash\n# delete note by id\nnb d 3\n\n# delete note by filename\nnb d example.md\n\n# delete note by title\nnb - \"A Document Title\"\n\n# delete note by id, alternative\nnb 3 d\n\n# delete note 12 in the notebook named \"example\"\nnb - example:12\n\n# delete note 12 in the notebook named \"example\", alternative\nnb example:12 d\n\n# delete note 12 in the notebook named \"example\", alternative\nnb example:d 12\n```\n\nFor [`nb delete`](#delete) help information, run [`nb help delete`](#delete).\n\n##### Deleting with `nb browse`\n\nItems can be deleted within terminal and GUI web browsers using\n[`nb browse delete`](#browse) \u002F [`nb b d`](#browse):\n\n```bash\n❯ nb browse delete example:4\n❯nb · example : 4 · ↓ · edit · - | +\n\n              deleting\n\n[4] example_file.md \"Example Title\"\n\n              [delete]\n\n```\n\nFor more information, see [Browsing](#-browsing).\n\n### 🔖 Bookmarks\n\n\u003Cp>\n  \u003Csup>\n    \u003Ca href=\"#overview\">↑\u003C\u002Fa> ·\n    \u003Ca href=\"#nb-help\">\u003Ccode>nb&nbsp;&lt;url&gt;\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#browse\">\u003Ccode>nb&nbsp;browse\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#bookmark\">\u003Ccode>nb&nbsp;bookmark\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#open\">\u003Ccode>nb&nbsp;open\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#peek\">\u003Ccode>nb&nbsp;peek\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#show\">\u003Ccode>nb&nbsp;show\u003C\u002Fcode>\u003C\u002Fa>\n  \u003C\u002Fsup>\n\u003C\u002Fp>\n\n`nb` includes a bookmarking system to conveniently\ncreate, annotate, view, search, [browse](#-browsing), and manage\ncollections of bookmarks.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg  src=\"https:\u002F\u002Fxwmx.github.io\u002Fmisc\u002Fnb\u002Fimages\u002Fnb-bookmarks-gui-gui-terminal.png\"\n        alt=\"nb bookmarks\"\n        width=\"450\">\n\u003C\u002Fdiv>\n\nBookmarks in `nb` are stored as\n[simple structured Markdown files](#nb-markdown-bookmark-file-format)\ncontaining information extracted from the bookmarked pages.\n\nTo create a new bookmark, pass a URL as the first argument to `nb`:\n\n```bash\nnb https:\u002F\u002Fexample.com\n```\n\n`nb` automatically generates a bookmark using information from the page:\n\n```markdown\n# Example Title (example.com)\n\n\u003Chttps:\u002F\u002Fexample.com>\n\n## Description\n\nExample description.\n\n## Content\n\nExample Title\n=============\n\nThis domain is for use in illustrative examples in documents. You may\nuse this domain in literature without prior coordination or asking for\npermission.\n\n[More information\\...](https:\u002F\u002Fwww.iana.org\u002Fdomains\u002Fexample)\n```\n\n`nb` embeds the page content in the bookmark, making it available for\n[full text search](#-search) with [`nb search`](#search) and\nlocally-served, distraction-free [reading and browsing](#-browsing)\nwith [`nb browse`](#browse).\nWhen [Pandoc](https:\u002F\u002Fpandoc.org\u002F) is installed,\nthe HTML page content is converted to Markdown.\nWhen [readability-cli](https:\u002F\u002Fgitlab.com\u002Fgardenappl\u002Freadability-cli)\nis installed, markup is cleaned up to focus on content. When\n[Chromium](https:\u002F\u002Fwww.chromium.org) or\n[Chrome](https:\u002F\u002Fwww.google.com\u002Fchrome\u002F) is installed on the system,\n`nb` automatically renders JavaScript-dependent pages\nand saves the resulting markup.\n\nMany shells automatically escape special characters in URLs. If a\nURL contains characters that are preventing it from being saved in full,\nURLs can also be enclosed in quotes when passed to `nb`:\n\n```bash\nnb \"https:\u002F\u002Fexample.com#sample-anchor\"\n```\n\nIn addition to caching the page content,\nyou can also include a quote from the page in a\n[`## Quote`](#-quote) section\nusing the\n[`-q \u003Cquote>`](#bookmark) \u002F [`--quote \u003Cquote>`](#bookmark) option:\n\n```bash\nnb https:\u002F\u002Fexample.com --quote \"Example quote line one.\n\nExample quote line two.\"\n```\n```markdown\n# Example Title (example.com)\n\n\u003Chttps:\u002F\u002Fexample.com>\n\n## Description\n\nExample description.\n\n## Quote\n\n> Example quote line one.\n>\n> Example quote line two.\n\n## Content\n\nExample Title\n=============\n\nThis domain is for use in illustrative examples in documents. You may\nuse this domain in literature without prior coordination or asking for\npermission.\n\n[More information\\...](https:\u002F\u002Fwww.iana.org\u002Fdomains\u002Fexample)\n```\n\nAdd a comment in a [`## Comment`](#-comment) section using the\n[`-c \u003Ccomment>`](#bookmark) \u002F [`--comment \u003Ccomment>`](#bookmark) option:\n\n```bash\nnb https:\u002F\u002Fexample.com --comment \"Example comment.\"\n```\n```markdown\n# Example Title (example.com)\n\n\u003Chttps:\u002F\u002Fexample.com>\n\n## Description\n\nExample description.\n\n## Comment\n\nExample comment.\n\n## Content\n\nExample Title\n=============\n\nThis domain is for use in illustrative examples in documents. You may\nuse this domain in literature without prior coordination or asking for\npermission.\n\n[More information\\...](https:\u002F\u002Fwww.iana.org\u002Fdomains\u002Fexample)\n```\n\nAdd related URLs and [linked](#-linking) [selectors](#-selectors)\nto a [`## Related`](#-related) section using the\n[`-r (\u003Curl> | \u003Cselector>)`](#bookmark) \u002F\n[`--related (\u003Curl> | \u003Cselector>)`](#bookmark)\noption:\n\n```bash\nnb https:\u002F\u002Fexample.com --related example:123 -r https:\u002F\u002Fexample.net\n```\n```markdown\n# Example Title (example.com)\n\n\u003Chttps:\u002F\u002Fexample.com>\n\n## Description\n\nExample description.\n\n## Related\n\n- [[example:123]]\n- \u003Chttps:\u002F\u002Fexample.net>\n\n## Content\n\nExample Title\n=============\n\nThis domain is for use in illustrative examples in documents. You may\nuse this domain in literature without prior coordination or asking for\npermission.\n\n[More information\\...](https:\u002F\u002Fwww.iana.org\u002Fdomains\u002Fexample)\n```\n\nBookmarks can be tagged using the\n[`-t \u003Ctag1>,\u003Ctag2>...`](#bookmark) \u002F\n[`--tags \u003Ctag1>,\u003Ctag2>...`](#bookmark) option.\nTags are converted into [#hashtags](#-tagging) and\nadded to a [`## Tags`](#-tags) section:\n\n```bash\nnb https:\u002F\u002Fexample.com --tags tag1,tag2\n```\n```markdown\n# Example Title (example.com)\n\n\u003Chttps:\u002F\u002Fexample.com>\n\n## Description\n\nExample description.\n\n## Tags\n\n#tag1 #tag2\n\n## Content\n\nExample Title\n=============\n\nThis domain is for use in illustrative examples in documents. You may\nuse this domain in literature without prior coordination or asking for\npermission.\n\n[More information\\...](https:\u002F\u002Fwww.iana.org\u002Fdomains\u002Fexample)\n```\n\n[Search](#-search) for tagged bookmarks with\n[`nb search`](#search) \u002F [`nb q`](#search):\n\n```bash\nnb search --tag tag1\n\nnb q -t tag1\n\nnb q \\#tag1\n```\n\n[`nb search`](#search) \u002F [`nb q`](#search)\nautomatically searches archived page content:\n\n```bash\n❯ nb q \"example query\"\n[10] 🔖 example.bookmark.md \"Example Bookmark (example.com)\"\n------------------------------------------------------------\n5:Lorem ipsum example query.\n```\n\nBookmarks can also be encrypted:\n\n```bash\n# create a new password-protected, encrypted bookmark\nnb https:\u002F\u002Fexample.com --encrypt\n```\n\nEncrypted bookmarks require a password before they can be viewed or\nopened.\n\nMultiple URLs can be bookmarked with a single command by passing\nmultiple [`\u003Curl>`](#bookmark) arguments. Additional arguments will be reused\nfor each bookmark:\n\n```bash\n❯ nb https:\u002F\u002Fexample.com https:\u002F\u002Fexample.net --tags tag1,tag2 --filename example\nAdded: [1] 🔖 example.bookmark.md \"Example Domain (example.com)\"\nAdded: [2] 🔖 example-1.bookmark.md \"Example Domain (example.net)\"\n```\n\n#### Listing and Filtering Bookmarks\n\n\u003Cdiv align=\"center\">\n  \u003Cimg  src=\"https:\u002F\u002Fxwmx.github.io\u002Fmisc\u002Fnb\u002Fimages\u002Fnb-bookmarks-gui-terminal-terminal.png\"\n        alt=\"nb bookmark lists\"\n        width=\"500\">\n\u003C\u002Fdiv>\n\nBookmarks are included in\n`nb`,\n[`nb ls`](#ls),\n[`nb list`](#list),\nand [`nb browse`](#browse)\nalong with items of other types.\n[`nb bookmark`](#bookmark) and [`nb bookmark list`](#bookmark) can be used to\nlist and filter only bookmarks:\n\n```bash\n❯ nb bookmark\nAdd: nb \u003Curl> Help: nb help bookmark\n------------------------------------\n[3] 🔖 🔒 example.bookmark.md.enc\n[2] 🔖 Bookmark Two (example.com)\n[1] 🔖 Bookmark One (example.com)\n\n❯ nb bookmark list two\n[2] 🔖 Bookmark Two (example.com)\n```\n\nBookmarks are also included in `nb`, [`nb ls`](#ls), and [`nb list`](#list):\n\n```bash\n❯ nb\nhome\n----\n[7] 🔖 Bookmark Three (example.com)\n[6] Example Note\n[5] 🔖 Bookmark Two (example.net)\n[4] Sample Note\n[3] 🔖 🔒 example-encrypted.bookmark.md.enc\n[2] Demo Note\n[1] 🔖 Bookmark One (example.com)\n```\n\nUse the [`--type \u003Ctype>`](#ls) \u002F [`--\u003Ctype>`](#ls)\noption as a filter to display only bookmarks:\n\n```bash\n❯ nb --type bookmark\n[7] 🔖 Bookmark Three (example.com)\n[5] 🔖 Bookmark Two (example.net)\n[3] 🔖 🔒 example-encrypted.bookmark.md.enc\n[1] 🔖 Bookmark One (example.com)\n\n❯ nb --bookmark\n[7] 🔖 Bookmark Three (example.com)\n[5] 🔖 Bookmark Two (example.net)\n[3] 🔖 🔒 example-encrypted.bookmark.md.enc\n[1] 🔖 Bookmark One (example.com)\n```\n\n`nb` saves the domain in the title, making it easy to filter by domain\nusing any list subcommands:\n\n```bash\n❯ nb example.com\n[7] 🔖 Bookmark Three (example.com)\n[1] 🔖 Bookmark One (example.com)\n```\n\nFor more listing options, see\n[`nb help ls`](#ls),\n[`nb help list`](#list),\nand [`nb help bookmark`](#bookmark).\n\n##### Shortcut Aliases: `nb bk`, `nb bm`\n\n[`nb bookmark`](#bookmark) can also be used with the aliases\n[`nb bk`](#bookmark) and [`nb bm`](#bookmark):\n\n```bash\n❯ nb bk\nAdd: nb \u003Curl> Help: nb help bookmark\n------------------------------------\n[7] 🔖 Bookmark Three (example.com)\n[5] 🔖 Bookmark Two (example.net)\n[3] 🔖 🔒 example-encrypted.bookmark.md.enc\n[1] 🔖 Bookmark One (example.com)\n\n❯ nb bm example.net\n[5] 🔖 Bookmark Two (example.net)\n```\n\n#### Viewing Bookmarks\n\n\u003Cp>\n  \u003Csup>\n    \u003Ca href=\"#overview\">↑\u003C\u002Fa> ·\n    \u003Ca href=\"#browse\">\u003Ccode>nb&nbsp;browse\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#open\">\u003Ccode>nb&nbsp;open\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#peek\">\u003Ccode>nb&nbsp;peek\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#show\">\u003Ccode>nb&nbsp;show\u003C\u002Fcode>\u003C\u002Fa>\n  \u003C\u002Fsup>\n\u003C\u002Fp>\n\n`nb` provides multiple ways to view bookmark files, bookmarked content,\nand bookmarked URLs.\n\nUse [`nb browse`](#browse) (shortcut: [`nb b`](#browse))\nto [browse](#-browsing) bookmarks with cached content,\n\u003Ca href=\"#-linking\">[[wiki-style links]]\u003C\u002Fa>,\nlinked [#tags](#-tagging), and external links:\n\n```bash\n❯ nb browse text:formats\u002Fmarkdown\u002F123\n❯nb · text : formats \u002F markdown \u002F 123 · ↓ · edit | +\nDaring Fireball: Markdown (daringfireball.net)\n\nhttps:\u002F\u002Fdaringfireball.net\u002Fprojects\u002Fmarkdown\u002F\n\nRelated\n\n  • https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown\n\nComments\n\nSee also:\n\n  • [[text:formats\u002Forg]]\n  • [[cli:apps\u002Fnb]]\n\nTags\n\n#markup #plain-text\n\nContent\n\nDaring Fireball: Markdown\n\nDownload\n\nMarkdown 1.0.1 (18 KB) — 17 Dec 2004\n\nIntroduction\n\nMarkdown is a text-to-HTML conversion tool for web writers. Markdown allows\nyou to write using an easy-to-read, easy-to-write plain text format, then\nconvert it to structurally valid XHTML (or HTML).\n```\n\nFor more information, see [Browsing](#-browsing).\n\n[`nb open`](#open) (shortcut: [`nb o`](#open)) opens the bookmarked URL in\nyour system's primary web browser:\n\n```bash\n# open bookmark by id\nnb open 3\n\n# open bookmark 12 in the notebook named \"example\"\nnb open example:12\n\n# open bookmark 12 in the notebook named \"example\", alternative\nnb example:12 open\n\n# open bookmark 12 in the notebook named \"example\", alternative\nnb example:open 12\n```\n\n*N.B. To use [`nb open`](#open) with\n[WSL](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fwindows\u002Fwsl\u002Finstall),\ninstall [wslu](https:\u002F\u002Fgithub.com\u002Fwslutilities\u002Fwslu).*\n\n[`nb peek`](#peek) (shortcut: [`nb p`](#peek), alias: [`nb preview`](#peek))\nopens the bookmarked URL in your terminal web browser,\nsuch as\n[w3m](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FW3m),\n[Links](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinks_(web_browser)), or\n[Lynx](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLynx_(web_browser)):\n\n```bash\n# peek bookmark by id\nnb peek 3\n\n# peek bookmark 12 in the notebook named \"example\"\nnb peek example:12\n\n# peek bookmark 12 in the notebook named \"example\", alternative\nnb example:12 peek\n\n# peek bookmark 12 in the notebook named \"example\", alternative\nnb example:peek 12\n```\n\n[`nb open`](#open) and [`nb peek`](#peek)\nwork seamlessly with encrypted bookmarks.\n`nb` simply prompts you for the bookmark's password.\n\n[`nb open`](#open) and [`nb peek`](#peek)\nautomatically check whether the URL is still valid.\nIf the page has been removed, `nb` can check\nthe [Internet Archive Wayback Machine](https:\u002F\u002Farchive.org\u002Fweb\u002F)\nfor an archived copy.\n\nThe preferred terminal web browser can be set using\nthe `$BROWSER` environment variable,\nassigned in `~\u002F.bashrc`, `~\u002F.zshrc`, or similar:\n\n```bash\nexport BROWSER=lynx\n```\n\nWhen `$BROWSER` is not set, `nb` looks for\n[`w3m`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FW3m),\n[`links`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinks_(web_browser)), and\n[`lynx`](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLynx_(web_browser))\nand uses the first one it finds.\n\n`$BROWSER` can also be used to easy specify the terminal browser for\nan individual command:\n\n```bash\n❯ BROWSER=links nb 12 peek\n# opens the URL from bookmark 12 in links\n\n❯ BROWSER=w3m nb 12 peek\n# opens the URL from bookmark 12 in w3m\n```\n\n[`nb show`](#show) and [`nb edit`](#edit)\ncan also be used to view and edit bookmark files,\nwhich include the cached page converted to Markdown.\n\n[`nb show \u003Cid> --render`](#show) \u002F [`nb show \u003Cid> -r`](#show)\ndisplays the bookmark file converted to HTML in the terminal web browser,\nincluding all bookmark fields and the cached page content,\nproviding a cleaned-up, distraction-free, locally-served view of\nthe page content along with all of your notes.\n\n##### Shortcut Aliases: `nb o` and `nb p`\n\n[`nb open`](#open) and [`nb peek`](#peek)\ncan also be used with the shortcut aliases\n[`nb o`](#open) and [`nb p`](#peek):\n\n```bash\n# open bookmark by id\nnb o 3\n\n# open bookmark 12 in the notebook named \"example\"\nnb o example:12\n\n# open bookmark 12 in the notebook named \"example\", alternative\nnb example:12 o\n\n# peek bookmark by id\nnb p 3\n\n# peek bookmark 12 in the notebook named \"example\"\nnb p example:12\n\n# peek bookmark 12 in the notebook named \"example\", alternative\nnb example:12 p\n```\n\n#### Bookmark File Format\n\nBookmarks are identified by a `.bookmark.md` file extension.\nThe bookmark URL is the first URL in the file within `\u003C` and `>` characters.\nTo create a minimally valid bookmark file with [`nb add`](#add):\n\n```bash\nnb add example.bookmark.md --content \"\u003Chttps:\u002F\u002Fexample.com>\"\n```\n\nFor a full overview, see\n[`nb` Markdown Bookmark File Format](#nb-markdown-bookmark-file-format).\n\n#### `bookmark` -- A command line tool for managing bookmarks.\n\n`nb` includes [`bookmark`](#bookmark-help), a full-featured\ncommand line interface for creating, viewing, searching, and editing bookmarks.\n\n[`bookmark`](#bookmark-help) is a shortcut for the\n[`nb bookmark`](#bookmark) subcommand,\naccepting all of the same subcommands and options with identical behavior.\n\nBookmark a page:\n\n```bash\n❯ bookmark https:\u002F\u002Fexample.com --tags tag1,tag2\nAdded: [3] 🔖 20200101000000.bookmark.md \"Example Title (example.com)\"\n```\nList and filter bookmarks with\n[`bookmark`](#bookmark) and [`bookmark list`](#bookmark):\n\n```bash\n❯ bookmark\nAdd: bookmark \u003Curl> Help: bookmark help\n---------------------------------------\n[3] 🔖 🔒 example.bookmark.md.enc\n[2] 🔖 Example Two (example.com)\n[1] 🔖 Example One (example.com)\n\n❯ bookmark list two\n[2] 🔖 Example Two (example.com)\n```\n\nView a bookmark in your terminal web browser:\n\n```bash\nbookmark peek 2\n```\n\nOpen a bookmark in your system's primary web browser:\n\n```bash\nbookmark open 2\n```\n\nPerform a full text search of bookmarks and archived page content:\n\n```bash\n❯ bookmark search \"example query\"\n[10] 🔖 example.bookmark.md \"Example Bookmark (example.com)\"\n------------------------------------------------------------\n5:Lorem ipsum example query.\n```\n\nSee [`bookmark help`](#bookmark-help) for more information.\n\n### ✅ Todos\n\n\u003Cp>\n  \u003Csup>\n    \u003Ca href=\"#overview\">↑\u003C\u002Fa> ·\n    \u003Ca href=\"#do\">\u003Ccode>nb do\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#tasks\">\u003Ccode>nb tasks\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#todo\">\u003Ccode>nb todo\u003C\u002Fcode>\u003C\u002Fa>,\n    \u003Ca href=\"#undo\">\u003Ccode>nb undo\u003C\u002Fcode>\u003C\u002Fa>\n  \u003C\u002Fsup>\n\u003C\u002Fp>\n\nUse [`nb todo`](#todo) (shortcut: [`nb to`](#todo))\nto create, list, and update todos.\n`nb` todos are [structured Markdown documents](#nb-markdown-todo-file-format)\nreferencing a single primary todo,\nwith optional [tasks](#%EF%B8%8F-tasks).\n\nUse [`nb todo add`](#todo) to create a new todo:\n\n```bash\n# create a new todo titled \"Example todo one.\"\n❯ nb todo add \"Example todo one.\"\nAdded: [1] ✔️ [ ] Example todo one.\n\n❯ nb show 1 --print\n# [ ] Example todo one.\n```\n\nUse the [`--due \u003Cdate>`](#todo) option to add an optional due date in a\n[`## Due`](#-due) section:\n\n```bash\n# create a new todo titled \"Example todo two.\" with a due date of \"2100-01-01\"\n❯ nb todo add \"Example todo two.\" --due \"2100-01-01\"\nAdded: [2] ✔️ [ ] Example todo two.\n\n❯ nb show 2 --print\n# [ ] Example todo two.\n\n## Due\n\n2100-01-01\n```\n\nAdd an optional [description](#-description-1) with the\n[`--description \u003Cdescription>`](#todo)\noption:\n\n```bash\n❯ nb todo add \"Example todo three.\" --description \"Example description.\"\nAdded: [3] ✔️ [ ] Example todo three.\n\n❯ nb show 3 --print\n# [ ] Example todo three.\n\n## Description\n\nExample description.\n```\n\nTodos can have [tasks](#%EF%B8%8F-tasks).\nTasks added with one or more [`--task \u003Ctask>`](#todo) options\nare represented as a markdown task list and placed in a\n[`## Tasks`](#-tasks) section:\n\n```bash\n❯ nb todo add \"Example todo seven.\" --task \"Task one.\" --task \"Task two.\" --task \"Task three.\"\nAdded: [7] ✔️ [ ] Example todo seven.\n\n❯ nb show 7 --print\n# [ ] Example todo seven.\n\n## Tasks\n\n- [ ] Task one.\n- [ ] Task two.\n- [ ] Task three.\n```\n\nRelated URLs and [linked](#-linking) [selectors](#-selectors)\ncan be added to a [`## Related`](#-related-1) field using the\n[`-r (\u003Curl> | \u003Cselector>)`](#todo) \u002F [`--related (\u003Curl> | \u003Cselector>)`](#todo)\noption:\n\n```bash\n❯ nb todo add \"Example todo four.\" --related example:123 -r https:\u002F\u002Fexample.com\nAdded: [4] ✔️ [ ] Example todo four.\n\n❯ nb show 4 --print\n# [ ] Example todo four.\n\n## Related\n\n- [[example:123]]\n- \u003Chttps:\u002F\u002Fexample.com>\n```\n\n[Tags](#-tagging) can be added to todos with the\n[`--tags \u003Ctag1>,\u003Ctag2>...`](#todo) option:\n\n```bash\n❯ nb todo add \"Example todo five.\" --tags tag1,tag2\nAdded: [5] ✔️ [ ] Example todo five.\n\n❯ nb show 5 --print\n# [ ] Example todo five.\n\n## Tags\n\n#tag1 #tag2\n```\n\n[Tags](#-tagging), [links](#-linking), and URLs can be\n[browsed](#-browsing)\nin terminal and GUI web browsers with [`nb browse`](#browse).\n\n#### Listing Todos\n\nList todos in with [`nb todos`](#todo):\n\n```bash\n# list todos in the current notebook\n❯ nb todos\n[6] ✔️ [ ] Example todo six.\n[5] ✅ [x] Example todo five.\n[4] ✔️ [ ] Example todo four.\n[3] ✅ [x] Example todo three.\n[2] ✅ [x] Example todo two.\n[1] ✔️ [ ] Example todo one.\n\n# list todos in the notebook named \"sample\"\n❯ nb todos sam","nb 是一个基于命令行和本地网页的笔记、书签管理和知识库应用。它支持纯文本数据存储，提供加密、过滤、标记、搜索等功能，并通过 Git 实现版本控制与同步，利用 Pandoc 进行文档格式转换。此外，nb 支持维基风格链接、图像嵌入、待办事项管理以及自定义颜色主题等特性。该工具非常适合需要高效组织个人知识体系、快速记录想法或保存重要网页链接的用户使用，在任何标准 Linux\u002FUnix 环境下均可运行，包括 macOS 和 Windows（通过 WSL、MSYS 或 Cygwin）。","2026-06-11 03:27:56","top_topic"]