CLI Reference

Complete command reference for nb.

nb

NB A workspace-based note-taking system

USAGE nb [command]

COMMANDS archive Archive notes completion Generate the autocompletion script for the specified shell concept Manage project concepts and architectural memory context Show current workspace context git Manage Git repositories within notebook directories init Initialize nb in current directory list List notes in current workspace migrate Migrate and standardize notes move Move or copy notes to different locations new Create a new note obsidian Manage Obsidian integration quick Create a quick note without opening editor remote Manage remote integrations and sync notes search Search notes tmux Tmux window management commands tui Launch an interactive TUI for browsing notes across workspaces version Print version information workspace Manage workspaces (deprecated)

Flags: -c/—config, -h/—help, —json, -v/—verbose, -W/—workspace

Use “nb [command] —help” for more information.

nb new

NB NEW Create a new note

Create a new timestamped note in the current workspace.

USAGE nb new [title] [flags]

FLAGS -g, —global Create note in global workspace -h, —help help for new -n, —name Note name/title —no-edit Don’t open editor after creating —stdin Read content from stdin (auto-detected when piped) -t, —type Note type (a directory in your notes folder, e.g., ‘inbox’, ‘meetings’) (default: inbox)

EXAMPLES nb new # Create note with timestamp only nb new “meeting notes” # Create note with title nb new -t learn “golang” # Create learning note nb new -t docs “API Documentation” # Create documentation note nb new -t issues “bug report” # Create issues note nb new -t architecture “api design” # Create architecture note nb new -t todos “sprint tasks” # Create todos note nb new -g “todo list” # Create global note nb new -g -t daily # Create global daily note

# Custom types (defined in your grove.yml): nb new -t projects/grove “new feature idea”

# From stdin (auto-detected): echo “Quick thought” | nb new cat ideas.txt | nb new “imported ideas”

# Explicit stdin control: echo “content” | nb new —stdin “title” nb new —stdin “manual” < file.txt

nb tui

NB TUI Launch an interactive TUI for browsing notes across workspaces

Launch an interactive Terminal User Interface for browsing and managing notes. This view provides a workspace-centric way to explore your entire notebook.

USAGE nb tui [flags]

FLAGS -h, —help help for tui

nb quick

NB QUICK Create a quick note without opening editor

Create a quick note with timestamp title, no editor.

USAGE nb quick [content] [flags]

FLAGS -h, —help help for quick

EXAMPLES nb quick “Remember to review PR #123” nb quick “Meeting at 3pm with team”

nb list

NB LIST List notes in current workspace

List notes in the current workspace.

USAGE nb list [type] [flags]

FLAGS —all List all note types —all-branches List notes from all branches in the current repository -g, —global List global notes only -h, —help help for list —json Output in JSON format —tag Filter notes by a specific tag -t, —type Note type to list (default: inbox) -w, —workspaces List notes from all workspaces

EXAMPLES nb list # List current notes nb list llm # List LLM notes nb list learn # List learning notes nb list docs # List documentation notes

NB SEARCH Search notes

Search for notes matching the query.

USAGE nb search <query> [flags]

FLAGS —all Search all workspaces -h, —help help for search —limit Maximum results (default: 50) -t, —type Filter by note type

EXAMPLES nb search “authentication” # Search in current workspace nb search “todo” —all # Search all workspaces nb search “api” -t llm # Search only LLM notes

nb concept

NB CONCEPT Manage project concepts and architectural memory

Create, list, and link project concepts to maintain durable architectural knowledge.

USAGE nb concept [command]

COMMANDS dir Get the concepts directory for the current workspace link Link concepts, plans, and notes list List all concepts new Create a new concept path Get the path to a concept directory search Search concepts across all workspaces

Flags: -h/—help

EXAMPLES # Find concepts related to authentication nb concept search “auth” —ecosystem —files-only —json

# List all concepts in the ecosystem nb concept list —ecosystem —json

# Get the path to a concept and read it nb concept path authentication cat $(nb concept path authentication)/overview.md

