关于 cli-anything-calibre
cli-anything-calibre 是用于管理 Calibre 书库、编辑元数据和转换电子书的有状态命令行界面。它封装 Calibre 工具并提供结构化输出,供脚本和 AI Agent 使用;需另行安装 Calibre。
主要功能
- 01连接并查看书库
- 02搜索、添加、导出和移除书籍
- 03查看和编辑书籍元数据
- 04管理格式并转换书籍
- 05生成 EPUB、CSV 或 OPDS 目录
- 06提供易读和 JSON 输出
适用场景
- 01使用 Calibre 查询语言搜索书库
- 02批量更新书籍元数据
- 03将书籍转换为其他格式
- 04将 EPUB 章节分别导出为 PDF
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ hkuds/ cli-anything --skill cli-anything-calibre安装后在 Claude Code 中输入/cli-anything-calibre确认已加载。
详细介绍
cli-anything-calibre
一个用于 Calibre 电子书管理的有状态 CLI 工具封装。它封装了真实的 Calibre 工具(calibredb、ebook-convert、ebook-meta),为 AI Agent 和脚本提供干净、结构化的界面,用于书库操作、元数据编辑和格式转换。
安装
此 CLI 作为 cli-anything-calibre 软件包的一部分安装:
pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=calibre/agent-harness
前置条件:
- Python 3.10+
- 系统上必须安装 Calibre(硬性依赖)
# Debian/Ubuntu
sudo apt-get install calibre
# macOS
brew install --cask calibre
# Verify tools are in PATH
which calibredb
which ebook-convert
which ebook-meta
用法
基本命令
# Show help
cli-anything-calibre --help
# Start interactive REPL mode
cli-anything-calibre
# Connect to a Calibre library
cli-anything-calibre library connect ~/Calibre\ Library
# Run with JSON output (for agent consumption)
cli-anything-calibre --json books list
REPL 模式
在不带子命令调用时,CLI 会进入交互式 REPL 会话:
cli-anything-calibre
# Enter commands interactively with tab-completion and history
# Use 'help' to see available commands
# Use 'quit' or 'exit' to leave
命令组
Library
书库管理命令。
| 命令 | 描述 |
|---|---|
connect <path> | 设置活动书库路径 |
info | 显示书库统计信息(书籍数量、格式、数据库大小) |
check | 使用 calibredb check_library 验证书库完整性 |
Books
书籍操作(封装 calibredb)。
| 命令 | 描述 |
|---|---|
list | 列出书籍,支持筛选和排序 |
search <query> | 使用 Calibre 查询语言搜索 |
add <files> | 将书籍文件添加到书库 |
remove <ids> | 删除书籍(移至回收站或永久删除) |
show <id> | 显示书籍的完整元数据 |
export <ids> | 将书籍导出到目录 |
export-chapters <id> | 将每章导出为单独的 PDF(需要 EPUB 格式) |
Meta
元数据编辑(封装 calibredb set_metadata)。
| 命令 | 描述 |
|---|---|
get <id> [field] | 获取元数据(全部或特定字段) |
set <id> <field> <value> | 设置元数据字段 |
embed <ids> | 将元数据嵌入书籍文件 |
Formats
格式管理(封装 calibredb + ebook-convert)。
| 命令 | 描述 |
|---|---|
list <id> | 列出书籍可用的格式 |
add <id> <file> | 为书籍添加格式 |
remove <id> <fmt> | 从书籍中移除格式 |
convert <id> <input_fmt> <output_fmt> | 转换书籍格式 |
Custom
自定义列(封装 calibredb)。
| 命令 | 描述 |
|---|---|
list | 列出所有自定义列 |
add <label> <name> <type> | 创建自定义列 |
remove <label> | 删除自定义列 |
set <id> <label> <value> | 设置自定义字段值 |
Catalog
目录生成。
| 命令 | 描述 |
|---|---|
catalog <output> | 生成书库目录(EPUB、CSV 或 OPDS) |
示例
连接并列出书籍
连接到你的 Calibre 书库并列出书籍。
cli-anything-calibre library connect ~/Calibre\ Library
cli-anything-calibre books list
# Or with JSON output
cli-anything-calibre --json books list --search "author:asimov"
搜索和筛选
使用 Calibre 查询语言搜索书籍。
cli-anything-calibre books search "title:Foundation"
cli-anything-calibre books search "author:asimov and tags:scifi"
cli-anything-calibre books search "rating:>3"
元数据编辑
设置书籍的元数据字段。
cli-anything-calibre meta set 42 title "New Title"
cli-anything-calibre meta set 42 series "Foundation"
cli-anything-calibre meta set 42 series_index 1
cli-anything-calibre meta set 42 tags "scifi,classic"
cli-anything-calibre meta set 42 rating 5
格式转换
在电子书格式之间转换。
cli-anything-calibre formats convert 42 EPUB MOBI
cli-anything-calibre formats convert 42 EPUB PDF --output /tmp/book.pdf
将章节导出为 PDF
将 EPUB 的每一章导出为单独的 PDF 文件。
cli-anything-calibre books export-chapters 42 --to-dir ./pdfs
cli-anything-calibre books export-chapters 42 --to-dir ./pdfs --chapters 1-5
Calibre 查询语言
与 books search 和 books list --search 一起使用:
author:asimov # Author contains "asimov"
title:"Foundation" # Title phrase
tags:fiction # Tag match
rating:>3 # Rating greater than 3
series:"Foundation" # Series match
pubdate:[2020-01-01,2021-12-31] # Date range
identifiers:isbn:1234567890 # Specific identifier
has:cover # Has cover image
not:tags:fiction # Negation
author:asimov and tags:scifi # Boolean AND
关键元数据字段
| 字段 | 类型 | 描述 |
|---|---|---|
title | text | 书名 |
authors | text | 作者姓名(以 & 分隔) |
tags | text | 以逗号分隔的标签 |
series | text | 系列名称 |
series_index | float | 系列中的位置 |
rating | float | 评分 1-5 |
publisher | text | 出版商名称 |
pubdate | datetime | 出版日期 |
comments | text | 描述/评论 |
languages | text | 语言代码 |
identifiers | text | ISBN、ASIN 等(type:value) |
支持的格式
输入: EPUB、MOBI、AZW、AZW3、PDF、HTML、DOCX、ODT、FB2、TXT、RTF、LIT 等
输出(转换): EPUB、MOBI、AZW3、PDF、HTML、DOCX、TXT 等
状态管理
CLI 通过以下方式维护会话状态:
- 会话文件:
~/.cli-anything-calibre/session.json - 书库路径持久化:活动书库跨会话保存
- 环境变量覆盖:
CALIBRE_LIBRARY环境变量
输出格式
所有命令均支持两种输出模式:
- 人类可读(默认):表格、颜色、格式化文本
- 机器可读(
--json标志):供 Agent 使用的结构化 JSON
# Human output
cli-anything-calibre books list
# JSON output for agents
cli-anything-calibre --json books list
面向 AI Agent
以编程方式使用此 CLI 时:
- 始终使用
--json标志以获得可解析的输出 - 检查返回码——0 表示成功,非零表示错误
- 解析 stderr 以获取失败时的错误信息
- 验证输出是否存在——在导出/转换操作之后
- 使用
--library标志或CALIBRE_LIBRARY环境变量指定书库路径 - 章节导出需要 EPUB 格式——如有需要请先转换
更多信息
- 完整文档:参见包中的 README.md
- 架构 SOP:参见 agent-harness 目录中的 CALIBRE.md
- 测试覆盖:参见 tests 目录中的 test_core.py 和 test_full_e2e.py
- 方法论:参见 cli-anything-plugin 中的 HARNESS.md
版本
1.0.0