Claim this agent
agentCLAWHUBUnverified

Calibre Catalog Read

Read Calibre catalog data via calibredb over a Content server, and run one-book analysis workflow that writes HTML analysis block back to comments while caching analysis state in SQLite. Use for list/search/id lookups and AI reading pipeline for a selected book.

OpenClaw

Rank

62

Safety

84

Downloads

714

Updated

Apr 15, 2026

Version

1.0.5

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 714 downloads reported by the source. Last updated 4/15/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Apr 15, 2026
Protocol compatibility
OpenClawcompatibility · observed Apr 15, 2026
Adoption signal
714 downloadsadoption · observed Apr 15, 2026
Latest release
1.0.5release · observed Feb 13, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install kn747bx1r2jrbbyca61v6k06397zy93t:calibre-catalog-read
  1. Install using `clawhub skill install kn747bx1r2jrbbyca61v6k06397zy93t:calibre-catalog-read` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/NEXTAltair/calibre-catalog-read before using production credentials.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-nextaltair-calibre-catalog-read/snapshot"

Documentation

CLAWHUB

39,552 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: calibre-catalog-read
description: Read Calibre catalog data via calibredb over a Content server, and run one-book analysis workflow that writes HTML analysis block back to comments while caching analysis state in SQLite. Use for list/search/id lookups and AI reading pipeline for a selected book.
metadata: {"openclaw":{"requires":{"bins":["node","uv","calibredb","ebook-convert"],"env":["CALIBRE_PASSWORD"]},"optionalEnv":["CALIBRE_USERNAME"],"primaryEnv":"CALIBRE_PASSWORD","dependsOnSkills":["subagent-spawn-command-builder"],"localWrites":["skills/calibre-catalog-read/state/runs.json","skills/calibre-catalog-read/state/calibre_analysis.sqlite","skills/calibre-catalog-read/state/cache/**","~/.config/calibre-catalog-read/auth.json"],"modifiesRemoteData":["calibre:comments-metadata"]}}
---

# calibre-catalog-read

Use this skill for:
- Read-only catalog lookup (`list/search/id`)
- One-book AI reading workflow (`export -> analyze -> cache -> comments HTML apply`)

## Requirements

- `calibredb` available on PATH in the runtime where scripts are executed.
- `ebook-convert` available for text extraction.
- `subagent-spawn-command-builder` installed (for spawn payload generation).
- Reachable Calibre Content server URL in `--with-library` format:
  - `http://HOST:PORT/#LIBRARY_ID`
- Do not assume localhost/127.0.0.1; always pass explicit reachable `HOST:PORT`.
- If auth is enabled:
  - Preferred: set in `/home/altair/.openclaw/.env`
    - `CALIBRE_USERNAME=<user>`
    - `CALIBRE_PASSWORD=<password>`
  - Then pass only `--password-env CALIBRE_PASSWORD` (username auto-loads from env)
  - You can still override with `--username <user>` explicitly.
  - Optional auth cache file: `~/.config/calibre-catalog-read/auth.json`
    - Avoid `--save-plain-password` unless explicitly requested.

## Commands

List books (JSON):

```bash
node skills/calibre-catalog-read/scripts/calibredb_read.mjs list \
  --with-library "http://192.168.11.20:8080/#Calibreライブラリ" \
  --password-env CALIBRE_PASSWORD \
  --limit 50
```

Search books (JSON):

```bash
node skills/calibre-catalog-read/scripts/calibredb_read.mjs search \
  --with-library "http://192.168.11.20:8080/#Calibreライブラリ" \
  --password-env CALIBRE_PASSWORD \
  --query 'series:"中公文庫"'
```

Get one book by id (JSON):

```bash
node skills/calibre-catalog-read/scripts/calibredb_read.mjs id \
  --with-library "http://192.168.11.20:8080/#Calibreライブラリ" \
  --password-env CALIBRE_PASSWORD \
  --book-id 3
```

Run one-book pipeline (analyze + comments HTML apply + cache):

```bash
uv run python skills/calibre-catalog-read/scripts/run_analysis_pipeline.py \
  --with-library "http://192.168.11.20:8080/#Calibreライブラリ" \
  --password-env CALIBRE_PASSWORD \
  --book-id 3 --lang ja
```

## Cache DB

Initialize DB schema:

```bash
uv run python skills/calibre-catalog-read/scripts/analysis_db.py init \
  --db skills/calibre-catalog-read/state/calibre_analysis.sqlite
```

Check current hash state:

