poxenstudio/mybooks/mybooks
Claude Code and agent skill by poxenstudio/mybooks
- community
Checking that the SKILL.md file is still in the repository.
MyBooks是个人书库管理系统,提供电子书及实体书管理,包括存储、分类、搜索和元数据管理功能。你可以帮助用户:查询书库统计信息和阅读统计,搜索/浏览书籍,获取书籍详情,更新书籍元数据(书名、作者、标签、分类、简介等),自动联网填充书籍信息,联网搜索元数据候选并按仅信息/仅封面/仅作者及简介等模式套用,调用 EPUB 修复工具精修书籍,发送书籍到邮箱或阅读器设备,上传电子书(可为已有书籍新增或替换格式文件)或通过ISBN添加实体书,管理阅读状态(想读/在读/已读/收藏),查询/手动更新某本书分格式的阅读时长与进度,按日期补录/修改/删除阅读时间(v4.3.0+),管理书单(创建/浏览/加书/移书/点赞,v4.3.0+),查看作者信息和分类信息,导入第三方阅读App的划线与想法(如微信读书,需配合微信读书 skill 读取原始数据),以及MiMo TTS有声书功能(配置TTS API、EPUB转有声书、查询转换进度、克隆音色与语音提示词管理,需管理员权限),免凭据的外部元数据检索(无名图书 book345:搜书/榜单/详情/AI导读),批量编辑多本书的元数据,整库体检与并发考证(缺 ISBN/出版社/出版日期等),按计划合并写回并复读校验,以及作者名规范化(拆分/清洗/归一,只出计划)等
Install
npx vskill@latest install poxenstudio/mybooks/mybooksSKILL.md
MyBooks
Requirements
例外:wuming_search/wuming_toplist/wuming_recent_hot/wuming_detail/wuming_guide/wuming_tags访问的是公开站点 book345,不需要上面三个环境变量,其余工具仍然必须配置。
安全提示:请勿将凭据写入共享或全局配置文件(如~/.openclaw/.env),以避免凭据被其他 agent 或进程意外读取。建议通过会话级环境变量或专用密钥管理工具传入凭据。
权限与网络声明
- 网络访问(必需):本 skill 是 MyBooks 服务器的 REST 客户端,除
wuming_*外的所有工具都通过 HTTP(S) 访问且仅访问用户自己配置的MYBOOKS_HOST,不连接任何其他地址,无遥测、无第三方回传。 - 外部网络(仅 `wuming_*`):
wuming_search/wuming_toplist/wuming_recent_hot/wuming_detail/wuming_guide/wuming_tags会访问公开站点https://www.book345.com/api;不携带任何凭据、不上传任何本地数据,只用于读取公开图书元数据。 - 会修改数据的工具:
edit_book、set_folder、rename_folder、push_notes(dry_run:false)、clear_imported_notes、book_fill、book_refer_apply、epub_fix、save_meta_to_file、book_upload(含指定book_id的替换模式)、book_add_by_isbn、wants/favorite/reading/read_done、set_reading_time、delete_reading_time、书单的创建/修改/删除/增删书/点赞、以及全部tts_*写操作、batch_edit(dry_run:false)、library_enrich_apply(dry_run:false)、library_enrich(dry_run:false)、book_add_from_wuming(auto_add:true)。authors_normalize与library_audit/library_research*为只读。删除类工具(delete_booklist、delete_reading_time)脚本内强制confirm:true两步确认。 - 本地文件读取:仅
book_upload(新建入库,或为已有书籍新增/替换格式文件;限电子书扩展名 epub/mobi/azw/azw3/pdf/txt/lrf/rtf/djvu/docx)和tts_clone_upload(限 mp3/wav,≤7MB)会读取用户明确给出路径的文件并上传到MYBOOKS_HOST;agent 不得自行挑选文件上传。 - 本地文件写入:仅
tts_clone_audio的save_to(必须.wav结尾,且不覆盖已存在文件)。 - 凭据:见下方"认证方式"。
通用响应格式与认证方式
通用 JSON 响应结构
所有 API 均返回如下格式:
常见错误码:
err 值 | 含义 | |
|---|---|---|
"ok" | 操作成功 | |
"user.need_login" | 未登录或登录态已过期 | |
"permission" | 无权限执行该操作 | |
"params.invalid" | 请求参数错误 | |
"params.book.invalid" | 书籍不存在或 ID 错误 | |
"task.running" | 后台任务正在进行中,稍后重试 | |
"tts.converting" | TTS 转换任务正在运行 | |
"tts.no_config" | 未配置 TTS API | |
"clone.exists" | 克隆音色名称已存在 | |
"clone.not_found" | 克隆音色不存在 | |
"clone.too_large" | 文件超过 7MB 限制 | |
"clone.invalid_format" | 仅支持 MP3/WAV 格式 | |
"prompt.exists" | 提示词名称已存在 | |
"prompt.not_found" | 提示词不存在 |
认证方式
- 脚本通过
MYBOOKS_USER/MYBOOKS_PASSWORD环境变量自动调用/api/user/sign_in完成登录 - 服务端通过 Secure Cookie(
user_id+lt)维持会话 - 若响应中出现
err=user.need_login,脚本会自动重新登录后重试一次;仍失败则报错退出 - 凭据去向说明:
MYBOOKS_USER/MYBOOKS_PASSWORD只会以表单形式 POST 到用户自己配置的MYBOOKS_HOST的/api/user/sign_in,不会发往任何其他地址;登录请求不跟随重定向;MYBOOKS_HOST必须是http(s)://host[:port]且不含内嵌账号密码,对非内网地址要求 https - 必须在调用前配置
MYBOOKS_HOST、MYBOOKS_USER、MYBOOKS_PASSWORD三个环境变量,否则脚本直接报错退出
外部元数据源工具列表(无名图书 book345,无需凭据)
这一组工具直接访问公开站点https://www.book345.com/api,不需要 `MYBOOKS_HOST/USER/PASSWORD`,不携带任何凭据、不上传任何本地数据,全部只读。适合「先把书查清楚,再决定是否入库」以及「书库服务器没开 / 还没有书库」的场景。
wuming_search — 搜书(外部)
使用场景:按书名/作者/ISBN/关键词在 book345 检索,拿到 ISBN、出版社、出版日期、评分、简介后再决定入库
参数:
| 参数 | 类型 | 必填 | 说明 | |
|---|---|---|---|---|
query | string | ✅ | 关键词:书名、作者、ISBN 均可 | |
count | int | ❌ | 返回数量,默认 10 |
执行脚本:
响应示例(裁剪):
源站字段是pubDate(驼峰),不是pub_date。
wuming_toplist — 精选榜单(外部)
使用场景:逛高分榜/新书榜,发现值得加入想读清单的书(配合 wants 使用)
参数:
| 参数 | 类型 | 必填 | 说明 | |
|---|---|---|---|---|
type | string | ❌ | top 高分(默认)/ cold 遗珠 / new 新书 / weekly 周更 / law / social / career / history / tech | |
count | int | ❌ | 数量,默认 10 |
执行脚本:
wuming_recent_hot — 近期热门(外部)
使用场景:看最近更新/热门的书,可按分类过滤
参数:
| 参数 | 类型 | 必填 | 说明 | |
|---|---|---|---|---|
tag | string | ❌ | 分类筛选,如「文学」「历史」 | |
count | int | ❌ | 数量,默认 10 |
执行脚本:
wuming_detail — 图书详情(外部)
使用场景:已知 ISBN,取权威详情用于核对或回填(作者、出版社、出版日期、页数、定价、评分、简介、目录)
参数:
| 参数 | 类型 | 必填 | 说明 | |
|---|---|---|---|---|
isbn | string | ✅ | ISBN |
执行脚本:
响应关键字段:title / author / publisher / pubDate / summary / tags / rate / binding / price / catelogues
wuming_guide — AI 导读(外部)
使用场景:给一本书生成/获取 AI 书评、核心看点、读者共识、章节摘要
参数:
| 参数 | 类型 | 必填 | 说明 | |
|---|---|---|---|---|
isbn | string | ✅ | ISBN |
执行脚本:
源站对部分书目返回{"summarys": null},属正常情况,不是调用失败。
wuming_tags — 分类列表(外部)
使用场景:查 book345 支持哪些分类 tag,供 wuming_recent_hot 的 tag 参数使用
参数:无
执行脚本:
工具列表
get_user_info — 用户信息与系统统计
使用场景:获取当前登录用户信息,同时返回书库总体统计(书籍数、作者数等)
参数:无
执行脚本:
响应示例:
library_stats — 书库统计
使用场景:获取书库详细统计,包括电子书/实体书数量及本月新增
参数:无
执行脚本:
响应示例:
reading_stats — 阅读统计
使用场景:获取当前用户的阅读统计(在读/已读数量、本月数据)及当前在读书单
参数:无
执行脚本:
响应示例:
search_books — 搜索书籍
使用场景:
- 关键词模糊搜索(书名/作者/简介),支持简繁体自动转换:"有没有余华的书?" / "找一下《三体》"
- 按字段精确定位:只查书名、只查作者、按 ISBN 查找:"ISBN 9787536692930 是哪本书?"
- 组合条件搜索:多个字段参数同时给出时按 AND 组合:"余华在作家出版社出的书"
- Calibre 条件表达式:
name中写入字段:值形式的表达式,支持AND/OR/NOT与括号:"评分 4 星以上的科幻小说"
参数(name/title/author/isbn/publisher/series/tag 至少提供一个):
| 参数 | 类型 | 必填 | 默认值 | 说明 | |
|---|---|---|---|---|---|
name | string | ❌ | — | 关键词、纯 ISBN 号或 Calibre 条件表达式(见下方说明) | |
title | string | ❌ | — | 书名,精确匹配 | |
author | string | ❌ | — | 作者,包含匹配 | |
isbn | string | ❌ | — | ISBN-10 / ISBN-13,可带 - | |
publisher | string | ❌ | — | 出版社,包含匹配 | |
series | string | ❌ | — | 丛书,包含匹配 | |
tag | string | ❌ | — | 标签,包含匹配 | |
exact | bool | ❌ | false | 为 true 时 author/publisher/series/tag 改为精确匹配 | |
order | string | ❌ | — | 排序字段,如 pubdate、rating、timestamp | |
num | int | ❌ | 20 | 每页数量 | |
page | int | ❌ | 1 | 页码,从 1 开始 |
`name` 的三种解析方式(后台自动识别):
- 纯 ISBN(10/13 位数字,可含
-)→ 按 ISBN 精确查找。 - Calibre 条件表达式(包含
字段:形式,字段为 Calibre 内置搜索字段或#开头的自定义列)→ 原样交给 Calibre 搜索(同时追加简繁体转换版本以 OR 合并)。 - 其它 → 普通关键字,在书名/作者/简介等所有字段中模糊搜索。
Calibre 表达式速查:
| 写法 | 含义 | |
|---|---|---|
title:三体 | 书名包含"三体" | |
title:=三体 | 书名等于"三体" | |
title:"=三体 死神永生" | 值含空格时用双引号包住 | |
authors:=余华 | 作者精确为"余华" | |
tags:科幻 AND rating:>=4 | 标签含"科幻"且评分 ≥ 4 星 | |
publisher:作家 OR publisher:人民文学 | 任一出版社 | |
authors:刘慈欣 AND NOT tags:短篇 | 排除条件 | |
pubdate:>=2020 / pubdate:<2000-01-01 | 出版日期范围 | |
formats:epub | 有 EPUB 格式 | |
isbn:9787536692930 | 按 ISBN | |
#category:="小说" | 自定义列(分类) | |
title:~^三体 | 正则匹配 |
常用字段:title authors tags publisher series isbn identifiers comments rating pubdate timestamp formats languages id,以及 # 开头的自定义列。
执行脚本:
选择建议:用户只给出模糊描述时用 name 关键词;明确说出"作者是…/出版社是…/ISBN…"时用对应字段参数;需要评分、日期、格式、排除等条件时用 Calibre 表达式。字段参数与 name 可同时使用,彼此为 AND 关系。
响应示例:
search_by_category — 按分类查询书籍
使用场景:查询指定分类下的所有书籍(基于自定义 #category 字段)
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 | |
|---|---|---|---|---|---|
category | string | ✅ | — | 分类名称,如 "科幻" | |
num | int | ❌ | 20 | 每页数量 | |
page | int | ❌ | 1 | 页码,从 1 开始 |
执行脚本:
list_folders — 查看目录树
使用场景:查看书库的"目录"(层级有上限,当前为两级,如 文学.小说)及各目录书籍数量;未设置目录的书在根目录 /
参数:无
执行脚本:
响应示例(count 含子目录,root_count 为未设置目录的书):
search_by_folder — 按目录查询书籍
使用场景:查看某个目录下直属的书(不含子目录的书);path 为空表示根目录
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 | |
|---|---|---|---|---|---|
path | string | ❌ | "" | 目录路径,用 . 连接,如 "文学"、"文学.小说" | |
num | int | ❌ | 20 | 每页数量 | |
page | int | ❌ | 1 | 页码,从 1 开始 |
执行脚本:
set_folder — 设置书籍目录
使用场景:把一本或多本书放进某个目录。单本需管理员或书籍所有者;批量(book_ids)仅管理员
参数:
| 参数 | 类型 | 必填 | 说明 | |
|---|---|---|---|---|
book_id | int | 二选一 | 单本书 ID | |
book_ids | array | 二选一 | 批量书籍 ID 列表 | |
folder | string | ✅ | 目录路径,层级数以 list_folders 返回的 max_depth 为准(当前为 2),每级 1–24 字符、不含标点,如 "文学.小说";传 ""/"清除"/"clear" 移出目录 |
执行脚本:
rename_folder — 重命名目录
使用场景:修改目录的最后一段名称(仅管理员),子目录随之改名,如 文学 → 读物 后 文学.小说 变为 读物.小说
参数:
| 参数 | 类型 | 必填 | 说明 | |
|---|---|---|---|---|
path | string | ✅ | 现有目录路径 | |
name | string | ✅ | 新的末段名称(1–24 字符、不含标点和 .) | |
merge | bool | ❌ | 默认 false。目标目录已存在时服务端返回 folder.exists(附 count、target)且不修改任何数据;合并不可撤回,必须先向用户说明并获得确认,再带 "merge":true 重发 |
执行脚本:
get_book — 书籍详情
使用场景:获取指定书籍的完整信息,包括元数据、可用格式、封面、阅读状态等
参数:
| 参数 | 类型 | 必填 | 说明 | |
|---|---|---|---|---|
book_id | int | ✅ | 书籍 ID |
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/mybooks/SKILL.md
Popularity
- Repository stars
- 224
- Repository forks
- 25
- 7-day trend score
- 27
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/poxenstudio/mybooks/mybooks)