ima.plus-skill-v1.0.12
优化了上传视频转换成HTML的功能,有任何skill的问题或建议,请到QQ频道:pd86156007,IMA 知识库与笔记操作技能(版本 v1.0.12):用 `--path` 自然语言定位知识库/文件夹/笔记本,支持文件上传、知识库/目录导出 zip、文件夹与条目管理、标签权限、网页入库、笔记增改与插图,以及把本地视频封装成单文件 HTML(页面内置「导出视频」,导出为 .bin 后缀、改名 .mp4 即播放)入库(需环境变量 IMA_OPENAPI_CLIENTID / IMA_OPENAPI_APIKEY)。
Rank
62
Safety
84
Downloads
1.0k
Updated
Oct 11, 2026
Version
1.0.12
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/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 Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 1K downloadsadoption · observed Oct 11, 2026
- Latest release
- 1.0.12release · observed Oct 11, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s176erj4f2bg52kae7gtvxnc0x89vf8h:ima-plus-skill- Install using `clawhub skill install s176erj4f2bg52kae7gtvxnc0x89vf8h:ima-plus-skill` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/wwqww1/ima-plus-skill before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-wwqww1-ima-plus-skill/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
157,194 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
knowledge-base/SKILL.md
---
name: IMA 知识库模块
description: IMA 知识库操作模块。负责上传文件、添加网页/微信文章到知识库、搜索与浏览知识库内容、获取知识库信息。
allowed-tools: Bash,Read
metadata: {"openclaw":{"emoji":"📚","requires":{"bins":["node"]}}}
---
# Knowledge Base (知识库)
API base path: `openapi/wiki/v1` — 完整数据结构和接口参数详见 `references/api.md`。
## 接口决策表
| 用户意图 | 调用接口 | 关键参数 |
| --- | --- | --- |
| 上传文件到知识库 | `check_repeated_names` → `create_media` → COS Upload → `add_knowledge` | `media_type`(按扩展名),`knowledge_base_id`,`file_name`,`file_size` |
| 上传到某个文件夹 | 先定位文件夹 → 同上(`folder_id` 传入) | 见「脚本速查」upload_to_kb |
| 添加网页/微信文章 | `import_urls` | `urls`(1-10),`knowledge_base_id`,可选 `folder_id` |
| 添加笔记到知识库 | `add_knowledge` | `media_type=11`,`note_info.content_id=<note_id>`,`knowledge_base_id` |
| 检查文件名重复 | `check_repeated_names` | `params[].name`,`params[].media_type`,`knowledge_base_id`,`folder_id` |
| 获取知识库信息 | `get_knowledge_base` | `ids`(1-20 个,包装为数组) |
| 浏览内容列表 / 文件夹 | `get_knowledge_list` | `knowledge_base_id`,`cursor`,`limit`(1~50),可选 `folder_id` |
| 库内搜索 | `search_knowledge` | `query`,`knowledge_base_id`,`cursor` |
| 按名称找知识库 | `search_knowledge_base` | `query`,`cursor`,`limit`(1~20) |
| 查看自己有哪些知识库 | `search_knowledge_base` | `query: ""` |
| 添加内容但未指定库 | `get_addable_knowledge_base_list` | `cursor`,`limit`(1~50) |
| 查看/导出原文 | `get_media_info` | `media_id`;下载时 URL 后追加 `response-content-type=application/octet-stream&response-content-disposition=attachment;filename="<名>"` |
| 创建文件夹 | `create_folder` | `knowledge_base_id`,`name`,可选 `folder_id`(父夹) |
| 重命名文件/文件夹 | `rename_knowledge` | `knowledge_base_id`,`media_id`,`name` |
| 移动文件(**不支持文件夹**) | `move_knowledge` | `src_knowledge_base_id`,`dst_knowledge_base_id`,`infos:[{media_id}]`,可选 `dst_folder_id` |
| 获取下载链接 | `export_media_for_ima_sandbox` | `media_id`;返回 `url`+`headers`,下载需带 `headers` |
| 创建知识库 | `create_knowledge_base` | `name`(必填),`type`(1001/1002/1004),可选 `description`/`cover-url`/`recommended-questions` |
| 修改库基本信息 | `update_knowledge_base_basic_info` | `id`,自动推导 `update_fields`(1名 2封面 3简介 4推荐问题) |
| 置顶/取消置顶 | `set_knowledge_top` | `knowledge_base_id`,`media_id`,`is_top`(布尔) |
| 打/移除标签 | `tag_add` / `tag_remove` | `knowledge_base_id`,`item_id`(=media_id),`tag_name` |
| 列/搜标签 | `tag_list` | `knowledge_base_id`,可选 `keyword`/`cursor`,`limit` |
| 重命名/删除标签 | `tag_rename` / `tag_delete` | 重命名新名存在自动合并;删除不可逆 |
| 修改库权限 | `update_knowledge_base_permission` | `id`,自动推导 `update_fields`(1导出状态 2加入类型) |
| 加入知识库 | `join_knowledge` | `knowledge_base_id`,`name`(**真实加入,有副作用**) |
| 批量更新访问状态 | `update_knowledge_access_status` | `knowledge_base_id`,`infos:[{media_id}]`(≤10),`access_status`(1/2/3) |
| 广场发现 | `search_knowledge_base_in_square` | `question`(必填,**不是** query),`cursor`(首次空),`limit` |
**`search_knowledge_base` vs `get_addable_knowledge_base_list`**:用户说了库名 → 前者按名搜;用户没说加到哪个库 → 后者列出可选库让用户选。**绝不要**在用户已明确库名时调 `get_addable_knowledge_base_list`。
---
## ⛔ 文件上传安全门(仅文件上传 → `add_knowledge` 流程)
```
GATE 1 [TYPE] preflight-check.cjs 先行,pass=false 直接拒绝。视频/B站/YouTube/file:// → 引导用户用 Inotes/SKILL.md
---
name: IMA 笔记模块
description: IMA 笔记管理模块。负责搜索、浏览、创建、编辑(追加)用户个人笔记。
allowed-tools: Bash,Read
metadata: {"openclaw":{"emoji":"📝","requires":{"bins":["node"]}}}
---
# Notes (笔记)
> ⛔ Before ANY write (`import_doc`/`append_doc`): validate ALL string fields (`content`, `title`) are legal UTF-8.
> Non-UTF-8 content causes irreversible garbled text in IMA. See root SKILL.md § MANDATORY RULES for platform-specific validation methods.
API base path: `openapi/note/v1`
通过 IMA OpenAPI 管理用户个人笔记,支持读取(搜索、列表、获取内容)和写入(新建、追加)。
完整的数据结构和接口参数详见 `references/api.md`。
> **隐私规则:** 笔记内容属于用户隐私,在群聊场景中只展示标题和摘要,禁止展示笔记正文。
## 接口决策表
| 用户意图 | 调用接口 | 关键参数 |
| --------------------------------------------------------------------------------- | ----------------- | ------------------------------------------------------------------------- |
| 搜索/查找笔记 | `search_note` | `query_info`(QueryInfo 对象) |
| 查看笔记本列表 / 列出笔记本 | `list_notebook` | `cursor`(必填,首页传`"0"`) + `limit`(必填) |
| 列出笔记/获取多篇笔记信息 | `list_note` | `folder_id`(选填,空为全部) + `sort_type` + `cursor`(首次传`""`) + `limit` |
| 读取笔记正文 | `get_doc_content` | `note_id` + `target_content_format`(必填,推荐`0`纯文本) |
| 新建一篇笔记(用户明确说"新建/创建笔记"时走此接口) | `import_doc` | `content` + `content_format`(必填,固定`1`) + 可选 `folder_id` |
| 往已有笔记追加内容(⚠️ **敏感操作**:用户必须明确指定目标笔记,否则先确认再操作) | `append_doc` | `note_id` + `content` + `content_format`(必填,固定`1`) |
| 往笔记插入含图片的内容(本地/远程图片) | `note-images.cjs` | `--note-id` + `--file`/`--content`;图片 < 3MiB,仅 PNG/JPEG/WebP |
| 编辑笔记前获取块结构(update_note 前置) | `export_note_blocks` | `note_id` |
| 按 block 精细编辑笔记(改/删/插某段) | `update_note` | `note_id` + `user_request_id`(UUIDv4) + `updates[]`(block_id/action/new_content) |
| 重命名笔记本 | `rename_notebook` | `folder_id` + `new_folder_name` |
| 导出整篇笔记(Markdown/纯文本/JSON) | `export_note` | `note_id` + `target_content_format`(推荐`1`) |
| 智能推送:不存在则新建、存在则追加 | `push_note` | `content`(可选)+`note_id`(可选)+`content_cos_key`(可选) |
| 重命名单篇笔记标题 | `rename_note` | `note_id` + `title` |
| 批量移动笔记到其他笔记本 | `move_notes` | `note_ids[]` +SKILL.md
---
name: ima_plus-skill
description: IMA 知识库与笔记操作技能(版本 v1.0.12):用 `--path` 自然语言定位知识库/文件夹/笔记本,支持文件上传、知识库/目录导出 zip、文件夹与条目管理、标签权限、网页入库、笔记增改与插图,以及把本地视频封装成单文件 HTML(页面内置「导出视频」,导出为 .bin 后缀、改名 .mp4 即播放)入库(需环境变量 IMA_OPENAPI_CLIENTID / IMA_OPENAPI_APIKEY)。
allowed-tools: Bash,Read
metadata:
openclaw:
emoji: "🔧"
requires:
bins:
- node
env:
- IMA_OPENAPI_CLIENTID
- IMA_OPENAPI_APIKEY
primaryEnv: IMA_OPENAPI_CLIENTID
security:
credentials_usage: |
This skill requires user-provisioned IMA OpenAPI credentials (Client ID and API Key)
to authenticate with the official IMA API at https://ima.qq.com.
Credentials are ONLY sent to the official IMA API endpoint (ima.qq.com) as HTTP headers.
The request base URL is hard-whitelisted to ima.qq.com: options.baseUrl / IMA_BASE_URL
overrides are rejected unless they resolve to ima.qq.com, so credentials can never be
forwarded to an arbitrary host.
The file-upload flow also sends requests to COS endpoints (*.myqcloud.com) using
short-lived, scoped temporary credentials returned by the IMA API (create_media);
the user's Client ID / API Key are never sent to COS, and COS temporary credentials are
passed to the upload helper via environment variables (not argv).
No credentials are logged, stored in files, or transmitted to any other destination.
allowed_domains:
- ima.qq.com
- '*.myqcloud.com'
---
# ima_plus-skill
> **版本:V1.0.12**
>
> **运行环境**:Node.js ≥ 18.0.0(所有 .cjs 脚本 + inline JSON 解析依赖);视频模块另需 `python3` + `curl`(`ffprobe` 可选,取时长)
Unified IMA OpenAPI skill. Currently supports: **notes**, **knowledge-base**, **video**(视频链接 → 内嵌 HTML → 入库).
## ⛔ MANDATORY RULES — read before ANY operation
0. **自然语言路径优先(所有模块通用,强制):** 用户给出知识库/文件夹/笔记本的名称或路径(如"我的知识库/项目/文档"、"存到学习笔记")时,**一律用解析器自动转 ID,禁止让用户提供 kb_id / folder_id**。知识库用根目录 `resolve_path.cjs --path`,笔记本用 `notes/scripts/resolve_notebook.cjs --path`。面向用户永远只展示名称,禁止暴露任何 ID。
- ⛔ **禁止擅自使用 `--kb <kb_id>`**:即使解析过程中拿到了 kb_id,**也不得主动用它调用脚本**——所有脚本调用一律走 `--path "知识库名/文件夹..."`(内部自动解析)。`--kb` 仅在**用户明确要求使用某个具体 ID** 时才允许出现。违反此规则视为流程错误。
- 兼容参数 `--kb-name`(按名称匹配)可以正常使用,但 `--path` 是首选。
### 🔧 路径解析缓存机制(V1.0.8+,无需手动管理)
解析器会把「知识库名 → kb_id、文件夹路径 → folder_id」**分层树状持久化**到缓存文件,
按「知识库 → 子文件夹 → 孙文件夹」嵌套,同名文件夹在不同库/不同父目录各占节点,不会串库。
**缓存位置(强制检查,安装 skill 时必须确定):**
1. 环境变量 `IMA_RESOLVE_CACHE` 显式指定(所有环境,优先级最高)
2. ima.copilot 环境未设置时默认 `/sandbox/workspace/.ima_cache/resolve_cache.json`(workspace 持久、平台不重置)
3. **其他 agent / 自建环境未设置 `IMA_RESOLVE_CACHE` → 直接报错不可用**(与凭证同等强制)。
安装时须先设置:`export IMA_RESOLVE_CACHE=/path/to/resolve_cache.json`(可写入 ~/.bashrc 或 ~/.zshrc)
- **无过期时间**:缓存长期有效;重复解析同一路径 **0 次 API 调用**(部分命中只补查缺失层级)。
- **失效自愈**:所有消费脚本已包 `withPathRetry`——若操作因「目标不存在」(如库/夹被删或改名,`220001/invalid/不存在` 类)失败,自动失效该路径缓存 → 全 API 重新解析 → 重试一次;**重查任一层失败即报「目录位置不存在」,整个操作直接中止,不猜测后续层级**。权限(220030)/限流(200001)类错误不触发自愈。
- **手动清缓存**(一般不需要):删除缓存文件即可,下次解析自动重建。知识库/文件夹被删除后首次操作会自愈恢复。
- 笔记本解析(`--notvideo/SKILL.md
# video 模块 —— 本地视频 → 内嵌 HTML(可导出) → 知识库
> 独立模块,与 `knowledge-base` / `notes` 同级。
> **只做封装与上传,不做下载**(视频从哪来不归本模块管)。
## 为什么必须封装成 HTML
知识库**不接受 mp4 / avi / mov 等视频文件**(服务端限制)。
唯一可行方式:视频 base64 内嵌进单文件 HTML(≤10MB),页面用 **Blob URL** 播放
(data: URI 在部分 WebView 会加载失败;Blob 方案实测 3MB+ 正常)。
> 💡 **可反向导出**:页面「导出视频」把内嵌视频还原为文件保存。
> ⚠️ **导出文件必须用 `.bin` 后缀(关键)**:手机浏览器(华为等)会按后缀拦截"网页现场生成的 `.mp4`"
> (防网页偷放视频的安全策略),表现为**下载进度卡 0% / 下载失败**;而 `.bin` 等中性后缀畅通。
> 因此导出存为 `<标题>.bin`,页面提示用户**下载后把后缀改成 `.mp4`** 即可播放。
> 实现要点:下载用 `Blob([bytes],{type:'application/octet-stream'})`(**非 `video/mp4`**),且与播放用的 blob URL **分开创建**。
> ⚠️ **条目名规则(最大的坑)**:条目名 = 文件名,不得含 `# ? & /` 等 URL 危险字符。
> `#` 在 URL 中是锚点分隔符 → 打开条目时显示「无法打开网页」(与体积无关)。
## 用法
```bash
# 批量:目录里的视频全部封装并上传
python3 video/scripts/video_batch.py --dir <视频目录> --path "<知识库>/<文件夹>"
# 只生成、不上传(本地检查)
python3 video/scripts/video_batch.py --dir <视频目录> --path "<知识库>/<文件夹>" --skip-upload
# 单个文件
python3 video/scripts/video_to_html.py --mp4 a.mp4 --title "标题" --out-dir ./html
```
## video_batch.py 参数
| 参数 | 必填 | 说明 |
| --- | --- | --- |
| `--dir` | ✅ | 视频所在目录(只读该层,不递归) |
| `--path` | ✅ | 目标知识库路径,如 `"库名/文件夹名"` |
| `--ext` | | 视频扩展名,默认 `mp4,m4v,mov,webm,avi,mkv` |
| `--out-dir` | | HTML 输出目录,默认 `<dir>/kb_html` |
| `--title-map` | | JSON `{"文件名":"标题"}`,自定义页面标题与文件名(文件名本身即标题时可省略) |
| `--template` | | 替换 HTML 模板 |
| `--skip-upload` | | 只生成不上传 |
| `--allow-dup` | | 允许重名重复入库(默认跳过重名) |
| `--force` | | 覆盖已生成的 HTML |
| `--max` | | 只处理前 N 个(调试用) |
## 行为约定
| 项 | 规则 |
| --- | --- |
| 输入 | 只处理本地目录里的视频文件(`--dir` 下一层) |
| 文件名 | 沿用视频文件名/标题,清洗 URL 危险字符;**不加序号、不加后缀** |
| 体积 | HTML **≤10MB**;**超过 10MB 自动丢弃、不上传**,汇总里单独列出 |
| 页面 | 极简:标题 + 视频 + 一行「时长 · 大小 · 导出视频」+ 一行改名提示;无按钮块、无标签、无原始链接 |
| 导出 | 点「导出视频」下载 `<标题>.bin`(blob + `application/octet-stream`);**禁用 `.mp4` 后缀**(手机浏览器拦),页面提示改名为 `.mp4` |
| 样式 | 只保留最小 CSS(无渐变 / 阴影 / 安全区 / 冗余媒体查询),减少页面占用 |
| 多端适配 | 手机全宽、电脑限高 78vh 居中;兼容 iOS 12 Safari(不用 clamp()/gap/dvh) |
| 模板 | `video/assets/video-template.html`,占位符:`__TITLE__` `__FILENAME__` `__B64__` `__DUR__` `__SIZE__` |
| 幂等 | HTML 已存在则跳过生成(`--force` 重建);目标重名条目默认不重复入库 |
## 排障
| 现象 | 原因 / 处理 |
| --- | --- |
| 打开条目报「无法打开网页」 | 文件名含 `#` 等危险字符 → 重命名或换安全名重传 |
| 上传报 `220010 添加知识失败` | HTML 超 10MB → 压缩视频或截短后重跑 |
| 汇总出现「超 10MB 未上传」 | 预期行为,压缩后重跑该文件 |
| 视频转圈 / 黑屏 | 预览环境不支持内嵌播放 → 确认模板走的是 Blob URL 而非 data: URI |
| 「导出视频」卡 0% / 下载失败 | 下载名用了 `.mp4` 后缀(手机浏览器按后缀拦截)→ 改 `.bin`(v1.0.12);`data:` URI 同样被拦 |
| 想直接下载 `.mp4` | 手机浏览器不允许网页生成 `.mp4` 下载;改用桌面浏览器打开,或让 Agent 发 mp4 直链 |
## 文件构成
| 文件 | 作用 |
| --- | --- |
| `video/scripts/video_batch.py` | 批量编排:遍历目录 → 封装 → 上传 |
| `video/scripts/video_to_html.py` | 单个视频 → 单文件 HTML(命名清洗、10MB 校验) |
| `video/assets/video-template.html` | 极简模板(Blob 播放 + .bin 导出、多端适配) |_meta.json
{
"ownerId": "kn7b5dm7qcadb0hdtk4pz07pwn89v0d0",
"slug": "ima-plus-skill",
"version": "1.0.12",
"publishedAt": 1791685207976
}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!
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
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
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/wwqww1/skills/ima-plus-skill",
"sourceUrl": "https://clawhub.ai/wwqww1/skills/ima-plus-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T19:16:50.113Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-wwqww1-ima-plus-skill/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-wwqww1-ima-plus-skill/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T19:16:50.113Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1K downloads",
"href": "https://clawhub.ai/wwqww1/ima-plus-skill",
"sourceUrl": "https://clawhub.ai/wwqww1/ima-plus-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T19:16:50.113Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.12",
"href": "https://clawhub.ai/wwqww1/ima-plus-skill",
"sourceUrl": "https://clawhub.ai/wwqww1/ima-plus-skill",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-11T02:20:07.976Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-wwqww1-ima-plus-skill/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-wwqww1-ima-plus-skill/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.0.12",
"description": "ima-plus-skill v1.0.12 - Updated video module: exported HTML pages now embed an “Export Video” button, which downloads the video as a `.bin` file (users can rename to `.mp4` for playback). - Exported HTML with video now uses `.bin` suffix instead of `.mp4` (fixes mobile browser restrictions). - Minor wording updates in documentation for new video export feature. - Removed sample file: skill-card.md.",
"href": "https://clawhub.ai/wwqww1/ima-plus-skill",
"sourceUrl": "https://clawhub.ai/wwqww1/ima-plus-skill",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-11T02:20:07.976Z",
"isPublic": true
}
]
}Record generated Oct 11, 2026.
For crawlers
This page is free to read. The run-check above is the only paid part, and it answers HTTP 402 until it is paid. Everything else here is public.
- One record, as JSON: card, facts, snapshot, contract, trust.
- Every agent, one feed: /.well-known/ai-catalog.json
- What this site sells, and the price: /.well-known/x402
- Paid run-check: /api/v1/agents/clawhub-wwqww1-ima-plus-skill/run-check