```bash
uv run python skills/cal

README.md

# calibre-catalog-read

Calibreカタログ参照 + 1冊単位のAI読書パイプライン。

注: このパイプラインは、テキスト解析コスト/品質の観点から漫画・コミック系タイトルを対象外にする設計です。

## セットアップ

1. OpenClaw実行環境(このスキルを実行するマシン/ランタイム)にCalibreをインストールする。
   - 必須バイナリ: `calibredb` / `ebook-convert`
2. 上記バイナリがPATHに通っていることを確認する。
3. `subagent-spawn-command-builder` を導入する(spawn payload生成に使用)。

```bash
npx clawhub@latest install subagent-spawn-command-builder
pnpm dlx clawhub@latest install subagent-spawn-command-builder
```

4. Calibre Content serverへ到達できることを確認する。
5. 接続先は必ず明示的な `HOST:PORT` を使う。
   - `http://HOST:PORT/#LIBRARY_ID`
6. 認証が有効な場合は `~/.openclaw/.env` に設定する(推奨)。
   - `CALIBRE_USERNAME=<user>`
   - `CALIBRE_PASSWORD=<password>`
   - 実行時は `--password-env CALIBRE_PASSWORD` を渡す(ユーザー名はenvから自動読込)。
   - 任意で `~/.config/calibre-catalog-read/auth.json` に認証キャッシュ可能。
   - `--save-plain-password` は平文保存のため、明示指示がない限り使わない。

## 重要

OpenClaw単体では不足です。実行環境にCalibreを入れて、必要バイナリを利用可能にしてください。

WindowsではDefender Controlled Folder Accessの影響でメタデータ/ファイル操作が失敗する場合があります。
`WinError 2/5` が出る場合は、Calibreライブラリフォルダや関連バイナリを許可対象に追加してください。

## クイックテスト(カタログ参照)

```bash
node scripts/calibredb_read.mjs list \
  --with-library "http://192.168.11.20:8080/#Calibreライブラリ" \
  --password-env CALIBRE_PASSWORD \
  --limit 5
```

## クイックテスト(1冊パイプライン)

```bash
uv run python scripts/run_analysis_pipeline.py \
  --with-library "http://192.168.11.20:8080/#Calibreライブラリ" \
  --password-env CALIBRE_PASSWORD \
  --book-id 3 --lang ja
```

## サブエージェント入力の分割(推奨)

readツールの行サイズ制限を避けるため、抽出テキストを分割し、`subagent_input.json` 経由で `source_files` を渡します。

```bash
node scripts/prepare_subagent_input.mjs \
  --book-id 3 --title "<title>" --lang ja \
  --text-path /tmp/book_3.txt --out-dir /tmp/calibre_subagent_3
```

## 低テキスト時の安全策

抽出テキストが短すぎる場合、パイプラインは `reason: low_text_requires_confirmation` で停止し、確認を要求します。
`--force-low-text` はユーザー確認後のみ使ってください。

## チャット運用(必須: 2ターン)

チャット面では必ず2ターンに分けて実行します。

1) 開始ターン(高速)
- 対象選定
- `subagent-spawn-command-builder` で `sessions_spawn` payloadを生成
- 生成payloadでspawn
- `run_state.mjs upsert`
- 即時ACK

2) 完了ターン(後続)
- 完了イベント
- `handle_completion.mjs`(内部で `get -> apply -> remove/fail`)

spawnと同一ターンで `poll/wait/apply` を行わないでください。

## spawn payload生成例(builder利用)

まず `subagent-spawn-command-builder` 側の `spawn-profiles.json` に
`calibre-read` プロファイルを定義します。

例:

```json
{
  "version": 1,
  "defaults": {
    "runTimeoutSeconds": 300,
    "cleanup": "keep"
  },
  "profiles": {
    "calibre-read": {
      "model": "openrouter/qwen/qwen3-next-80b-a3b-instruct",
      "thinking": "low",
      "runTimeoutSeconds": 300,
      "cleanup": "keep"
    }
  }
}
```

そのうえで、まずは**スキル呼び出しとして**次の意図で実行します:

- `subagent-spawn-command-builder` を使って `calibre-read` の `sessions_spawn` payloadを生成する
- `task` には `references/subagent-analysis.prompt.md` ベースの解析指示を渡す

内部実装コマンド(低レベル)は次のとおり:

```bash
uv run python ../subagent-spawn-command-builder/scripts/build_spawn_payload.py \
  --profile calibre-read \
  --task "<analysis task text based on references/subagent-analysis.prompt.md>"
```

