Reference

trove items, reading

Updated 1 Oct 2026

On this page

For agents

Load this page when: you need to find books, read a table of contents or read pages from the terminal

  • List books, read the table of contents, then read only the pages you need.
  • Pass --pages once for every id, or use the inline form with one range per id.
  • Use trove items status --wait to block until an import is READY or FAILED.

These commands find books and read their text. Writing commands are on trove items: write. Each book you open counts as one read.

Quick reference

CommandWhat it does
trove items listList the books you can access
trove items tocShow chapters and page ranges
trove items readRead pages from one or more books
trove items statusShow import status, and optionally wait
trove items getPrint a whole book, or one page, to stdout

trove items list

Lists every book you can access. A locked book stays in the list with a locked marker.

Usage

bash
trove items list [--shelf SHELF] [--json]

Arguments and flags

FlagValueDefaultMeaning
--shelfslug, id or nameall booksShow only books on that shelf. The name match ignores case.

Example

bash
trove items list --shelf backend --json

Output

┌──────────┬─────────────────────┬───────┬────────┬────────┬────────┐
│ ID       │ Title               │ Pages │ Status │ Health │ Enrich │
├──────────┼─────────────────────┼───────┼────────┼────────┼────────┤
│ cmabc123 │ Use The Index, Luke │ 42    │ READY  │ ok     │ ✓      │
└──────────┴─────────────────────┴───────┴────────┴────────┴────────┘

With --json the CLI prints the server response: items, enrichmentQueue and, when a book is locked, pickUrl. Each item has id, title, author, pageCount, status, health, locked and shelves.

Errors

MessageFix
Shelf '{name}' not found. Available: {list}Use a shelf slug, id or name from the list.
Not authenticated. Run 'trove auth login' first.Run trove auth login.

REST equivalent: List items.

trove items toc

Shows the table of contents of one or more books, with page ranges.

Usage

bash
trove items toc IDS [--json]

Arguments and flags

ArgumentValueDefaultMeaning
IDScomma-separated idsrequiredBooks to show.

Example

bash
trove items toc cmabc123

Output

============================================================ Use The Index, Luke
ID: cmabc123 | 42 pages
================================================================================
Anatomy of an Index (p. 1–9)
  The Leaf Nodes (p. 2–4)
Where Clauses (p. 10–25)

With --json the output has items and, for ids that were not found, not_found. Each item has id, title, pageCount, toc and tocTree.

Errors

MessageFix
No item IDs providedPass at least one id.
No table of contents available.The book has no table of contents. Read by page range instead.

REST equivalent: Reading API.

trove items read

Reads pages. You must say which pages: pass --pages, or put a range after each id.

Usage

bash
trove items read IDS [--pages RANGE] [--json]

Arguments and flags

Argument or flagValueDefaultMeaning
IDScomma-separated idsrequiredBooks to read. Each id may carry an inline range, such as id:1-5.
--pages7-9, 1,3,5, 1-3,7 or allnonePages for every id. This is the only form that takes a comma list.

The inline form takes all or ONE range per id: "id1:1-5,id2:all". If you give both forms for one id, they must agree.

Example

bash
trove items read "cmabc123:10-12" --no-session

Output

────────────────────────────────────────────────────────────
Use The Index, Luke
ID: cmabc123 | 42 pages
────────────────────────────────────────────────────────────

── Page 10 ──

# Where Clauses
…

With --json the output has items, each with pages of pageNum and content. It also carries truncatedItemIds and truncatedMessage when a response hit its size budget. A truncated book is not empty.

Errors

MessageFix
Missing page range for: {ids}Add --pages or an inline range. Use all for every page.
Invalid page range '{range}'.Use all, 1-5, 1,3,5 or 1-3,7,10. Pages start at 1 and N-M needs M of N or more.
Conflicting page ranges for '{id}': inline ':{range}' vs --pages '{pages}'. Use one form or the other.Remove one of the two.
Trove: your agent has used all {limit} reads for {month}. Reads reset on {date}. Pro has unlimited reads: {host}/billingStop and tell the user. Do not retry.
This book is locked on the Personal plan. …Tell the user. Reads of that book are refused until they upgrade or pick it as a usable book.

REST equivalent: Reading API.

trove items status

Shows whether imports have finished. Importing is asynchronous: trove items add returns when the job is queued.

Usage

bash
trove items status IDS [--wait] [--timeout SECONDS] [--json]

Arguments and flags

Argument or flagValueDefaultMeaning
IDScomma-separated idsrequiredBooks to check.
--waitnoneoffBlock until every book is READY or FAILED.
--timeoutseconds300Give up after this long. Needs --wait.

The command exits non-zero when a book FAILED or the wait timed out. Processing continues on the server, so run it again to keep waiting.

Example

bash
trove items status cmabc123 --wait --timeout 600

Output

┌──────────┬──────────────────────────┬────────┬───────┬────────┐
│ ID       │ TITLE                    │ STATUS │ PAGES │ HEALTH │
├──────────┼──────────────────────────┼────────┼───────┼────────┤
│ cmabc123 │ Use The Index, Luke      │ READY  │ 42    │ ok     │
└──────────┴──────────────────────────┴────────┴───────┴────────┘
json
{
  "items": [{ "id": "cmabc123", "title": "Use The Index, Luke", "status": "READY", "pageCount": 42, "health": "ok" }],
  "notFound": [],
  "timedOut": false
}

Errors

MessageFix
{id}: not found in your libraryCheck the id with trove items list.
Timed out after {n}s with {count} still processing: {ids}Run the same command again.

trove items get

Prints the full text of one book to stdout, joined across pages. Use it to read a book you will then edit. It does not take --json.

Usage

bash
trove items get ID[:PAGE] [--page N]

Arguments and flags

Argument or flagValueDefaultMeaning
ID[:PAGE]id, optionally with one pagerequiredBook to print.
--pageinteger, 1 or morewhole bookPrint just this page. Same as the inline id:page form.

read --pages takes ranges. get --page takes one page.

Example

bash
trove items get cmabc123 > book.md

Output

Text output only. The version the CLI reads here is the one you pass to --expect-version when you write back.

Errors

MessageFix
Page {n} not found (document has {count} pages)Pick a page inside the book.
Page numbers start at 1Use 1 or more.
Page {n} is not available: this book is Pro-restricted for your account (preview only)The book is a preview on your plan.
Invalid item ID '{id}'Use an id from trove items list.

REST equivalent: Reading API.

    trove items, reading | Trove