GetNote Toolbox:把本机 getnote CLI 变成 15 个 DSH 工具

前言

在 DeepSeek Harness(DSH)里让智能体读写「得到大脑」(GetNote)笔记,常见做法是装官方 DSH 插件,由 Host 暴露一组结构化工具。开发 GetNote Toolbox 时,官方 @getnote/dsh-plugin 尚未支持 DSH Desktop,而 Desktop 又是很多人的日常入口。leether 维护的 @leether/getnote-toolbox 是一个原生 DSH Host bundle:不直接调得到大脑 API,而是把本机已登录的 getnote CLI 封装成 15 个工具,并附带 Config schema 与内置引导 Skill。若官方插件已覆盖你的环境与需求,应优先用官方版本;本插件不是要替代它。

这是什么

  • 名称:GetNote Toolbox(npm:@leether/getnote-toolbox,GitHub:leether/getnote-toolbox)
  • 维护者:leether
  • 分类:记忆(社区目录 SkillHub 归类)
  • 许可:MIT(资料记载当前版本 1.2.1)
  • 定位:将本地 getnote 命令行变成 DSH 可调用的笔记、标签、知识库工具集;认证与 API Key 由本机 CLI 管理,插件不读取、不回显凭证。

核心功能

插件注册 15 个 getnote_* 工具,并内置 Skill getnote-toolbox,用于引导 Agent 优先使用原生工具,并在写操作、标签覆盖、删除确认和登录提示上遵循统一规则。

工具名 作用
getnote_auth_status 检查本机 GetNote 登录状态
getnote_search 语义搜索笔记,可限定知识库
getnote_save 保存文字、网页链接或本地图片,可设标题和标签
getnote_recent_notes 列出最近笔记
getnote_note 按 ID 读取笔记详情与正文
getnote_update_note 更新标题、正文或标签
getnote_delete_note 移入回收站(须显式 confirm: true)
getnote_tag 查看 / 添加 / 按标签 ID 删除标签
getnote_list_knowledge_bases 列出自有或订阅的知识库
getnote_kb_notes 列出某个知识库内的笔记
getnote_create_kb 创建个人知识库
getnote_add_notes_to_kb 把一条或多条笔记加入知识库
getnote_remove_notes_from_kb 从知识库移除笔记(不删除笔记本身)
getnote_task 查询保存任务的异步进度
getnote_quota 查看 API 读写配额

运行环境要求 Node.js >= 20;仓库说明在 getnote 1.1.1 与 1.8.0 上验证,建议使用 1.5.3+。

前置条件

下面三步是安装插件之前应满足的依赖。

  1. DeepSeek Harness Desktop / Host,且支持本地 bundle。
  2. Node.js >= 20。
  3. 本机已安装并登录 GetNote CLI:
getnote auth status
getnote auth login   # 未登录时

安装与启用

已发布为 npm bundle,优先在 DSH Plugin Manager 中安装,包名为:

@leether/getnote-toolbox

安装后确认 profile 加载了插件自带的 cordis.patch.yml(bundle 默认会带上)。

与官方插件冲突:本插件与官方 @getnote/dsh-plugin 使用相同的 getnote_* 工具名。不要在同一 profile 里同时安装两者,否则后注册者会产生工具名冲突。

插件按以下顺序查找 getnote 可执行文件:

  1. Config 的 binaryPath
  2. 环境变量 GETNOTE_BIN
  3. PATH 中的 getnote
  4. 常见安装目录
  5. npx --yes --package @getnote/cli@latest -- getnote 兜底

若 PATH 中存在多个 getnote,建议在配置里显式设置 binaryPath,避免版本错位。

配置

可在 profile 的 cordis.patch.yml 中覆盖插件 Config,例如:

- id: getnote-toolbox
  config:
    binaryPath: /opt/homebrew/bin/getnote
    apiUrl: http://127.0.0.1:8080
    timeoutMs: 120000
    maxOutputBytes: 16777216
字段 默认 说明
binaryPath 自动发现 getnote 绝对路径,优先于 GETNOTE_BIN 和 PATH
apiUrl CLI 默认 设置 GETNOTE_API_URL,用于联调或私有环境
timeoutMs 120000 单次命令超时(最小 1000)
maxOutputBytes 16777216 单次命令输出上限(最小 1024)

覆盖某个 entry 的 config 会替换整份配置,需保留的字段要一并写上。环境变量 GETNOTE_BIN、GETNOTE_TIMEOUT_MS、GETNOTE_MAX_OUTPUT_BYTES 可作为兜底。

典型用法

智能体通过上述工具完成常见工作流,无需你手写 shell;典型场景包括:

  1. 确认登录:调用 getnote_auth_status,未登录时按 CLI 提示执行 getnote auth login。
  2. 检索与阅读:用 getnote_search 做语义搜索(可限定知识库),再用 getnote_note 按 ID 拉正文。
  3. 写入与整理:getnote_save 保存文字、链接或本地图片(本地图建议绝对路径);getnote_update_note 改标题、正文或标签;getnote_tag 管理标签。
  4. 知识库:getnote_list_knowledge_bases 列出库,getnote_kb_notes 看库内笔记,getnote_create_kb / getnote_add_notes_to_kb / getnote_remove_notes_from_kb 组织内容。
  5. 异步与配额:保存可走异步,用 getnote_task 查进度;getnote_quota 查看读写配额。

删除笔记时,工具要求显式 confirm: true,避免误删。

适用场景与注意

适合谁:主要在 DSH Desktop 或本地 Host 上使用得到大脑、且希望 Agent 以结构化工具操作笔记、标签和知识库的开发者;尤其在意 Desktop 的 locale/icon、CLI 发现与 Plugin Manager 可见性时,可参考本 bundle 的做法。

安全与权限:

  • 插件以当前 DSH Host 进程权限运行子进程;安装前应阅读源码与 MIT 许可证,并理解它将 Host 环境传给 getnote。
  • 参数经数组传给 spawn,不经 Shell;无任意命令入口。
  • npx 兜底会拉取 @getnote/cli@latest;若在意供应链风险,请用 binaryPath 固定本地 CLI 版本。

已知限制(摘自仓库说明):与官方插件不能同 profile;旧 CLI 上列表 limit 行为可能不同;CLI 无公开笔记链接字段,插件不拼链接;内置 Skill 仅在 Harness 提供 skills 服务时注册。

DSH 生态强调「一切皆插件」;社区目录(如 SkillHub)是独立站点,与 DeepSeek / 幻方无官方从属关系。

延伸阅读与链接

若你已在 Desktop 上登录 getnote,在 Plugin Manager 安装 @leether/getnote-toolbox 并避免与官方 @getnote/dsh-plugin 混装,即可让智能体通过 15 个原生工具管理得到大脑里的笔记与知识库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