Back to home

fieldnote-ops

keyringseam

macOS Keychain credential provider for DeepSeek Harness, with a signed and notarized universal helper.

Stars
1
Language
JavaScript
Created
Aug 14, 2026
Updated
Aug 14, 2026

Introduction

KeyringSeam

KeyringSeam is an experimental macOS Keychain-backed implementation of the DeepSeek Harness ctx.credentials seam. Its bundle disables the base credentials row with the exact expected package-name guard, then inserts one KeyringSeam provider row. It keeps a non-empty launch environment value as the read-only highest-priority source and stores managed values as generic-password items in the user's default Keychain.

简体中文

KeyringSeam is an independent, AI-assisted open-source project by FIELD NOTE. It is not affiliated with, sponsored by, or endorsed by DeepSeek or Apple. DeepSeek Harness is named only to describe compatibility; macOS and Keychain are Apple trademarks.

Unit tests cover the provider contract with a fake store. A disposable macOS Keychain write/read/describe/delete lifecycle and a clean-profile DeepSeek Harness 0.1.0-rc.6 replacement boot both passed locally on 2026-08-14. The hosted consumer matrix uses HarnessProof to install locked dependencies in an isolated plugin copy before checking DSH rc.6, latest, and experimental next. The package carries a universal arm64 + x86_64 helper built from the included Swift source, so consumer machines do not need Swift, Xcode, or the Apple command-line developer tools. The exact helper is signed with Developer ID Application, Hardened Runtime, and a secure timestamp; Apple notarization submission 4a707bd7-4d84-4310-acf1-71d37c3dcebb was accepted with no issues and covers both architecture CDHashes. Independent security review, independent-user adoption, and non-macOS backends are not claimed.

Install

dsh plugin --profile web add github:fieldnote-ops/keyringseam

KeyringSeam intentionally replaces the credentials bundle row. Review the generated profile diff before using it with real credentials. The current release supports macOS 13 or newer only.

Security design

  • The secret is never placed in a shell command or process argument. A bundled native helper reads a JSON request from stdin and calls Apple's Security framework directly.
  • The executable path is fixed inside the package, shell is disabled, no arguments are passed, output is capped, and calls time out.
  • The helper targets macOS 13 or newer and contains both Apple Silicon and Intel slices. npm run build:helper reproduces it from src/keychain-helper.swift; release packaging verifies both architectures and the code signature.
  • New managed items are non-synchronizable, device-only, and available only while the user Keychain is unlocked. Requests are capped at 64 KiB; v0.1 credentials are capped at 16 KiB of single-line UTF-8.
  • v0.1 rejects multiline credentials because the prompt transport is line-oriented.
  • resolve holds the returned secret in the host process long enough to return it to the requesting adapter. Same-user processes, the harness host, and other plugins remain inside the trust boundary.
  • Environment values shadow Keychain items and make set/unset fail loud.

No claim of cross-platform support, independent security review, independent-user adoption, purchase validation, or income is made.

Maintainer build

npm ci
npm run build:helper
npm run check

Release signing takes one explicit Developer ID identity and verifies Hardened Runtime immediately:

./scripts/sign-helper.sh "Developer ID Application: Legal Name (TEAMID)"

Notarization uses a locally stored notarytool Keychain profile and produces both the result and full Apple submission log:

./scripts/notarize-helper.sh keyringseam-notary /absolute/output-directory

The verifier matches the Apple ticket's arm64 and x86_64 CDHashes to the exact helper. Apple publishes tickets for standalone binaries online, but currently does not support stapling a ticket directly to a standalone Mach-O; see Customizing the notarization workflow.