modules/programs/agents/shared/skills/add-book/SKILL.md
Add an ebook, comic, PDF, or audiobook file to AutoCaliWeb through its ingest folder. Use when the user says "add book", "import ebook", "add to AutoCaliWeb", or provides a book file path/URL to add to the library.
npx skillsauth add MichaelVessia/nixos-config add-bookInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Import a user-provided book file by copying it into AutoCaliWeb's watched ingest folder. AutoCaliWeb then handles import, metadata, cover, conversion, and EPUB fixing according to its configured automation.
AUTOCALIWEB_INGEST_DIR - ingest path inside the AutoCaliWeb LXC, currently /opt/acw-book-ingestAUTOCALIWEB_PROXMOX_HOST - Proxmox SSH host, currently proxmoxAUTOCALIWEB_CTID - AutoCaliWeb LXC id, currently 101AUTOCALIWEB_URL - UI/OPDS URL for reporting and CLI verificationAUTOCALIWEB_USERNAME - optional, required for the autocaliweb CLIAUTOCALIWEB_PASSWORD - optional, required for the autocaliweb CLIThe wrapper uploads through ssh proxmox + pct exec 101 when the Proxmox env
vars are present. Without them, it treats AUTOCALIWEB_INGEST_DIR as a local
path.
The installed autocaliweb CLI is read-only. Use it for status/search/recent
verification, not for ingesting files. It always emits a single JSON envelope
with ok, command, result or error, and next_actions.
autocaliweb status # OPDS status + catalog stats
autocaliweb stats # database counts
autocaliweb recent --limit 25 # recently added books
autocaliweb search "Book Title" # search books through OPDS
autocaliweb book-info <uuid> # Calibre Companion metadata
autocaliweb shelves # OPDS shelves
The user must provide one of:
/home/michaelvessia/Downloads/book.epubhttp:// or https:// file URL they are allowed to downloadIf the user gives only a title/author, ask for a source file or direct download URL. Do not search for pirated copies.
This skill has side effects. Confirm before copying because AutoCaliWeb may import, convert, modify metadata, and move the file into the Calibre library.
bash scripts/add-book.sh <file-or-url> [--name "Book Title.epub"] [--ingest-dir /path/to/ingest] [--proxmox-host proxmox] [--ctid 101] [--dry-run]
Examples:
bash scripts/add-book.sh ~/Downloads/example.epub
bash scripts/add-book.sh "https://example.com/book.epub" --name "Example.epub"
bash scripts/add-book.sh ~/Downloads/example.pdf --dry-run
bash scripts/add-book.sh <source> --dry-run to validate paths.--dry-run to copy/download into /opt/acw-book-ingest in LXC 101.autocaliweb recent --limit 10 or
autocaliweb search "<title>" to verify after AutoCaliWeb has had time to
import the file.AUTOCALIWEB_URL is set, include it for follow-up verification./calibre-library; Calibre metadata must be updated
by AutoCaliWeb/Calibre, not a raw filesystem copy.autocaliweb returns an env-missing envelope, fall back to reporting the UI
URL and queued ingest path instead of claiming verification succeeded.tools
User guide for the local squash-safe `stack` CLI for stacked PR/MR repair on GitHub and GitLab. Use when someone asks how to inspect, track, sync, merge, document, or undo stacked pull requests / merge requests in squash-merge repositories. Prefer this tool over GitHub's `gh stack` command for this workflow.
tools
Control herdr from inside it. Manage workspaces and tabs, split panes, spawn agents, read output, and wait for state changes — all via CLI commands that talk to the running herdr instance over a local unix socket. Use when running inside herdr (HERDR_ENV=1).
development
Inspect my self-hosted AutoCaliWeb library. Use when the user asks about AutoCaliWeb, books in Calibre, OPDS status, recent imports, shelves, catalog stats, or wants to search the ebook library.
data-ai
Subscribe a YouTube channel in TubeArchivist, queue its top videos by views from recent uploads, wait for the first file, scan Jellyfin, and rename + lock the channel folder to a friendly display name. Use when the user says "add a youtube channel", "subscribe to <channel>", or wants a curated TubeArchivist + Jellyfin import for a creator.