toby-bridges/api-relay-audit
toby-bridges/api-relay-audit从 DeepSeek Harness 对 AI API 中转站和 LLM 代理运行本地安全审计,生成 Markdown 报告,覆盖提示词注入、模型替换信号、工具调用改写、错误泄漏、流完整性和按 profile 启用的 Web3 风险。
本机加密的 DeepSeek Harness 账密库:侧边栏管理记录,智能体登录前按站点取用;对话收录默认关闭,逐条可设仅手动;AES-256-GCM 加密,密钥由 Windows DPAPI / macOS 钥匙串 / Linux Secret Service 保护。
为 DeepSeek Harness 准备的本机加密账密库:你维护记录,智能体在登录前按站点取用。
English at a glance — An encrypted, local-first credential vault for DeepSeek Harness. Manage website/app logins in a native sidebar panel; the
info_recordstool lets the agent look up the right account before signing in. Capturing credentials from chat is opt-in, every record can be marked manual-only, and the vault is AES-256-GCM encrypted with the data key kept in Windows DPAPI, the macOS Keychain, or the Linux Secret Service. Requires DSH ≥ 0.2.1-rc.2 and Node ≥ 22.19.

用 DSH 打开网页、登录后台、处理工单时,账号密码常常要重复输入;把密码直接发进对话,又会留在会话记录里。
信息记录把账号密码集中保存在本机,并按站点组织:
info_records 工具,按站点/网址取用正确的账号密码;--dsw-alias-* 设计令牌。info_records| action | 行为 |
|---|---|
list | 列出记录(站点、用户名、标签、id;不返回密码) |
search | 按站点/网址/用户名/标签/备注搜索(不返回密码) |
get | 按 id / 站点 / 网址取完整记录;返回密码(可被设置关闭);自动标记「已使用」 |
save | 新增或合并记录(需要开启自动收录) |
delete | 按 id 删除,或删除唯一的站点匹配 |
used | 补记一次使用 |
工具描述会要求模型:登录前先 get、不要向无关工具转发密码、除非用户明确要求否则不要在回复里打印密码。
开启后,当一条用户消息同时包含「账号/用户名…」和「密码/口令…」以及网址时,自动保存或合并成一条记录,来源标记为「自动」。同一消息只处理一次;关闭后智能体的 save 也会被拒绝。
默认关闭是有意的:密码进入对话本身就是一个需要用户明确同意的动作。 记录页会在关闭时显示提示与一键开启入口。

每条记录有一个 允许智能体使用 开关(默认开)。关闭后:
get、save 覆盖、delete、used 全部拒绝;list/search 只显示站点、用户名等元数据,并标记「仅手动」,备注也不返回;
DSH 的插件目录来自 awesome-dsh-plugin。本插件已提交 PR #7950,合并后可在 设置 → 插件市场 搜索「信息记录」或 dsh-info-records 安装。合并前可直接用下面的 GitHub 方式。
dsh plugin --profile web add github:xiezouqu12/dsh-info-records
或安装 v1.0.0 的预打包 tarball:
dsh plugin --profile web add "https://github.com/xiezouqu12/dsh-info-records/releases/download/v1.0.0/dsh-info-records-1.0.0.tgz"
npm 包 dsh-info-records 发布后可用:
dsh plugin --profile web add dsh-info-records
web 换成你自己的 profile 名;官方 Desktop 版请在应用内的 设置 → 插件 中安装。
dsh plugin --profile web add /absolute/path/to/info-records
安装后打开任意会话,侧边栏 技能中心 下方会出现 信息记录。
info_records 取用;你可以要求它「登录前先查信息记录」。security 写入/读取登录钥匙串。secret-tool 使用系统密钥环。vault.key,权限 0600;这是弱回退,设置页会给出警告。powershell.exe、security、secret-tool),参数仅包含随机密钥或包裹后的密钥,不含用户输入;失败信息不会回显密钥。store.json.corrupt-<timestamp>。store.json 单独拷到另一台电脑或另一个 Windows 用户,通常无法解密。当前版本还没有便携备份/导出,迁移前请先在旧机器上手动抄录或等待后续版本。若使用本地密钥文件回退,复制整个 info-records 目录(含 vault.key)可以迁移,但保护也更弱。get 的密码会进入该会话记录:这是让模型代替你输入的代价。设置里的「向智能体显示密码明文」可以关闭,让智能体只看到掩码。/api/info-records/rpc 读写,注册在 ctx.connection.fetch 上,由 DSH 连接层负责浏览器认证。| 设置 | 默认 | 作用 |
|---|---|---|
| 允许智能体使用记录 | 开 | 关闭后 info_records 全部拒绝;逐条开关仍然生效 |
| 向智能体显示密码明文 | 开 | 关闭后 get 返回掩码,页面仍可显示/复制 |
| 自动收录对话中的账密 | 关 | 开启后才自动保存对话中的账密,也才允许智能体 save |
设置页同时显示记录数、最近写入、存储加密方式与数据文件路径(可复制)。同一组开关也注册在 设置 → 信息记录,不需要先找到侧边栏入口。

<DSH home>/info-records/store.json # AES-256-GCM 密文
<DSH home>/info-records/vault.key # 仅 fallback 方式出现
默认 DSH home 是 ~/.dsh,也可由 DSH_HOME 指定。卸载插件不会删除数据文件。
info_records 工具、v1 → v2 加密迁移。sidebar.panellist / main / settings.section 插槽与 ctx.connection.fetch、ctx.tools、ctx.on 等稳定扩展点。账号:… 密码:…,最多 3 组),不支持自由散文;其余情况可以让智能体 save 或手动添加。list/search 会向模型暴露站点、用户名等元数据(密码与仅手动记录的备注除外),这是让模型选对账号所需的最小信息。index.js 宿主:路由、info_records 工具、自动收录、存储编排
vault.js AES-256-GCM + DPAPI/Keychain/Secret Service/密钥文件
client.js Web:侧边栏入口、记录页、设置页、编辑弹窗、中英文文案
cordis.patch.yml 插入 info-records 行
locale/*.json 插件管理器标题与描述
docs/screenshots/ README 截图
插件没有构建步骤:index.js、vault.js、client.js 直接加载。client.js 通过
window.__ModuleLoader__.load({ id: 'dsh-info-records', ... }) 注册,React 来自浏览器
模块表。
MIT。见 LICENSE。