fieldnote-ops/keyringseam ↗★ 0
keyringseam
A macOS Keychain-backed CredentialProvider for agent harnesses, initially compatible with DeepSeek Harness.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fieldnote-ops/keyringseam说明文档
阅读完整 README ↗KeyringSeam
KeyringSeam 是一个实验性的 macOS Keychain 凭证提供方,使用 DeepSeek Harness 公开的 ctx.credentials 接缝。它会禁用默认的本地明文凭证行,插入一个 KeyringSeam provider;启动环境中的非空值仍保持只读最高优先级,受管值则保存为用户默认钥匙串中的 generic-password 项。
当前版本只面向 macOS 13 及更高版本。npm 包内带有从公开 Swift 源码构建的 arm64 + x86_64 通用 helper,使用者不需要安装 Swift、Xcode 或 Apple 命令行开发工具。
KeyringSeam 是 FIELD NOTE 的独立、AI 辅助开源项目,与 DeepSeek 或 Apple 无隶属、赞助或背书关系。DeepSeek Harness 仅用于说明兼容性;macOS 和 Keychain 是 Apple 的商标。
安全边界
- secret 通过 stdin 发送给固定的包内 helper,不进入 shell、argv 或 DSH 配置文件。
- helper 直接调用 Apple Security framework;执行超时且 stdout/stderr 有 1 MiB 上限。
- Harness host 和拥有同等用户权限的其他进程仍位于信任边界内;KeyringSeam 改变存储位置,并不能把不可信宿主变安全。
- 环境变量覆盖 Keychain 项;被覆盖时
set/unset会明确失败,不会静默写入另一个来源。 - v0.1 只接受单行非空凭证。
- 新建受管项不参与同步、仅限本机,并且只在用户钥匙串已解锁时可用;请求上限为 64 KiB,单个 v0.1 凭证上限为 16 KiB UTF-8。
当前证据
- 8 项 provider、存储和原生 helper 测试通过;
- 一次可丢弃的真实 Keychain 写入、精确读取、存在检查、删除和删除后不存在闭环通过并已清理;
- 在隔离的 DSH
0.1.0-rc.6consumer 中完成plugin add、组合配置、Web 启动和 HTTP 200; - 托管 consumer matrix 通过 HarnessProof 在隔离副本中安装锁定依赖,再检查 DSH rc.6、
latest与实验性next; - 通用 helper 的 Apple Silicon 与 Intel slice 均已在本机执行。
- 当前 helper 已使用 Developer ID Application、Hardened Runtime 和安全时间戳签名;Apple 公证提交
4a707bd7-4d84-4310-acf1-71d37c3dcebb已无问题通过,票据覆盖两个架构的精确 CDHash。
上述证据不是独立安全审计,也不代表陌生用户采用;当前也不宣称支持非 macOS 后端。
安装
dsh plugin --profile web add github:fieldnote-ops/keyringseam
KeyringSeam 会有意替换 credentials bundle row;对真实凭证启用前,请先检查生成的 profile diff。当前版本仅支持 macOS 13 及以上。
维护者构建
npm ci
npm run build:helper
npm run check
发布签名使用明确的 Developer ID 身份:
./scripts/sign-helper.sh "Developer ID Application: Legal Name (TEAMID)"
公证使用保存在本机钥匙串里的 notarytool profile,并保存 Apple 的结果与完整提交日志:
./scripts/notarize-helper.sh keyringseam-notary /absolute/output-directory
验证器会把 Apple 票据中的 arm64 与 x86_64 CDHash 和当前 helper 精确比对。Apple 会在线发布独立二进制的票据,但目前不能把票据直接 staple 到独立 Mach-O;参见 Apple 公证工作流文档。
不要在 issue、日志或安全报告中提交真实 secret、Keychain dump、账户标识或私有模型配置。