# Create a new concept and link it nb concept new “Rate Limiter” —json nb concept link plan rate-limiter myproject:plans/implement-rate-limit nb concept link concept rate-limiter core:workspace-model

Use “nb concept [command] —help” for more information.

nb concept new

NB CONCEPT NEW Create a new concept

Create a new concept with manifest and overview files.

USAGE nb concept new <title> [flags]

FLAGS -g, —global Create in global workspace -h, —help help for new —json Output result as JSON

EXAMPLES nb concept new “Rate Limiter” nb concept new “Authentication System” —json nb concept new “Shared Utils” —global

nb concept list

NB CONCEPT LIST List all concepts

List all concepts in the current workspace, ecosystem, or across all workspaces.

By default, lists concepts in the current workspace only. Use —ecosystem to list concepts from all projects within the current ecosystem. Use —all-workspaces to list concepts from all discovered workspaces globally.

USAGE nb concept list [flags]

FLAGS —all-workspaces List concepts from all discovered workspaces globally —ecosystem List concepts from all projects within the current ecosystem -h, —help help for list —json Output result as JSON

EXAMPLES nb concept list nb concept list —ecosystem —json nb concept list —all-workspaces —json

NB CONCEPT SEARCH Search concepts across all workspaces

Search for a query string within concept files across the entire ecosystem.

USAGE nb concept search <query> [flags]

FLAGS —ecosystem Search only within the current ecosystem —files-only Output only file paths, one per line -h, —help help for search —json Output result as JSON

EXAMPLES nb concept search “auth” nb concept search “session” —ecosystem —json nb concept search “workspace” —ecosystem —files-only —json

nb concept dir

NB CONCEPT DIR Get the concepts directory for the current workspace

Returns the absolute path to the concepts directory in the notebook linked to the current workspace.

USAGE nb concept dir [flags]

FLAGS -h, —help help for dir

EXAMPLES nb concept dir ls $(nb concept dir)

NB CONCEPT LINK Link concepts, plans, and notes

Link a concept to related concepts, plans, or notes.

USAGE nb concept link [command]

COMMANDS concept Link a concept to another concept note Link a note to a concept plan Link a plan to a concept skill Link a skill to a concept

Flags: -h/—help

EXAMPLES nb concept link plan auth myproject:plans/jwt-refactor nb concept link note auth myproject:inbox/auth-history.md nb concept link concept auth grovetools:session-tracking nb concept link skill auth concept-maintainer

Use “nb concept link [command] —help” for more information.

NB CONCEPT LINK CONCEPT Link a concept to another concept

Add a concept-to-concept reference in the source concept’s manifest. Use workspace:concept-id format to link concepts across workspaces.

USAGE nb concept link concept <source-concept-id> <target-concept-id> [flags]

FLAGS -h, —help help for concept —json Output result as JSON

EXAMPLES nb concept link concept auth grovetools:session-tracking nb concept link concept rate-limiter core:workspace-model —json

NB CONCEPT LINK NOTE Link a note to a concept

Add a note reference to a concept’s manifest using an alias.

USAGE nb concept link note <concept-id> <note-alias> [flags]

FLAGS -h, —help help for note —json Output result as JSON

EXAMPLES nb concept link note authentication myproject:inbox/auth-history.md nb concept link note rate-limiter myproject:inbox/rfc.md —json

NB CONCEPT LINK PLAN Link a plan to a concept

Add a plan reference to a concept’s manifest using an alias.

USAGE nb concept link plan <concept-id> <plan-alias> [flags]

FLAGS -h, —help help for plan —json Output result as JSON

EXAMPLES nb concept link plan rate-limiter myproject:plans/implement-rate-limit nb concept link plan authentication flow:plans/jwt-refactor —json

NB CONCEPT LINK SKILL Link a skill to a concept

Add a skill reference to a concept’s manifest. Use ‘grove skills list’ to see available skills.

USAGE nb concept link skill <concept-id> <skill-name> [flags]

FLAGS -h, —help help for skill —json Output result as JSON

EXAMPLES grove skills list # discover available skills nb concept link skill auth concept-maintainer nb concept link skill flow-execution flow-qb —json

