PluginBench
Skill
Review
Audit score 70

weread-skills

tencent/wechatreading

Search, manage, and explore WeChat Reading books with notes, reviews, and personalized recommendations.

What is weread-skills?

WeChat Reading assistant that integrates with Tencent's WeChat Reading platform via API Gateway. Use it to search books, manage your shelf, view personal notes and highlights, browse reviews, track reading statistics, and discover recommended books.

  • Search books in the WeChat Reading store by keyword and retrieve book details
  • View and manage your personal book shelf, including regular books and audiobook collections
  • Access personal notes, highlights, and bookmarks with filtering and export capabilities
  • Browse popular highlights within chapters and community thoughts on specific passages
  • Track reading statistics including daily duration, total books read, and reading preferences
  • View public reviews and ratings for books, with options to filter by recommendation status

How to install weread-skills

npx skills add https://github.com/tencent/wechatreading --skill weread-skills
Prerequisites
  • WeChat Reading API key (format: wrk-xxxxxxxx) set as WEREAD_API_KEY environment variable
  • Access to WeChat Reading account with existing reading history for personalized features
Claude Code
Cursor
Windsurf
Cline

How to use weread-skills

  1. 1.Set the WEREAD_API_KEY environment variable with your API key: export WEREAD_API_KEY=wrk-xxxxxxxx
  2. 2.Call the unified gateway endpoint at https://i.weread.qq.com/api/agent/gateway with POST requests
  3. 3.Include api_name, skill_version (1.0.3), and relevant parameters in the JSON request body
  4. 4.For book operations, first search by title using /store/search to obtain the bookId
  5. 5.Use the returned bookId for subsequent operations like viewing notes, reviews, or reading progress
  6. 6.Parse Unix timestamps in responses and convert to YYYY-MM-DD format for display
  7. 7.Convert reading duration from seconds to 'X hours Y minutes' format when displaying statistics

Use cases

Good for
  • Search for a specific book title and view its chapter structure and your reading progress
  • Export all highlights and notes from a completed book for external reference
  • Check monthly or yearly reading statistics to track your reading habits
  • Browse popular highlights in a chapter to see what other readers found meaningful
  • Get book recommendations tailored to your reading preferences and history
Who it's for
  • Book readers who use WeChat Reading and want programmatic access to their library
  • Students and researchers who need to organize and export reading notes
  • Content creators who want to analyze reading trends and popular passages
  • Anyone seeking personalized book recommendations based on reading history

weread-skills FAQ

How do I find a specific book?

Use the /store/search API with the book title as the keyword parameter. The response includes bookId, title, author, and rating. Save the bookId for subsequent operations on that book.

How do I view my personal notes and highlights from a book?

Call /user/notebooks with the bookId to retrieve all your notes, highlights, and bookmarks for that book. The response includes note content, creation date, and location information.

What should I do if I see an upgrade_info field in the response?

Stop current operations immediately and follow the upgrade instructions in upgrade_info.message. Complete the upgrade before retrying the user's request.

How do I calculate the total number of items on my shelf?

Use /shelf/sync and count: books.length + albums.length + (1 if mp is not empty, else 0). Albums represent audiobooks and collections that also count as shelf items.

Can I generate direct links to open books or highlights in the WeChat Reading app?

Yes. Use weread://reading?bId={bookId} to open a book, weread://reading?bId={bookId}&chapterUid={chapterUid} for chapters, and weread://bestbookmark?bookId={bookId}&chapterUid={chapterUid}&rangeStart={start}&rangeEnd={end} for specific highlights.

Full instructions (SKILL.md)

Source of truth, from tencent/wechatreading.


name: weread-skills description: 微信读书助手 — 搜索书籍、管理书架、查看笔记划线、浏览书评、阅读统计、发现推荐好书 version: 1.0.3

WeRead — 微信读书助手

通过 Agent API Gateway 调用微信读书接口,提供搜索、书架、笔记、书评等能力。

支持的能力

能力说明用户示例详细说明
搜索书籍在书城搜索"帮我搜一下三体"search.md
书籍信息查看书籍详情、章节目录、阅读进度"这本书有多少章" "我读到哪了"book.md
书架管理查看书架"看看我的书架"shelf.md
阅读统计阅读时长、天数、偏好分析、阅读统计摘要"我这个月读了多久" "今年读了几本书"readdata.md
笔记划线查看个人笔记数量与内容,包括划线、想法/点评、书签数量"看看我在三体里的笔记" "导出我的划线" "在这本书有多少笔记"notes.md
章节热门划线查看书籍/章节热门划线、划线热度及划线下想法"看看这章有什么热门划线" "这段话下面有什么想法"notes.md
书籍点评查看书籍的公开点评"三体这本书有什么点评?" "看看推荐的点评"review.md
推荐好书个性化推荐/相似推荐"给我推荐几本书"discover.md

根据用户意图参考对应说明文件了解接口参数、回包结构和工作流。


接口调用规范

统一入口

POST https://i.weread.qq.com/api/agent/gateway

鉴权

  • Header:Authorization: Bearer $WEREAD_API_KEY
  • WEREAD_API_KEY 从环境变量获取,格式 wrk-xxxxxxxx
  • 若未设置,提示用户:export WEREAD_API_KEY=<你的apikey>
  • API Key 绑定用户身份(vid),需要用户身份的接口会自动注入,无需手动传 vid

请求格式

  • Method:POST
  • Content-Type:application/json
  • Body:JSON,api_name 指定接口,其余为接口参数,每次请求必须带 skill_version
