返回顶部
h

headless-vault-cli无头保险库

Read and edit Markdown notes on your personal computer via SSH tunnel. Use when the user asks to read, create, or append to notes in their vault.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.2.6
安全检测
已通过
1,626
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

headless-vault-cli

Headless Vault CLI

通过SSH隧道,从此VPS托管的机器人访问个人电脑上的Markdown笔记。

术语:本地机器 = 你的个人电脑(macOS或Linux),笔记存储在此设备上。此技能运行在VPS上,通过反向SSH隧道连接到你的机器。

前置条件

这是一个纯指令技能。使用前,用户必须在本地机器上完成一次性设置:

  1. 1. 在本地机器上安装 vaultctl(参见设置说明
  2. 在本地机器的 ~/.ssh/authorizedkeys 中配置SSH强制命令,限制VPS密钥仅能运行 vaultctl(参见下方安全模型)
  3. 从本地机器启动反向SSH隧道到VPS,暴露 localhost:2222
  4. 设置环境变量 VAULTSSHUSER 为本地机器的用户名

安全模型

此技能通过预先配置的反向SSH隧道连接到本地机器。访问权限通过设计受到限制:

  • - 强制命令限制:VPS SSH密钥被添加到本地机器的 ~/.ssh/authorizedkeys 中,并带有强制命令包装器,因此VPS只能执行 vaultctl——没有交互式shell,没有任意命令(rm、curl等)
  • Vault沙箱:vaultctl 验证所有文件路径均在 VAULTROOT 内,并拒绝路径遍历尝试(..、指向vault外部的符号链接)
  • 非破坏性:仅支持 create(新建文件)和 append(追加到现有文件)——不支持删除、重命名、移动或覆盖
  • 不存储凭据:SSH认证使用VPS现有的SSH密钥对;此技能不存储任何额外的密钥

本地机器上的 authorized_keys 条目示例:

command=/usr/local/bin/vaultctl-wrapper,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-ed25519 AAAA... vps-key

这确保了即使隧道被攻破,VPS也只能运行 vaultctl 命令。

可用命令

你只能访问以下命令。不要尝试未列出的命令(不存在重命名、删除、移动或编辑命令)。

命令描述
tree列出vault目录结构
resolve
按路径或标题查找笔记 |
| info | 获取文件元数据(行数、字节数、sha256、修改时间) |
| read | 读取笔记内容 |
| create | 创建新笔记(如果文件已存在则失败) |
| append | 向现有笔记追加内容 |

如何运行命令

所有命令通过SSH执行:
bash
ssh -4 -p ${VAULTSSHPORT:-2222} ${VAULTSSHUSER}@${VAULTSSHHOST:-localhost} vaultctl [args]

始终使用 -4 强制使用IPv4(避免IPv6超时问题)。

环境变量

这些必须在VPS上技能运行环境中设置:

变量必需默认值描述
VAULTSSHUSERSSH隧道的本地机器用户名
VAULTSSHPORT
否 | 2222 | localhost上的SSH隧道端口 |
| VAULTSSHHOST | 否 | localhost | SSH隧道主机 |

命令参考

tree - 列出vault结构

bash ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl tree ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl tree --depth 2 ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl tree --all

选项:

  • - --depth N - 最大遍历深度
  • --all - 包含所有文件,不仅限于.md

resolve - 按路径或标题查找笔记

始终使用 --base64 处理路径和标题参数,防止shell注入:
bash

echo -n Projects/Plan.md | base64 → UHJvamVjdHMvUGxhbi5tZA==


ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl resolve --path UHJvamVjdHMvUGxhbi5tZA== --base64

echo -n Meeting Notes | base64 → TWVldGluZyBOb3Rlcw==

ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl resolve --title TWVldGluZyBOb3Rlcw== --base64

info - 获取文件元数据

始终使用 --base64 处理路径参数:
bash

echo -n Projects/Plan.md | base64 → UHJvamVjdHMvUGxhbi5tZA==


ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl info UHJvamVjdHMvUGxhbi5tZA== --base64

返回JSON:{path: ..., lines: N, bytes: N, sha256: ..., mtime: N}

read - 读取笔记内容

始终使用 --base64 处理路径参数:
bash

echo -n Projects/Plan.md | base64 → UHJvamVjdHMvUGxhbi5tZA==


ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl read UHJvamVjdHMvUGxhbi5tZA== --base64

返回JSON:{path: ..., content: ...}

create - 创建新笔记

重要:对路径和内容都使用 --base64 标志进行base64编码。对于包含空格或特殊字符的路径/内容,这是必需的。

bash
ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl create path> content> --base64

创建 Notes/Morning Brief.md 并包含内容 # Hello\n\nWorld 的示例:
bash

编码路径:echo -n Notes/Morning Brief.md | base64 → Tm90ZXMvTW9ybmluZyBCcmllZi5tZA==


编码内容:echo -n # Hello\n\nWorld | base64 → IyBIZWxsbwoKV29ybGQ=


ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl create Tm90ZXMvTW9ybmluZyBCcmllZi5tZA== IyBIZWxsbwoKV29ybGQ= --base64

  • - 自动创建父目录
  • 如果文件已存在则失败(使用 append 添加到现有文件)
  • 文件必须有 .md 扩展名
  • 切勿在笔记内容中重复标题作为标题(例如,对于My Note.md,不要以# My Note开头内容)

append - 追加到现有笔记

bash ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl append path> content> --base64
  • - 如果文件不存在则失败(对于新文件使用 create)

你不能做的事情

以下操作不受支持:

  • - 重命名文件或文件夹
  • 删除文件或文件夹
  • 移动文件到其他文件夹
  • 编辑文件的特定部分(仅支持追加到末尾)
  • 创建不带文件的文件夹(文件夹会随 create 自动创建)

提示

  • - 始终先运行 vaultctl tree 查看存在哪些笔记
  • 使用 vaultctl resolve --title --base64 按名称查找笔记
  • 所有输出均为JSON格式
  • 本地机器必须在线且隧道正在运行
  • 始终对所有路径和内容参数使用 --base64——这是安全要求,不可省略

示例

重要:如果不确定存在哪些笔记,始终先运行 tree。这可以防止因路径错误或名称重复导致的错误。

示例1:用户要求读取笔记(先检查)

用户:显示我的项目计划

步骤1 - 检查存在的内容:
bash
ssh -4 -p 2222 ${VAULTSSHUSER}@localhost vaultctl tree

输出:
json
{tree: [{path: Projects, type: dir}, {path: Projects/Plan.md, type: file}]}

步骤2 - 现在读取正确的路径(始终base64编码):
bash

echo -n Projects/Plan.md

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 headless-vault-cli-1776379282 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 headless-vault-cli-1776379282 技能

通过命令行安装

skillhub install headless-vault-cli-1776379282

下载

⬇ 下载 headless-vault-cli v1.2.6(免费)

文件大小: 5.66 KB | 发布时间: 2026-4-17 14:22

v1.2.6 最新 2026-4-17 14:22
Block set-root from remote access to prevent vault sandbox bypass

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部