Encrypted local storage
Secret values are encrypted with XChaCha20-Poly1305 in a SQLite vault. This machine’s key lives in your OS credential store; a recovery key opens the vault anywhere else.
Open source · Rust-native · Local-first
Store development credentials in an encrypted local vault. Commit references, give your application the values it needs, and leave plaintext .env files behind.
SourceOrrery is a local-first secrets platform written in Rust. Use the CLI to manage credentials and a value-free project manifest to declare what your app needs. Read them through an SDK, or inject them into a child process at launch.
Secret values are encrypted with XChaCha20-Poly1305 in a SQLite vault. This machine’s key lives in your OS credential store; a recovery key opens the vault anywhere else.
Declare which secrets your project needs in its manifest.
Inline value fields are rejected; keep names and other metadata free of secrets too.
Inspect names, versions and status without printing secret values.
Revealing a value requires an explicit get --reveal.
Version values, enforce activation and expiry, recover soft-deleted secrets, and inspect a tamper-evident audit log.
Install SourceOrrery, then run these commands in your project directory. The secret prompt is hidden; values are never command-line arguments.
sourceorrery setup # the vault, its recovery key, its checks and storagesourceorrery secret set database-password --vault developmentsourceorrery secret list --vault developmentDeclare the secret in a project manifest. The vault and secret name resolve to
sourceorrery://development/database-password:
[project]name = "my-app"vault = "development"
[secrets.database-password]env = "DATABASE_PASSWORD"sourceorrery checksourceorrery run -- npm startnpm start receives DATABASE_PASSWORD; your parent shell is unchanged.
The child process can read and disclose its environment, so run code you trust.
The getting started guide covers unlocking, verification
and working without an OS credential store.
sourceorrery init --integration allUse your existing coding agent and ask: “Set up SourceOrrery for this
project without showing secret values.” Replace all with your agent’s
name to install only its skills. The agent handles the manifest, code and
launch commands; you create vaults and enter values privately.
The agent setup guide
also covers updating skills from the repository independently of the CLI.
All SDKs are read-only and share the Rust core’s semantics. Manage vaults and secret versions with the CLI, then read values through a scoped accessor in your application.
| Protection | Available today |
|---|---|
| Secret values encrypted in the vault | Yes. Names, tags and other metadata remain visible. |
| References instead of credentials in project files | Yes, when you keep secret values out of names, comments and metadata. |
| Version policy and tamper-evident audit records | Yes. A full rollback of the vault needs an external checkpoint to detect. |
| Isolation from an agent running as your user | No. Local unlock access is the current boundary. |
Read the threat model before choosing where to use SourceOrrery. It distinguishes vault protection from secrets copied into application memory, logs, process environments or other files.
The CLI and SDKs use the same Rust implementation. A manifest stores references. The local vault stores encrypted local values and the catalog of provider-backed secrets; the application chooses when to resolve them.