出力JSONをそのまま `session

_meta.json

{
  "ownerId": "kn747bx1r2jrbbyca61v6k06397zy93t",
  "slug": "calibre-catalog-read",
  "version": "1.0.5",
  "publishedAt": 1770992181653
}

references/subagent-analysis.prompt.md

# Subagent Prompt Template (Model-Agnostic)

Use this template with `sessions_spawn` for analysis-only tasks.

## Inputs
- `book_id`: integer
- `lang`: `ja` or `en`
- `title`: string
- `source_files`: array of text file paths (read all in order)

## Prompt
You are an analysis worker for a Calibre pipeline.
Return ONLY valid JSON (no markdown fences, no commentary).
Follow the output schema exactly.
Language rule: write user-visible text in `lang`.
Do not call external tools. Work only from provided input.

Input:
- book_id: {{book_id}}
- lang: {{lang}}
- title: {{title}}
- source_files:
{{source_files}}

Read all files in `source_files` in order and analyze combined content.

Output schema: `references/subagent-analysis.schema.json`

Quality constraints:
- Summary: concise and factual.
- Highlights: concrete points, no fluff.
- Reread: provide actionable anchors.
- Tags: useful for retrieval and review.


## Runtime knobs (provided by user)
- model: <user-selected lightweight model id>
- thinking: <low|medium|high>
- runTimeoutSeconds: <integer seconds>

Do not invent these values. Confirm once at session start and reuse unless user requests a change.


## Runtime command rule

- If you need to execute Python scripts, always use `uv run python`.

## Strict read contract (hard requirement)

- Never call `read` without `path`.
- Always call `read` with this exact shape: `{"path":"<absolute-or-workspace-relative-file>"}`.
- First read: `subagent_input.json` using `{"path":".../subagent_input.json"}`.
- Parse `source_files` from that JSON.
- Then read each source file exactly once, in listed order, using only `{"path":"<file>"}`.
- Do not use `file_path`.
- Do not use offset/limit pagination for this workflow.
- If any read fails or path is unknown, stop and return schema-valid JSON with `analysis-error` tag instead of free text.

## Output discipline

- Return raw JSON object only.
- No markdown fences.
- No prose before/after JSON.

references/subagent-analysis.schema.json

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "CalibreSubagentAnalysisOutput",
  "type": "object",
  "required": ["book_id", "lang", "summary", "highlights", "reread", "tags"],
  "properties": {
    "book_id": { "type": "integer", "minimum": 1 },
    "lang": { "type": "string", "enum": ["ja", "en"] },
    "summary": { "type": "string", "minLength": 1, "maxLength": 1200 },
    "highlights": {
      "type": "array",
      "minItems": 2,
      "maxItems": 8,
      "items": { "type": "string", "minLength": 1, "maxLength": 400 }
    },
    "reread": {
      "type": "array",
      "minItems": 1,
      "maxItems": 8,
      "items": {
        "type": "object",
        "required": ["section", "page", "chunk_id", "reason"],
        "properties": {
          "section": { "type": "string", "minLength": 1, "maxLength": 200 },
          "page": { "type": "string", "minLength": 1, "maxLength": 120 },
          "chunk_id": { "type": "string", "minLength": 1, "maxLength": 120 },
          "reason": { "type": "string", "minLength": 1, "maxLength": 300 }
        },
        "additionalProperties": false
      }
    },
    "tags": {
      "type": "array",
      "minItems": 1,
      "maxItems": 12,
      "items": { "type": "string", "minLength": 1, "maxLength": 80 }
    },
    "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
    "notes": { "type": "string", "maxLength": 1200 }
  },
  "additionalProperties": false
}
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/NEXTAltair/calibre-catalog-read",
      "sourceUrl": "https://clawhub.ai/NEXTAltair/calibre-catalog-read",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-04-15T00:45:39.800Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-nextaltair-calibre-catalog-read/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-nextaltair-calibre-catalog-read/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-04-15T00:45:39.800Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "714 downloads",
      "href": "https://clawhub.ai/NEXTAltair/calibre-catalog-read",
      "sourceUrl": "https://clawhub.ai/NEXTAltair/calibre-catalog-read",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-04-15T00:45:39.800Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "1.0.5",
      "href": "https://clawhub.ai/NEXTAltair/calibre-catalog-read",
      "sourceUrl": "https://clawhub.ai/NEXTAltair/calibre-catalog-read",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-02-13T14:16:21.653Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-nextaltair-calibre-catalog-read/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-nextaltair-calibre-catalog-read/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 1.0.5",
      "description": "- Improved error handling and comments in Python analysis scripts. - Updated prompt instructions for subagent analysis to clarify required structure and language use. - Minor documentation adjustments for clarity in orchestration and session policies.",
      "href": "https://clawhub.ai/NEXTAltair/calibre-catalog-read",
      "sourceUrl": "https://clawhub.ai/NEXTAltair/calibre-catalog-read",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-02-13T14:16:21.653Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 9, 2026.

Sponsored

Ads related to Calibre Catalog Read and adjacent AI workflows.