Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/xwmx/nb/llms.txt

Use this file to discover all available pages before exploring further.

nb treats todos as first-class items stored as plain Markdown files with a predictable structure. Each todo centers on a single primary item — represented as an # [ ] Title heading — and can carry optional metadata in labelled sections: a due date, a description, a task checklist, related links, and tags. Because everything is plain text, todos are fully searchable, version-controlled, and editable with any text editor.

Creating Todos

Use nb todo add (shortcut: nb to add) to create a new todo. The title is the first positional argument:
# create a simple todo
nb todo add "Example todo one."
# Added: [1] ✔️ [ ] Example todo one.
Every todo is stored as a Markdown file with the title rendered as a task heading:
# [ ] Example todo one.

Due Date

Add an optional due date with --due <date>. The date is placed in a ## Due section:
nb todo add "Example todo two." --due "2100-01-01"
# [ ] Example todo two.

## Due

2100-01-01

Description

Add a longer description with --description <description>:
nb todo add "Example todo three." --description "Example description."
# [ ] Example todo three.

## Description

Example description.

Tasks (Subtask Checklist)

Add one or more subtasks with --task <task>. Each task becomes a Markdown checklist item inside a ## Tasks section:
nb todo add "Example todo seven." \
  --task "Task one."              \
  --task "Task two."              \
  --task "Task three."
# [ ] Example todo seven.

## Tasks

- [ ] Task one.
- [ ] Task two.
- [ ] Task three.

Tags

Attach #hashtags with --tags <tag1>,<tag2>...:
nb todo add "Example todo five." --tags tag1,tag2
# [ ] Example todo five.

## Tags

#tag1 #tag2
Link to other notes, bookmarks, or external URLs with --related (-r):
nb todo add "Example todo four." --related example:123 -r https://example.com
# [ ] Example todo four.

## Related

- [[example:123]]
- <https://example.com>

Todo File Format

A complete todo file with all optional sections looks like:
# [ ] Example todo title.

## Due

2100-01-01

## Description

A longer explanation of this todo.

## Tasks

- [ ] Subtask one.
- [x] Subtask two (done).
- [ ] Subtask three.

## Related

- [[example:123]]
- <https://example.com>

## Tags

#tag1 #tag2
When a todo is marked as done, the heading changes from # [ ] to # [x].

Listing Todos

nb todos lists all todos in the current notebook, showing open (✔️ [ ]) and closed (✅ [x]) states:
nb todos
# [6] ✔️ [ ] Example todo six.
# [5] ✅ [x] Example todo five.
# [4] ✔️ [ ] Example todo four.
# [3] ✅ [x] Example todo three.
# [2] ✅ [x] Example todo two.
# [1] ✔️ [ ] Example todo one.
List todos in a specific notebook by adding the notebook name with a colon:
nb todos sample:
# [sample:4] ✅ [x] Sample todo four.
# [sample:3] ✔️ [ ] Sample todo three.

Open and Closed Filters

# list only open (undone) todos
nb todos open

# list only closed (done) todos
nb todos closed

Marking Todos Done and Undone

1

Create a todo

nb todo add "Example todo six."
# Added: [6] ✔️ [ ] Example todo six.
2

Mark it as done

Use nb do <id> (or nb todo do <id>):
nb do 6
# Done: [6] ✅ [x] Example todo six.
3

Reopen it

Use nb undo <id> (or nb todo undo <id>):
nb undo 6
# Undone: [6] ✔️ [ ] Example todo six.

Tasks Within Todos

Tasks (subtasks) inside a todo file are standard Markdown checklist items. nb tasks (shortcut: nb t) lists all tasks across todos and other Markdown documents.

Listing Tasks

# list tasks in a specific item
nb tasks 7
# [7] ✔️ [ ] Example todo seven.
# ------------------------------
# [7 1] [x] Task one.
# [7 2] [x] Task two.
# [7 3] [ ] Task three.

# list all tasks in a notebook
nb tasks example:

# list only open tasks
nb tasks open 7

# list only closed tasks
nb tasks closed 7
Tasks are identified by the item selector followed by a space and the sequential task number: [7 2] means task 2 inside item 7.

Completing and Reopening Tasks

Use nb do <item-id> <task-number> to mark an individual task done:
# mark task 2 in item 9 as done
nb do 9 2
# Done: [9 2] [x] Task two.
Use nb undo <item-id> <task-number> to reopen a task:
# reopen task 2 in item 9
nb undo 9 2
# Undone: [9 2] [ ] Task two.
Tasks are not limited to todo files. Any Markdown document that contains - [ ] or - [x] list items will show up in nb tasks output and can be completed with nb do.

Example Workflow

The following end-to-end example shows creating, listing, and completing a todo with tasks:
# 1. Create a todo with two subtasks
nb todo add "Write release notes." \
  --due "2024-06-01"              \
  --task "Draft changelog entry." \
  --task "Review with team."      \
  --tags release,docs

# 2. List all open todos
nb todos open
# [1] ✔️ [ ] Write release notes.

# 3. View the full todo
nb show 1 --print
# # [ ] Write release notes.
# ## Due
# 2024-06-01
# ## Tasks
# - [ ] Draft changelog entry.
# - [ ] Review with team.
# ## Tags
# #release #docs

# 4. Mark the first task done
nb do 1 1
# Done: [1 1] [x] Draft changelog entry.

# 5. Mark the second task done
nb do 1 2
# Done: [1 2] [x] Review with team.

# 6. Mark the whole todo as done
nb do 1
# Done: [1] ✅ [x] Write release notes.

Quick Reference

Create Todo

nb todo add <title>, nb to add <title>

List Todos

nb todos, nb todos open, nb todos closed

Mark Done / Undone

nb do <id>, nb undo <id>

Manage Tasks

nb tasks <id>, nb do <id> <task-n>, nb undo <id> <task-n>

Build docs developers (and LLMs) love