nb concept path

NB CONCEPT PATH Get the path to a concept directory

Returns the absolute path to a concept’s directory.

USAGE nb concept path <concept-id> [flags]

FLAGS -h, —help help for path —json Output result as JSON

EXAMPLES nb concept path authentication cat $(nb concept path authentication)/overview.md nb concept path auth —json | jq -r .path

nb workspace

NB WORKSPACE Manage workspaces (deprecated)

Manage workspace registrations and settings. Most of this functionality is now handled by ‘grove ws’.

USAGE nb workspace [command]

COMMANDS current Show current workspace (use ‘nb context’ instead)

Flags: -h/—help

Use “nb workspace [command] —help” for more information.

nb workspace current

NB WORKSPACE CURRENT Show current workspace (use 'nb context' instead)

This command is deprecated. Please use ‘nb context’ for more detailed information.

USAGE nb workspace current [flags]

FLAGS -h, —help help for current

nb archive

NB ARCHIVE Archive notes

Move notes to the archive directory.

USAGE nb archive [files…] [flags]

FLAGS —dry-run Show what would be archived without doing it —force Skip confirmation prompt -h, —help help for archive —older-than Archive notes older than N days (default: 0)

EXAMPLES nb archive note1.md note2.md # Archive specific files nb archive —older-than 30 # Archive notes older than 30 days nb archive —dry-run # Show what would be archived

nb context

NB CONTEXT Show current workspace context

Display information about the current workspace context.

This is useful for integration with other tools like Neovim.

USAGE nb context [flags]

FLAGS -h, —help help for context —json Output as JSON —path Get specific path (current, llm, learn)

nb git

NB GIT Manage Git repositories within notebook directories

Provides commands for initializing and managing Git repositories directly within notebook storage locations.

USAGE nb git [command]

COMMANDS commit Stage and commit changes in the current notebook’s repository init Initialize a Git repository in the current workspace’s notebook directory

Flags: -h/—help

Use “nb git [command] —help” for more information.

nb git commit

NB GIT COMMIT Stage and commit changes in the current notebook's repository

Convenience command to stage and commit changes in the notebook repository. If no files are specified, all changes are staged.

USAGE nb git commit [files…] [flags]

FLAGS -h, —help help for commit -m, —message Commit message (default: “Update notes”)

nb git init

NB GIT INIT Initialize a Git repository in the current workspace's notebook directory

Initializes a Git repository in the notebook workspace directory for the current context.

This command performs three actions:

  1. Runs ‘git init’ in the target notebook directory.
  2. Creates a ‘.gitignore’ file with sensible defaults for notebook content.
  3. Creates a ‘.grove/notebook.yml’ marker file to identify this as a notebook repository.

Target directory options:

  • Default: Current workspace’s notebook directory (e.g., workspaces/my-project/)
  • —global: The global notebook directory (global/)
  • —root: The entire notebook root containing all workspaces

USAGE nb git init [flags]

FLAGS -g, —global Initialize in the global notebook directory -h, —help help for init -r, —root Initialize in the notebook root (all workspaces in one repo)

nb init

NB INIT Initialize nb in current directory

Initialize nb in the current directory by registering it as a workspace.

This command will:

  • Register the current directory as a workspace
  • Create necessary directory structure

USAGE nb init [flags]

FLAGS -h, —help help for init —minimal Only create global workspace

nb migrate

NB MIGRATE Migrate and standardize notes

Migrate notes to standardized format with proper frontmatter.

By default, operates on the current workspace context.

USAGE nb migrate [paths…] [flags]

