安全扫描
OpenClaw
安全
high confidence该技能内部一致:通过本地 Siyuan API 将 Siyuan 笔记导出为 DOCX,仅需在 config.json 中存储本地 API token(或通过环境变量设置)。
评估建议
该技能与其声明目的一致。安装/运行前:
1) 检查 config.json,确保 baseURL 指向本地 Siyuan 实例(默认 127.0.0.1:6806),并仅填写 Siyuan API token。
2) 注意脚本也接受 SIYUAN_TOKEN 与 SIYUAN_BASE_URL 环境变量,并会尝试次级配置路径 ../siyuan-skill/config.json;若存在,请删除或妥善保管其中的 token。
3) 若不在本地运行 Siyuan 服务器,请勿将 SIYUAN_BASE_URL 设为外部主机(否则会把 token/请求发送至远程端点)。
4) 如有疑虑,请在隔离环境运行并审阅代码(scripts/siyuan_export.py)——其仅发起 API 调用、向指定输出目录写文件,无意外网络/外泄行为。...详细分析 ▾
✓ 用途与能力
名称/描述(思源 → 导出为 Word)与代码及 SKILL.md 保持一致。脚本仅调用思源 API 并输出 .docx 文件;不请求任何无关凭据、二进制文件或云服务。
ℹ 指令范围
SKILL.md 描述了创建 config.json 并运行脚本,脚本会遵循这些说明。脚本还支持通过环境变量覆盖(SIYUAN_TOKEN、SIYUAN_BASE_URL),但 SKILL.md 中并未记录;它还会尝试读取第二个配置路径(../siyuan-skill/config.json)。这种便利行为合理,但与文档略有出入,若用户在其他地方存放 token,可能会感到意外。
✓ 安装机制
无安装说明;仅为指令型,附带仅使用标准库的 Python 脚本。无远程下载或解压操作。
ℹ 凭证需求
唯一使用的密钥是 Siyuan API token(符合预期)。不过脚本会从 config.json 或 SIYUAN_TOKEN 获取该 token,并会在额外的同级路径中查找 config.json。这很合理,但用户需留意:若存在,它可能会读取 skill 目录外的配置文件。
✓ 持久化与权限
该 skill 不会请求持久平台权限(always=false)。它不会修改其他 skill 或系统设置,仅在用户指定的目录中创建输出文件。
⚠ config.json:1
安装源指向 URL 缩短器或原始 IP。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/4/21
- siyuan-export 初始发布:将 SiYuan 文档导出为 Word(.docx)格式的工具。 - 支持按文档 ID 或路径导出;图片自动嵌入 docx 文件。 - 提供单文档导出及子文档(含嵌套)批量导出。 - 输出结构化 JSON,便于与其他工具集成。 - 需运行中的 SiYuan 实例,并配置 baseURL 与 token。 - 纯 Python 实现,无外部依赖。
● 可疑
安装命令
点击复制官方npx clawhub@latest install siyuan-export
镜像加速npx clawhub@latest install siyuan-export --registry https://cn.longxiaskill.com
技能文档
通过思源笔记原生 API 将文档导出为 Word(.docx),返回结构化 JSON 结果。支持单文档和批量子文档导出。
核心特性
| 特性 | 说明 | |------|------| | 双定位 | 支持文档 ID 或人类可读路径 | | 批量导出 |--children 一键导出文档下所有子文档(含嵌套) |
| 单文件输出 | 图片资源自动内嵌(removeAssets=true),不产生外挂目录 |
| JSON 输出 | 结构化结果,方便大模型解析 |
| 零依赖 | 仅使用 Python 标准库 | 前置条件
- 思源笔记正在运行
- 已配置
config.json(技能目录下):
json
{"baseURL": "http://127.0.0.1:6806", "token": "你的API Token", "timeout": 10000}
`
Token 获取:思源笔记 → 设置 → 关于 → 复制 Token 使用方法
`bash
# 按 ID 导出单个文档到桌面(最常用)
python scripts/siyuan_export.py --doc-id # 按路径导出,指定输出目录
python scripts/siyuan_export.py --path "/AI/AIGC/绘画" --output C:/output
# 导出文档下所有子文档
python scripts/siyuan_export.py --doc-id --children --output C:/Desktop/Midjourney
# 导出文档本身 + 所有子文档
python scripts/siyuan_export.py --doc-id --children --include-self --output C:/Desktop/Midjourney
# 纯 JSON 输出(供程序调用)
python scripts/siyuan_export.py --doc-id --json
`
参数说明
| 参数 | 缩写 | 必选 | 说明 |
|------|------|:----:|------|
| --doc-id | -i | 二选一 | 文档 ID(如 20260404211618-s3bjc3l) |
| --path | -p | 二选一 | 文档路径(如 /AI/AIGC/绘画) |
| --children | -c | 否 | 批量模式:导出该文档下所有子文档 |
| --include-self | | 否 | 批量模式时同时导出父文档本身(需配合 --children) |
| --output | -o | 否 | 输出目录路径(默认:桌面),API 会在该目录下以文档标题命名生成文件 |
| --json | | 否 | 仅输出 JSON,无 stderr 提示 | 返回值
单文档导出
成功:
`json
{
"success": true,
"data": {
"path": "C:/Users/10941/Desktop/P02:设置解析.docx",
"size_bytes": 3544783,
"size_kb": 3461.7
}
}
` 批量子文档导出
成功:
`json
{
"success": true,
"data": {
"total": 16,
"success_count": 16,
"fail_count": 0,
"output_dir": "C:/Users/10941/Desktop/Midjourney教程",
"details": [
{"id": "...", "title": "P01:认识界面", "result": {"success": true, "data": {"path": "...", "size_kb": 1234.5}}},
...
]
}
}
` 失败:
`json
{
"success": false,
"error": "api_error",
"message": "具体错误信息"
}
`
API 接口
| 本脚本 | 思源 API | 参数 |
|--------|---------|------|
| 单文档导出 | POST /api/export/exportDocx | id + savePath(目录)+ removeAssets=true |
| 获取子文档列表 | POST /api/query/sql | SQL 查询 hpath LIKE 匹配子路径 | 文件结构
`
siyuan-export/
├── SKILL.md
├── config.json # 配置文件(需手动填写 token)
└── scripts/
└── siyuan_export.py
``