curl -X POST "https://i.weread.qq.com/api/agent/gateway" \
  -H "Authorization: Bearer $WEREAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api_name": "/store/search", "keyword": "三体", "count": 10, "skill_version": "1.0.3"}'

请求 few-shot

正确:业务参数平铺在 body 顶层。

{"api_name":"/user/notebooks","count":100,"skill_version":"1.0.5"}

正确:下一页继续平铺 lastSort

{"api_name":"/user/notebooks","count":100,"lastSort":1516907353,"skill_version":"1.0.5"}

错误:不要把业务参数包在 params 内。

{"api_name":"/user/notebooks","params":{"count":100,"lastSort":1516907353},"skill_version":"1.0.5"}

上面的错误写法会导致 countlastSort 未被转发,后端按默认值返回第一页,看起来像分页失效。

响应格式

  • JSON,回包经过字段裁剪,只返回核心字段
  • errcode 非 0 时表示错误,给出中文提示
  • 发送 {"api_name": "/_list"} 可查看所有可用接口及参数定义

通用规则

  1. 版本上报:每次请求 body 必须包含 "skill_version": "1.0.3"(取本文件顶部 version 字段的值),用于服务端检查版本更新。如果回包中出现 upgrade_info 字段,必须立即暂停当前操作,按照 upgrade_info.message 中的指引完成升级,升级完成后再重新执行用户请求,不得忽略该字段
  2. 参数平铺:业务参数必须和 api_nameskill_version 放在同一层;不要包在 paramsdatabody 等对象里。只有接口文档明确声明的数组/对象字段(如 /book/readreviewsreviews)才允许作为业务字段传入。
  3. 能力文档预检:调用任何接口前,必须先根据「支持的能力」表阅读对应说明文件(如阅读统计先读 readdata.md,书架先读 shelf.md),确认接口参数、字段含义、单位、计数口径和工作流;禁止仅凭字段名或经验猜测含义。
  4. 字段解释优先级:解释接口回包时,以对应说明文件中的字段说明为准;如果回包字段名和直觉含义冲突,必须服从说明文件,不得直接翻译字段名。
  5. bookId 解析:用户输入书名时,先调 /store/search 获取 bookId,再执行后续操作
  6. 书架数量:使用 /shelf/sync 回答“书架有多少本书/多少条目”时,必须按 books.length + albums.length + (mp 非空 ? 1 : 0) 计算;albums[] 是专辑/有声书,也属于书架里的书,详细规则见 shelf.md
  7. 结果展示:列表用编号展示方便选择;搜索结果重点展示书名、作者、评分;展示接口回包信息时,字段禁止直接翻译,应该参考文件中的说明内容提供
  8. 上下文衔接:对话中记住已查询的 bookId,后续操作无需用户重复提供
  9. 深度链接:在展示划线、想法、章节等内容时,拼接对应的跳转链接方便用户直接在 App 中打开,具体格式见下方「深度链接(URL Schema)」章节
  10. 数据展示规范
  • 时间戳:所有 Unix 时间戳字段(如 updateTimecreateTimefinishTimereadUpdateTime 等),展示时须转为 YYYY-MM-DD 格式(如 1748563200 展示为"2025-05-30"),不得直接展示原始数字
  • 阅读时长:单位为秒,展示时转为"X小时Y分钟"格式

深度链接(URL Schema)

在展示书籍、章节、划线等内容时,如果回包字段足以构造链接,应附上对应的跳转链接,方便用户点击后直接在微信读书 App 中打开对应位置。想法/点评不一定都有划线位置,只有具备 chapterUidrange 时才生成划线位置链接。

打开书籍(跳转到上次阅读进度)

weread://reading?bId={bookId}
参数说明来源
bookId书籍 ID各接口返回的 bookId

示例

weread://reading?bId=3300045871

使用场景

  • 展示书架列表时,每本书附上跳转链接
  • 展示搜索结果时,附上「打开阅读」链接
  • 展示阅读进度时,提供「继续阅读」链接

跳转到指定章节

weread://reading?bId={bookId}&chapterUid={chapterUid}
参数说明来源
bookId书籍 ID各接口返回的 bookId
chapterUid章节 UID/book/chapterinfo 返回的 chapters[].chapterUid

示例

weread://reading?bId=3300045871&chapterUid=107

使用场景

  • 展示章节目录时,每个章节附上跳转链接

跳转到划线/想法所在位置

weread://bestbookmark?bookId={bookId}&chapterUid={chapterUid}&rangeStart={rangeStart}&rangeEnd={rangeEnd}&userVid={userVid}
参数说明来源
bookId书籍 ID各接口返回的 bookId
chapterUid章节 UID划线/想法所属的 chapterUid
rangeStart划线起始位置range 字段中 - 前面的数字
rangeEnd划线结束位置range 字段中 - 后面的数字
userVid用户 VIDAPI Key 鉴权后自动关联的用户 ID(从 /shelf/sync 等接口的上下文获取,或省略)

range 解析:划线接口返回的 range 格式为 "起始-结束"(如 "900-2004"),拆分后分别填入 rangeStartrangeEnd

示例

weread://bestbookmark?bookId=3300045871&chapterUid=107&rangeStart=900&rangeEnd=2004&userVid=583802764

使用场景

  • 展示划线列表(/book/bookmarklist)时,每条划线附上跳转链接(range 字段可直接解析)
  • 展示热门划线(/book/bestbookmarks)时,每条附上跳转链接;/book/underlines 只是划线热度统计,不含划线文本
  • 展示想法(/review/list/mine/book/readreviews)时,只有返回内容包含 chapterUidrange 时才附上跳转到对应划线位置的链接;整本书评或无法定位到划线的点评不强制生成该链接