Skip to content

oobagi/notebook-cli

Repository files navigation

notebook icon

notebook

A terminal-native note editor with a block-based editing experience.

Latest Release Go 1.25+ MIT License Platform

Install · Quick Start · Features · CLI Reference · Configuration · Roadmap


Notebook is a TUI note manager that organizes markdown notes into notebooks. It comes with a block editor supporting 14 block types, an interactive browser with search, 16 themes, inline markdown formatting, undo/redo, and a view mode for reading.

Everything runs in your terminal. No account, no sync, no config required.

notebook demo

Install

# Homebrew
brew install oobagi/tap/notebook

# Go (1.25+)
go install github.com/oobagi/notebook-cli/cmd/notebook@latest

Alternatively, prebuilt binaries for macOS and Linux are available on the releases page.

Quick Start

# Launch the interactive browser
notebook

# Create a note (auto-creates the notebook if it doesn't exist)
notebook ideas new "First Thought"

# Open it in the editor
notebook ideas "First Thought"

# Open any .md or .txt file directly
notebook path/to/file.md

Features

  • Block editor — 14 block types: paragraphs, headings (3 levels), bullet lists, numbered lists, checklists, code blocks, tables, quotes, definitions, callouts, dividers, and embeds. Press / to switch types.
  • Tables — Pipe-delimited GFM tables with per-column widths. Alt+R/C to add rows/columns, Alt+Shift+Backspace/Alt+Shift+D to delete. Press Enter on an empty row to exit the table and drop the row.
  • Callouts — Five admonition variants (Note, Tip, Important, Warning, Caution). Ctrl+T to cycle.
  • Definitions — Term/definition pairs. Press : to search and jump to definitions.
  • Embeds — Reference other notes inline with ![[notebook/note]]. Click in view mode to expand.
  • Nested lists — Tab/Shift+Tab to indent and outdent. Checklist cascading on toggle.
  • Syntax highlighting — 500+ languages via Chroma. Name the language on the first line of a code block.
  • Inline formatting**bold**, *italic*, ~~strikethrough~~, __underline__ render live in inactive blocks.
  • View mode — Ctrl+R for a clean, read-only view. Click checklists to toggle them without editing.
  • Search — Press / in the browser to search across all notebooks by title.
  • Preview pane — Press p to see note content while browsing.
  • Settings — Press , in the browser to configure storage, theme, date format, and more.
  • 16 themes — Dark, Ocean, Forest, Sunset, Monochrome, Rose, Cyberpunk, Minimal, Retro, Nord, Solarized, Dracula, Tokyo, Lavender, Ember, Catppuccin.
  • Undo/redo — 100 levels, tracks content changes only.
  • Mouse support — Click checklists in view mode, native text selection in the editor.
  • Open external files — Press i in the browser or pass a file path to open any .md or .txt file.
Editor keybindings
Key Action
Enter New block below
/ Command palette (at start of block)
: Definition lookup (on empty block)
Ctrl+S Save
Ctrl+Z / Ctrl+Y Undo / Redo
Ctrl+K Cut block
Alt+Up / Alt+Down Move block up/down
Tab / Shift+Tab Indent / outdent list
Ctrl+X Toggle checkbox
Ctrl+T Cycle callout variant
Ctrl+H Sort checked items to bottom
Ctrl+R View mode
Ctrl+J / Shift+Enter Newline within block
Ctrl+W Toggle word wrap
Ctrl+G Help
Esc Back to browser
Browser keybindings
Key Action
Up/Down Navigate
Enter Open
Esc Back / Quit
/ Search
n New notebook/note
d Delete
r Rename
c Copy to clipboard
i Open external file
p Preview pane
t Theme picker
, Settings
Tab Cycle sections
? Help

CLI Reference

notebook                               Launch interactive browser
notebook list                          List all notebooks
notebook <book> list                   List notes in a notebook
notebook <book> new "Title"            Create a note
notebook <book> "Title"                Open a note in the editor
notebook <book> "Title" edit           Open a note in the editor
notebook <book> "Title" copy           Copy note to clipboard
notebook <book> "Title" delete         Delete a note
notebook <book> delete                 Delete a notebook
notebook search "query"                Search across all notebooks
notebook <book> search "query"         Search within a notebook
notebook path/to/file.md               Open any .md or .txt file
notebook theme [name]                  List or set theme
notebook config                        Show current config
notebook config set <key> <value>      Set a config value

Configuration

Config lives at ~/.config/notebook/config.toml. Set values with notebook config set:

Key Default Description
storage_dir ~/.notebook Where notebooks are stored
editor built-in External editor command (leave empty for built-in)
theme dark Theme name (see notebook theme for options)
date_format relative How dates are displayed
hide_checked false Sort checked items to bottom of lists
cascade_checks true Toggle parent/child checklists together
show_preview true Show preview pane in browser
word_wrap true Wrap long lines in the editor

License

MIT

About

A terminal-native note editor with a block-based editing experience. 16 themes, inline markdown, undo/redo, search.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors