cli + tui to publish to leaflet (wip) & manage tasks, notes & watch/read lists 🍃
charm
leaflet
readability
golang
1---
2title: Books
3sidebar_label: Books
4description: Build and maintain your reading list with Open Library metadata.
5sidebar_position: 2
6---
7
8# Books
9
10The book workflow revolves around Open Library search results. Each command lives under `noteleaf media book`.
11
12## Add Books
13
14Search Open Library and pick a result:
15
16```sh
17noteleaf media book add "Project Hail Mary"
18```
19
20Flags:
21
22- `-i, --interactive`: open the TUI browser (currently shows your local list—useful for triage).
23- Plain mode prints the top five matches inline and prompts for a numeric selection.
24
25Behind the scenes Noteleaf records the title, authors, edition details, and any subjects returned by the API. New entries start in the `queued` status.
26
27## Manage the Reading List
28
29List and filter:
30
31```sh
32# Everything
33noteleaf media book list --all
34
35# Only active reads
36noteleaf media book list --reading
37
38# Completed books
39noteleaf media book list --finished
40```
41
42Each line shows the ID, title, author, status, progress percentage, and any captured metadata (publishers, edition counts, etc.).
43
44Remove items you no longer care about:
45
46```sh
47noteleaf media book remove 42
48```
49
50## Track Progress
51
52You can explicitly set the status:
53
54```sh
55noteleaf media book reading 7
56noteleaf media book finished 7
57noteleaf media book update 7 queued
58```
59
60But the fastest way is to update the percentage:
61
62```sh
63noteleaf media book progress 7 45 # Moves status to reading and records start time
64noteleaf media book progress 7 100 # Marks finished and records completion time
65```
66
67Logic applied automatically:
68
69- `0%` → resets to `queued` and clears the “started” timestamp.
70- `1‑99%` → flips to `reading` (start time captured).
71- `100%` → marks `finished`, sets end time, and locks progress at 100%.
72
73## Reading Lists and Search
74
75Common workflows:
76
77- **Focus view**: `noteleaf media book list --reading | fzf` to pick the next session book.
78- **Backlog grooming**: `noteleaf media book list --queued` to prune items before they go stale.
79- **Author sprint**: pipe the list to `rg` to filter by author (`noteleaf media book list --all | rg "Le Guin"`).
80
81The 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.
82
83## Metadata and Notes
84
85Each record stores:
86
87- Title & authors (comma separated when multiple).
88- Edition count, publishers, subject tags, or cover IDs exposed as inline notes.
89- Added/started/finished timestamps.
90- Optional page count (if Open Library exposes it).
91
92Use those IDs anywhere else (tasks or notes). Example note snippet:
93
94```markdown
95## Reading Log
96- 2024-02-01 → Started book #7 ("Project Hail Mary")
97- 2024-02-05 → Captured ideas in note #128 linked back to the book.
98```
99
100Because media lives in the same database as tasks and notes, full-text search will surface those references instantly.