irisnb/dsh-credentials-keyring ↗★ 2
dsh-credentials-keyring
为 DeepSeek Harness 凭据接缝提供的系统级钥匙串凭据提供者(支持 Windows 凭据管理器 / macOS 钥匙串 / Linux 秘密服务)。
AI 分析
核心用途是将 DSH 的敏感凭据(如 API Key)安全地存储在操作系统的钥匙串中。适合对本地凭据存储安全性有较高要求的 DSH 用户。
安裝
此插件尚未提供可驗證的 bundle,或相容性檢查未通過。請先閱讀倉庫說明。 閱讀完整 README ↗
說明文件
閱讀完整 README ↗Usage
The provider implements CredentialProvider, so it plugs into the credentials seam and stores one value per credential reference (a POSIX identifier such as DEEPSEEK_API_KEY).
import { Context } from '@deepseek-ai/cordis'
import { KeyringCredentialProvider } from 'dsh-credentials-keyring'
const ctx = new Context()
await ctx.plugin(KeyringCredentialProvider, { service: 'com.your-app.desktop' })
// Consumers then resolve through the seam as usual:
const hit = await ctx.credentials.resolve(credentialRef('DEEPSEEK_API_KEY'))
// { value: 'sk-…', source: 'keyring' } | undefined
Config
| Field | Default | Meaning |
|---|---|---|
service | com.deepseek.dsh | Keychain service namespace. Set it to your app's identifier so your secrets never collide with another app's. |
Every other value lives in the keychain under (service, account), where account is the credential reference.
Semantics
resolve(ref)→{ value, source: 'keyring' }when stored,undefinedwhen absent or empty.describe(ref)→{ configured, source?, writable }— never the value.set(ref, value)→ stores; rejects an empty value (useunset).unset(ref)→ deletes; deleting an absent entry is a no-op.set/unsetemitcredentials/updatedafter committing, like every provider.