cli + tui to publish to leaflet (wip) & manage tasks, notes & watch/read lists 🍃
charm leaflet readability golang

Books#

The book workflow revolves around Open Library search results. Each command lives under noteleaf media book.

Add Books#

Search Open Library and pick a result:

noteleaf media book add "Project Hail Mary"

Flags:

  • -i, --interactive: open the TUI browser (currently shows your local list—useful for triage).
  • Plain mode prints the top five matches inline and prompts for a numeric selection.

Behind the scenes Noteleaf records the title, authors, edition details, and any subjects returned by the API. New entries start in the queued status.

Manage the Reading List#

List and filter:

# Everything
noteleaf media book list --all

# Only active reads
noteleaf media book list --reading

# Completed books
noteleaf media book list --finished

Each line shows the ID, title, author, status, progress percentage, and any captured metadata (publishers, edition counts, etc.).

Remove items you no longer care about:

noteleaf media book remove 42

Track Progress#

You can explicitly set the status:

noteleaf media book reading 7
noteleaf media book finished 7
noteleaf media book update 7 queued

But the fastest way is to update the percentage:

noteleaf media book progress 7 45   # Moves status to reading and records start time
noteleaf media book progress 7 100  # Marks finished and records completion time

Logic applied automatically:

  • 0% → resets to queued and clears the “started” timestamp.
  • 1‑99% → flips to reading (start time captured).
  • 100% → marks finished, sets end time, and locks progress at 100%.

Common workflows:

  • Focus view: noteleaf media book list --reading | fzf to pick the next session book.
  • Backlog grooming: noteleaf media book list --queued to prune items before they go stale.
  • Author sprint: pipe the list to rg to filter by author (noteleaf media book list --all | rg "Le Guin").

The TUI (noteleaf media book add -i or noteleaf media book list with the --interactive switch) supports / to search titles/authors/notes live and v for a detailed preview with timestamps.

Metadata and Notes#

Each record stores:

  • Title & authors (comma separated when multiple).
  • Edition count, publishers, subject tags, or cover IDs exposed as inline notes.
  • Added/started/finished timestamps.
  • Optional page count (if Open Library exposes it).

Use those IDs anywhere else (tasks or notes). Example note snippet:

## Reading Log
- 2024-02-01 → Started book #7 ("Project Hail Mary")
- 2024-02-05 → Captured ideas in note #128 linked back to the book.

Because media lives in the same database as tasks and notes, full-text search will surface those references instantly.