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.