📦 TriliumUse — Trilium使用

v0.0.1

通过 ETAPI REST API 与 Trilium Notes 服务器交互时——创建、读取、更新、搜索或删除笔记、分支、属性等

0· 21·0 当前·0 累计
下载技能包
最后更新
2026/4/20
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能的指令与 Trilium ETAPI 的用途一致,但 SKILL.md 中要求的环境变量和文件 I/O 并未在技能元数据中声明,且允许执行破坏性操作(删除/备份/导入)——这些不一致之处在安装前需谨慎对待。
评估建议
该技能看似是一个基于 curl 的 Trilium ETAPI 简易助手,但在安装或让智能体使用前,有几个实际问题需留意: - 元数据缺失:SKILL.md 依赖 TRILIUM_URL 与 TRILIUM_TOKEN(并演示用密码换 token),但技能元数据未声明任何必需环境变量。请要求发布者显式声明 TRILIUM_URL、TRILIUM_TOKEN(及任何密码用法),以便审计并控制所提供凭据。 - 破坏性操作:示例包含 DELETE /notes、POST /notes/{id}/import、PUT /backup/{name}。先用非生产环境的 Trilium 实例测试,并优先使用只读操作验证行为。 - 本地文件 I/O:代码片段会读取本地文件(如 --data-binary @body.html)并写入输出(如 -o subtree.zip)。确保智能体只能访问指定文件,且脚本在受控目录运行。 - 认证处理:优先使用预生成的 ETAPI token,而非密码交换。若必须用密码,请确认 TRILIUM_URL 可信,并知晓密码会发送至该服务器。 - 自主...
详细分析 ▾
用途与能力
名称、描述与端点引用均与 Trilium ETAPI 交互保持一致。所列操作(创建/读取/更新/删除笔记、分支、属性、附件、导出、备份)符合 Trilium 集成场景。然而,技能元数据未声明任何必需的环境变量或凭据,而指令却明确依赖 TRILIUM_URL 与 TRILIUM_TOKEN(可选密码),声明需求与实际使用不符。
指令范围
SKILL.md 包含基于 curl 的具体运行时指令,可读写本地文件(如 --data-binary @body.html、-o subtree.zip),执行破坏性操作(DELETE /notes、PUT /backup/、POST /import),并演示通过 /auth/login 用密码换取 token。这些操作均在 Trilium ETAPI 域内,但文档赋予代理广泛权限读取本地文件、写入输出,并假定环境变量已存在。若使用不当,可能导致 Trilium 服务器数据丢失。
安装机制
仅含指令的技能,无安装规范,无捆绑代码。从安装/执行角度看风险极低(安装器不会下载或写入任何内容)。
凭证需求
该技能在元数据中未声明任何环境变量,但运行时指令却假定存在 TRILIUM_URL 和 TRILIUM_TOKEN(并演示了如何交换密码)。所需凭据(token/密码)对该 API 而言属常规,但声明中遗漏会造成配置不一致,可能导致误配或凭据意外使用。未索取无关凭据,这是优点,但应修复此不一致。
持久化与权限
该技能并非始终启用,也不会请求提升的平台权限。在提供的材料中,它不会修改其他技能或全局代理设置。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv0.0.12026/4/20

trilium-etapi 初始发布:Trilium Notes ETAPI 集成的全面 shell 脚本指南 - 提供通过 ETAPI 创建、读取、更新、搜索、删除 Trilium 笔记、分支、属性及附件的参考示例 - 记录认证方式、核心 API 端点及使用 curl 与 jq 的命令行模式 - 指出常见陷阱、推荐笔记类型与高阶脚本工作流 - 触发关键词:Trilium、ETAPI、noteId、branchId 或 ETAPI URL

无害

安装命令

点击复制
官方npx clawhub@latest install trilium-etapi
镜像加速npx clawhub@latest install trilium-etapi --registry https://cn.longxiaskill.com

技能文档

概览

ETAPI 是 Trilium Notes(≥ 0.50)的外部 REST API。所有请求均需令牌认证。资源通过 12 位 ID 定位:noteIdbranchIdattributeIdattachmentId

核心概念:

  • Note —— 内容单元(HTML/代码/文件/图片…),由 noteId 标识
  • Branch —— 两笔记的父子关系(同一笔记可克隆到多个父级下)
  • Attribute —— 附加到笔记的标签或关系
  • Attachment —— 笔记拥有的二进制或文本负载

何时使用

  • 通过脚本批量创建或导入笔记(每日笔记、收件箱、速记)
  • 从外部系统(RSS、邮件、Webhook)推送内容到 Trilium
  • 搜索/导出 Trilium 内容供其他工具消费
  • 触发服务器端数据库备份、导出子树
  • 调试 ETAPI 集成(trilium-py / trilium-client 等只是该 API 的封装)

