@pig4cloud/aitools
v0.3.0
Published
Export local WorkBuddy, Doubao and QwenWork resources to ZIP archives
Readme
aitools
基于 Node.js 的本地资源导出工具,支持 WorkBuddy 技能、专家、专家团,豆包本地技能,以及千问 QwenWork 技能和专家套件 ZIP 导出。
要求 Node.js 20 或以上。
使用
通过 npx 直接运行:
npx -y @pig4cloud/aitools workbuddy export .当前源码可直接运行:
npm ci
node bin/aitools.js workbuddy export .指定输出目录、WorkBuddy 数据目录:
node bin/aitools.js workbuddy export ./backup --home /path/to/.workbuddy只导出专家:
node bin/aitools.js workbuddy export . --type expert--type 支持 all(默认)、skill、expert、team。专家包保留自身依赖的技能和附件,不再单独生成技能 ZIP。
省略输出目录时使用当前目录。数据目录优先级为 --home、WORKBUDDY_HOME、~/.workbuddy,最后在前者不存在时尝试 ~/.workbuddy-ai。Windows 可使用 --home 指定实际数据目录。
输出
统一命名为 workbuddy-类型-名称.zip,每个资源独立打包:
workbuddy-skill-<技能目录名>.zip:每个技能一个包,包含 SKILL.md、脚本、参考资料及附件。workbuddy-expert-<插件名称>.zip:每位专家一个包。workbuddy-team-<插件名称>.zip:每个专家团一个包。
专家和专家团 ZIP 的 plugin/ 中保留完整插件目录,包括 .codebuddy-plugin/plugin.json、agents、skills 和头像等资源。
- 各 ZIP 的
aitools-export.json记录格式版本、导出时间和资源清单。
如果文件已存在,自动使用 -2.zip、-3.zip 等后缀,不覆盖旧备份。某类资源为空时不生成对应空包。已安装但停用的资源仍会导出。
数据范围
读取 skills/ 中包含 SKILL.md 的技能,以及 plugins/installed_plugins.json 中登记的各安装路径。插件的标准 skills/ 目录和 manifest 中声明的技能目录都会被识别。专家使用 manifest 的 expertType: "agent",专家团使用 expertType: "team"。
不会将未安装的市场缓存、全局设置、登录信息、聊天记录和数据库一起备份。资源内部的文件按原内容导出,不会自动改写或清理用户放在技能、专家插件中的内容。忽略 .git、node_modules 和 .DS_Store;目录内符号链接展开成实际文件,越界或循环链接报错。
安装清单损坏、已安装目录缺失、未知专家类型时会明确报错。写 ZIP 中途失败会删除当前未完成的 ZIP,已成功生成的其他 ZIP 保留。
这是文件备份导出功能,暂不提供自动导入或跨工具格式转换。已在 macOS WorkBuddy 本机数据上验证技能和专家;专家团使用符合本机 WorkBuddy manifest 格式的测试数据验证。
开发与打包
npm test
npm pack
npx -y --package ./pig4cloud-aitools-0.3.0.tgz aitools workbuddy export .npm pack 仅包含 CLI、源码、README 和 package.json,不包含本地导出的 ZIP 或测试数据。
豆包本地导出(0.2.0 起)
node bin/aitools.js doubao export .
# 通过 npm 直接运行:
npx -y @pig4cloud/aitools@latest doubao export .
node bin/aitools.js doubao export ./backup --type skill
node bin/aitools.js doubao export ./backup --home '/path/to/Doubao'每个技能独立生成 doubao-skill-<名称>.zip,包内 skills/<名称>/ 保留 SKILL.md、脚本和附件。重名自动添加数字后缀;系统技能和用户技能即使同名也分别导出。aitools-export.json 包含来源路径,以及可用的技能 ID、版本等安装元数据。不会导出整个 Preferences、登录信息、对话、经验目录或浏览器数据库。
macOS 本机核实的路径(2026-09-14):
| 内容 | 路径 |
| --- | --- |
| 系统技能 | ~/Library/Application Support/Doubao/Default/.doubao/agent_mode/workspace/.skills/ |
| 用户同步技能 | ~/Library/Application Support/Doubao/Default/.doubao/agent_mode/workspace/.user_skills/ |
| 用户本地技能目录 | ~/Doubao/skills/ |
| 技能安装记录 | ~/Library/Application Support/Doubao/Default/Preferences 的 saman.user_agent_workspace |
| 工作伙伴 | 客户端内嵌的 https://aily.doubao.com/doubao 云端页面;尚未找到完整本地配置 |
本机 Preferences 中的 remote_skill_install_info_v2 记录了 107 个系统技能;user_skill_sync_info_v2 为 0 个,~/Doubao/skills/ 为空。初次核查为 106 个,豆包随后同步新增了 wecom-operations,实际导出与最终记录均为 107 个。数量是核查时的快照,命令每次读取实际文件。安装记录中有资源而 SKILL.md 缺失时会报错,避免把不完整同步当成成功备份。
数据目录优先级为 --home、DOUBAO_HOME、macOS 默认目录。--home 支持豆包数据根目录、具体 Profile(如 Default)或直接指定 workspace。显式指定目录时仅扫描该工作区,不额外读取 ~/Doubao/skills/。默认只选择 Default;其他 Profile 需要显式指定。其他操作系统必须使用 --home,尚未验证其默认路径。
伙伴导出尚未实现。 --type all(默认)导出本地技能并提示伙伴限制;--type skill 只导出技能;--type expert 明确报错且不生成空包。伙伴页面与本地 SKILL.md 不是同一种资源,完整伙伴备份需要继续接入云端配置读取,不能将系统技能更名为专家包。豆包本地技能导出从 0.2.0 版本开始提供。
千问 QwenWork 导出(0.3.0 起)
node bin/aitools.js qwen export .
node bin/aitools.js qwen export ./backup --type expert
node bin/aitools.js qwen export ./backup --type skill
node bin/aitools.js qwen export ./backup --home /path/to/.qwenworkcn全局安装后可以使用 aitools qwen export .,也可以直接运行 npx -y @pig4cloud/aitools@latest qwen export .。--home 优先于 QWEN_HOME,默认 ~/.qwenworkcn。千问导出从 0.3.0 版本开始提供。
本机目录及客户端实现核查(2026-09-14):
| 内容 | 路径 |
| --- | --- |
| 独立技能 | ~/.qwenworkcn/skills/<名称>/SKILL.md |
| 已安装市场专家套件 | ~/.qwenworkcn/plugins/<名称>/ |
| 自定义专家套件 | ~/.qwenworkcn/plugins-custom/<名称>/ |
| 专家描述 | 套件内 .qoder-plugin/plugin.json,兼容 .claude-plugin/plugin.json、.codex-plugin/plugin.json |
| 专家内技能 | 套件内 skills/<名称>/SKILL.md |
| 市场缓存(不导出) | ~/Library/Application Support/QwenWorkCN/Cache/skills/、Cache/plugins/ |
客户端将 plugins 称为“专家套件”。本机已安装 product-design(产品设计)0.5.10,包含 28 个技能,以及 _shared/ 和 assets/。agents.db 是应用数据库,不是独立专家包;导出无需读取该数据库。应用安装目录下的市场示例、缓存、bin/、对话、全局配置均不作为已安装资源导出。
输出为 qwen-skill-<名称>.zip 和 qwen-expert-<名称>.zip,同名 ZIP 自动加数字后缀。默认 all 导出独立技能、专家内技能和完整专家;expert 只生成专家包,仍保留其技能依赖;skill 只生成技能包。不支持 team 类型。
独立技能包保留 skills/<名称>/ 及 .skill-metadata.yaml 等原始附件。专家包保留整个 plugin/ 目录。专家内技能包也保留完整插件目录,并在 aitools-export.json 标记所选技能的 entrypoint:技能可能引用 ../../_shared、图片或其他技能,保留整个套件可维持这些相对路径,因此此类技能包会包含其他技能依赖并占用额外空间。
扫描遵循客户端的直接子目录规则,忽略 .temp 等隐藏安装暂存目录。自定义专家与市场专家目录同名时,优先自定义版本。已安装但停用的资源仍导出;不修改启用状态。插件清单缺失或损坏、资源内越界/循环链接、输出目录位于资源内部时会报错。内容按原文件备份,不执行技能、不转换跨工具格式。
