Keynest – a simple offline secrets manager
Encrypted .env replacement, but pass and sops already cover this.
Yubikey-backed password store with token swap semantics to prevent passwords leaking to command line history or AI agents.
AI agents deploy without ever seeing passwords—hardwarebacked XOR-split YubiKey redundancy, sudo-enforced privilege boundary.
DevOps engineers and platform teams running AI-assisted infrastructure management (Claude Code, Copilot in Kubernetes/Helm workflows)
HashiCorp Vault · SOPS (Secrets Operations) · Sealed Secrets
tswap keeps secrets in an AES-encrypted vault file on disk. The decryption key is derived from a YubiKey via HMAC challenge-response. At init you pair two YubiKeys — either unlocks the vault, so you have no single point of hardware failure.
Config files use a comment-based placeholder that keeps them valid YAML:
stringData: DB_PASSWORD: # tswap: db-password
Deployment is a pipe:tswap apply values.yaml | helm upgrade myapp ./chart -f -
The privilege split is the key design decision: `apply`, `run`, and `check` need no elevation (AI agent gets these). `get`, `list`, `delete`, and `export` require sudo/admin (human gets these). The AI can deploy; it can't read or enumerate secrets.Other features: burn tracking for rotation, `redact` for stripping values from logs, `check` for pre-deploy validation, `export`/`import` for vault migration.
Single binary, no daemon. Tested on Linux, macOS, and Windows.
Encrypted .env replacement, but pass and sops already cover this.
Temporary decryption with ctg run deletes plaintext after command, unlike sops or git-crypt.
Touch ID auth and Keychain integration beat 1Password's env tool on local-first workflow.
Secure Enclave vault exec beats .env files for AI agent secret injection.
Human-in-the-loop secret approval for AI agents beats giving them full 1Password access.
AI agents get credentials without ever seeing them—SQL prepared statements for secrets.