勿用于在 Trilium 内部运行的脚本——直接使用前端/后端 Script API,无需 HTTP。

配置

以下示例均假设: ``bash export TRILIUM_URL="http://localhost:8080" # 末尾不含 /etapi export TRILIUM_TOKEN="<在 Trilium → 选项 → ETAPI 生成>" `

若仅有密码(且服务器允许密码登录),可换取令牌: `bash curl -sX POST "$TRILIUM_URL/etapi/auth/login" \ -H 'Content-Type: application/json' \ -d '{"password":"YOUR_PASSWORD"}' | jq -r .authToken `

三种认证方式(任选其一,置于 Authorization 头):

  • Authorization: $TRILIUM_TOKEN —— 原始令牌(全版本兼容)
  • Authorization: Bearer $TRILIUM_TOKEN —— Bearer 格式(v0.93+)
  • Authorization: Basic $(echo -n "etapi:$TRILIUM_TOKEN" | base64) —— Basic 认证(v0.56+)

速查表

| 操作 | 方法 | 路径 | |------|------|------| | 健康/版本 | GET | /etapi/app-info | | 搜索笔记 | GET | /etapi/notes?search=... | | 读取笔记元数据 | GET | /etapi/notes/{noteId} | | 读取笔记内容 | GET | /etapi/notes/{noteId}/content | | 写入笔记内容 | PUT | /etapi/notes/{noteId}/content (text/plain) | | 创建笔记 | POST | /etapi/create-note | | 补丁笔记元数据 | PATCH | /etapi/notes/{noteId} | | 删除笔记 | DELETE | /etapi/notes/{noteId} | | 导出子树为 ZIP | GET | /etapi/notes/{noteId}/export?format=html\|markdown | | 导入 ZIP | POST | /etapi/notes/{noteId}/import | | 创建/移动分支 | POST | /etapi/branches | | 创建属性 | POST | /etapi/attributes | | 创建附件 | POST | /etapi/attachments | | 日笔记(自动创建) | GET | /etapi/calendar/days/{YYYY-MM-DD} | | 收件箱 | GET | /etapi/inbox/{YYYY-MM-DD} | | 触发数据库备份 | PUT | /etapi/backup/{name} |

完整端点、参数与模式参考:api-reference.md

核心示例(curl + jq)

以下片段均假设已导出
TRILIUM_URLTRILIUM_TOKEN

1. 健康检查

`bash curl -s "$TRILIUM_URL/etapi/app-info" -H "Authorization: $TRILIUM_TOKEN" | jq `

2. 创建文本笔记

`bash curl -sX POST "$TRILIUM_URL/etapi/create-note" \ -H "Authorization: $TRILIUM_TOKEN" \ -H 'Content-Type: application/json' \ -d '{ "parentNoteId": "root", "title": "Hello from ETAPI", "type": "text", "content": "

Created via curl

" }' \ | jq '{noteId: .note.noteId, branchId: .branch.branchId}'
` 返回 NoteWithBranch:新 note 及其挂载 branch

3. 替换笔记内容

内容独立端点,请求体为
text/plain,即使内容是 HTML: `bash curl -sX PUT "$TRILIUM_URL/etapi/notes/$NOTE_ID/content" \ -H "Authorization: $TRILIUM_TOKEN" \ -H 'Content-Type: text/plain' \ --data-binary @body.html `

4. 搜索

`bash # 全文 + 标签 curl -sG "$TRILIUM_URL/etapi/notes" \ -H "Authorization: $TRILIUM_TOKEN" \ --data-urlencode 'search=tolkien #book' \ --data-urlencode 'limit=10' \ | jq '.results[] | {noteId, title}' ` 搜索语法与 Trilium 界面搜索栏一致。常用形式:#tag#tag=valuenote.content *= "..."~relation.title = "..."

5. 给笔记打标签

`bash curl -sX POST "$TRILIUM_URL/etapi/attributes" \ -H "Authorization: $TRILIUM_TOKEN" \ -H 'Content-Type: application/json' \ -d "{ \"noteId\": \"$NOTE_ID\", \"type\": \"label\", \"name\": \"book\", \"value\": \"\", \"isInheritable\": false }" `

6. 日笔记(按需自动创建)

`bash TODAY=$(date +%F) curl -s "$TRILIUM_URL/etapi/calendar/days/$TODAY" \ -H "Authorization: $TRILIUM_TOKEN" ``

数据来源ClawHub ↗ · 中文优化:龙虾技能库