cli-anything-calibre は何をしますか?
Calibre 電子書籍管理のためのステートフルCLIハーネス。実際の Calibre ツール (calibredb、ebook-convert、ebook-meta) をラップし、AIエージェントやスクリプトに、ライブラリ操作、メタデータ編集、フォーマット変換のためのクリーンで構造化されたインターフェースを提供します。
インストール
この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
# ツールがパスに存在することを確認
which calibredb
which ebook-convert
which ebook-meta
使用方法
基本コマンド
# ヘルプを表示
cli-anything-calibre --help
# インタラクティブREPLモードを開始
cli-anything-calibre
# Calibre ライブラリに接続
cli-anything-calibre library connect ~/Calibre\ Library
# JSON出力で実行(エージェント消費用)
cli-anything-calibre --json books list
REPLモード
サブコマンドなしで呼び出された場合、CLIはインタラクティブなREPLセッションに入ります:
cli-anything-calibre
# タブ補完と履歴で対話的にコマンドを入力
# 使用可能なコマンドを表示するには 'help' を使用
# 終了するには 'quit' または 'exit' を使用
コマンドグループ
ライブラリ
ライブラリ管理コマンド。
| コマンド | 説明 |
|---|---|
connect <path> | アクティブなライブラリパスを設定 |
info | ライブラリ統計情報(書籍数、フォーマット、DBサイズ)を表示 |
check | calibredb check_library を使用してライブラリの整合性を確認 |
書籍
書籍操作(calibredb をラップ)。
| コマンド | 説明 |
|---|---|
list | フィルタリングとソートで書籍を一覧表示 |
search <query> | Calibre クエリ言語で検索 |
add <files> | ライブラリに書籍ファイルを追加 |
remove <ids> | 書籍を削除(ゴミ箱に移動または完全削除) |
show <id> | 書籍の全メタデータを表示 |
export <ids> | 書籍をディレクトリにエクスポート |
export-chapters <id> | 各章を個別のPDFとしてエクスポート(EPUB形式が必要) |
メタデータ
メタデータ編集(calibredb set_metadata をラップ)。
| コマンド | 説明 |
|---|---|
get <id> [field] | メタデータを取得(全フィールドまたは特定フィールド) |
set <id> <field> <value> | メタデータフィールドを設定 |
embed <ids> | メタデータを書籍ファイルに埋め込み |
フォーマット
フォーマット管理(calibredb + ebook-convert をラップ)。
| コマンド | 説明 |
|---|---|
list <id> | 書籍の利用可能なフォーマットを一覧表示 |
add <id> <file> | 書籍にフォーマットを追加 |
remove <id> <fmt> | 書籍からフォーマットを削除 |
convert <id> <input_fmt> <output_fmt> | 書籍フォーマットを変換 |
カスタム
カスタムカラム(calibredb をラップ)。
| コマンド | 説明 |
|---|---|
list | すべてのカスタムカラムを一覧表示 |
add <label> <name> <type> | カスタムカラムを作成 |
remove <label> | カスタムカラムを削除 |
set <id> <label> <value> | カスタムフィールド値を設定 |
カタログ
カタログ生成。
| コマンド | 説明 |
|---|---|
catalog <output> | ライブラリのカタログを生成(EPUB、CSV、またはOPDS) |
例
ライブラリに接続して書籍を一覧表示
Calibre ライブラリに接続し、書籍を一覧表示します。
cli-anything-calibre library connect ~/Calibre\ Library
cli-anything-calibre books list
# またはJSON出力
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 # 著者に「asimov」が含まれる
title:"Foundation" # タイトルが「Foundation」と一致
tags:fiction # タグが「fiction」と一致
rating:>3 # 評価が3より大きい
series:"Foundation" # シリーズが「Foundation」と一致
pubdate:[2020-01-01,2021-12-31] # 日付範囲
identifiers:isbn:1234567890 # 特定の識別子
has:cover # カバー画像がある
not:tags:fiction # 否定
author:asimov and tags:scifi # ブール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フラグ): エージェント消費用の構造化JSON
# 人間向け出力
cli-anything-calibre books list
# エージェント向けJSON出力
cli-anything-calibre --json books list
AIエージェント向け
このCLIをプログラム的に使用する場合:
- 常に
--jsonフラグ を使用して解析可能な出力を取得する - リターンコードを確認 - 0は成功、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