FLAGS —all Apply all fixes —all-workspaces Process all workspaces (requires confirmation) —branch Process specific branch —dry-run Show what would be changed without modifying —ensure-type-in-tags Ensure all notes have their type in the tags array —fix-dates Use file mtime if no date in frontmatter —fix-filenames Standardize filenames to YYYYMMDD-title.md format —fix-ids Generate missing IDs —fix-tags Generate tags from path/repo/branch —fix-titles Extract titles from content if missing —force Overwrite existing frontmatter —global Process global notes instead of current context -h, —help help for migrate —no-backup Don’t create backup files —notebook Specify which notebook to migrate (default: uses default notebook from config) —preserve-timestamps Preserve original file modification times (default: true) —recursive Process directories recursively (default: true) —rename-current-to-inbox Rename ‘current’ note type directories to ‘inbox’ and update notes —report Show migration report (default: true) —source-notebook Source notebook for workspace migration (default: default notebook) —structure Migrate from old repos/{workspace}/{branch} structure to new notebooks structure —target Target directory for migration (default: uses notebook root_dir from config) —target-notebook Target notebook for workspace migration (default: same as source) —type Process only specific note type —verbose Show detailed output —workspace Process specific workspace —workspaces Rename workspaces: ‘old1=new1,old2=new2’ (copies all files, updates frontmatter) -y, —yes Skip confirmation prompts

EXAMPLES nb migrate —dry-run # Preview changes in current context nb migrate —fix-titles # Fix titles in current context nb migrate —global —all # Migrate all global notes nb migrate —workspace myproject —all # Migrate entire workspace

nb move

NB MOVE Move or copy notes to different locations

Move or copy notes to different locations within the note system.

By default, this command moves files (deletes the source after copying). Use —copy to preserve the original file.

You can move notes between:

  • Different note types (e.g., from ‘current’ to ‘learn’)
  • Different branches (within the same repository)
  • Different workspaces/repositories
  • From outside the nb system into it

The destination can be specified as:

  • A note type: “learn”, “current”, “llm”, etc.
  • A full path: “/path/to/destination/”
  • Using flags: —workspace, —branch, —type

USAGE nb move [file] [destination] [flags]

FLAGS —branch Target branch (for git repositories) —copy Copy instead of move (preserve original file) —dry-run Preview changes without moving files —force Overwrite existing files at destination -h, —help help for move —migrate Apply nb migrate to standardize the note (default: true) -t, —type Target note type (current, llm, learn, etc.) —workspace Target workspace/repository

EXAMPLES # Move current file to ‘learn’ type in same workspace nb move note.md learn

# Move to different workspace nb move note.md —workspace other-project —type current

# Move from outside nb system into current context nb move /tmp/external-note.md current

# Move with migration (apply formatting/frontmatter fixes) nb move note.md learn —migrate

# Preview what would happen nb move note.md learn —dry-run

# Copy instead of move nb move note.md learn —copy

nb obsidian

NB OBSIDIAN Manage Obsidian integration

Commands for managing nb’s Obsidian plugin integration.

USAGE nb obsidian [command]

COMMANDS install-dev Install the nb Obsidian plugin for development

Flags: -h/—help

Use “nb obsidian [command] —help” for more information.

nb remote

NB REMOTE Manage remote integrations and sync notes

Commands for syncing notes with remote services like GitHub.

USAGE nb remote [command]

COMMANDS sync Sync notes with remote services

Flags: -h/—help

Use “nb remote [command] —help” for more information.

nb remote sync

NB REMOTE SYNC Sync notes with remote services

Syncs notes with configured remote services like GitHub issues and pull requests.

USAGE nb remote sync [flags]

FLAGS -h, —help help for sync —provider Sync only with a specific provider (e.g., github)

nb tmux

NB TMUX Tmux window management commands

Commands for managing nb in dedicated tmux windows.

USAGE nb tmux [command]

COMMANDS tui Open notebook TUI in a dedicated tmux window

Flags: -h/—help

Use “nb tmux [command] —help” for more information.

nb tmux tui

NB TMUX TUI Open notebook TUI in a dedicated tmux window

Opens the nb TUI in a dedicated tmux window. If the window already exists, it focuses it without disrupting the session. If not in a tmux session, falls back to running the TUI directly.

USAGE nb tmux tui [flags]

FLAGS -h, —help help for tui —window-name Name of the tmux window (default: notebook)

nb version

NB VERSION Print version information

Display the version, commit, branch, and build information for grove-notebook

USAGE nb version [flags]

FLAGS -h, —help help for version —json Output version information in JSON format