Ebook — Digital Book Collection & Reading Tracker
version: "1.0.0"
by ckchzh · published 2026-03-22
$ claw add gh:ckchzh/ckchzh-ebook---
version: "1.0.0"
author: BytesAgain
homepage: https://bytesagain.com
source: https://github.com/bytesagain/ai-skills
description: "Manage ebook collections, track reading progress, and export highlights using bash and Python. Use when cataloging books, logging reading sessions, or organizing digital libraries."
---
# Ebook — Digital Book Collection & Reading Tracker
A comprehensive ebook management tool for cataloging digital books, tracking reading progress, managing highlights and annotations, rating and reviewing books, and exporting your library. All data is stored locally in JSONL format for portability and privacy.
Prerequisites
Data Storage
All ebook records, reading sessions, highlights, and reviews are stored in `~/.ebook/data.jsonl`. Each record is a JSON object with fields including `id`, `type` (book, session, highlight, review), `title`, `author`, `format`, `pages`, `progress`, `created_at`, and additional type-specific fields.
Commands
Run via: `bash scripts/script.sh <command> [options]`
| Command | Description |
|---|---|
| `add` | Add a new ebook to the collection with title, author, format, and page count |
| `list` | List all ebooks in the collection with optional filters by author, format, or status |
| `search` | Search ebooks by title, author, tag, or keyword across all fields |
| `update` | Update metadata for an existing ebook (title, author, tags, status) |
| `delete` | Remove an ebook from the collection by ID |
| `read` | Log a reading session with start page, end page, and duration |
| `progress` | Show reading progress for a specific book or all books |
| `highlight` | Add a highlighted passage or annotation linked to a book and page |
| `review` | Add or update a rating (1-5 stars) and review text for a book |
| `stats` | Show reading statistics: total books, pages read, time spent, averages |
| `export` | Export the library or highlights to JSON, CSV, or Markdown format |
| `help` | Show usage information |
| `version` | Print the tool version |
Usage Examples
# Add a new ebook
bash scripts/script.sh add --title "Deep Work" --author "Cal Newport" --format epub --pages 296 --tags "productivity,focus"
# List all books
bash scripts/script.sh list
# List only unread books
bash scripts/script.sh list --status unread
# Search by author
bash scripts/script.sh search --author "Newport"
# Search by keyword
bash scripts/script.sh search --query "productivity"
# Update book metadata
bash scripts/script.sh update --id abc123 --status reading --tags "self-help,focus"
# Delete a book
bash scripts/script.sh delete --id abc123
# Log a reading session (30 minutes, pages 1-45)
bash scripts/script.sh read --id abc123 --start-page 1 --end-page 45 --duration 30
# Check progress
bash scripts/script.sh progress --id abc123
# Add a highlight
bash scripts/script.sh highlight --id abc123 --page 42 --text "The key to developing deep work is..."
# Write a review
bash scripts/script.sh review --id abc123 --rating 5 --text "Transformative book on focused work"
# View reading stats
bash scripts/script.sh stats
# Export library to markdown
bash scripts/script.sh export --format md --output library.md
# Export highlights to CSV
bash scripts/script.sh export --format csv --type highlights --output highlights.csvOutput Format
`list` and `search` return formatted tables to stdout. `progress` shows a progress bar with percentage. `stats` returns a summary with totals and averages. `export` writes to the specified file and confirms the path. All metadata commands return JSON.
Notes
---
Powered by BytesAgain | bytesagain.com | hello@bytesagain.com
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...