Skip to main content
A vault holds credentials an agent can use without ever reading. Values are injected at the network boundary; the agent sees a placeholder reference, never the secret.

Commands

There is no reveal command, and there never will be one. No route returns a credential value and the credential schema has no value field, so a vault get-value could only be a lie. If you need the secret, read it from wherever you originally got it.

create

list & show

list returns vaults, not credentials — a vault is a container and reports only how many credentials it holds. Use vault credentials for what is inside one. show and delete take the vault id as a positional argument and accept no flags.

set

Three kinds of credential, each named by the flag carrying its destination. Pass exactly one:
The secret comes from stdin by default, because an argv secret is visible in ps and lands in shell history. --value exists for CI, where the value already comes from a secret store and argv is not shared. Passing neither is an error, not an empty secret.
An env_var credential is bound to one exact destination host. The injector never wildcards, which is why --host is required: a key scoped to api.stripe.com cannot leak to any other host the agent reaches.

credentials

placeholder_ref is what the agent actually handles. last_injected_at is the audit signal: it tells you the credential was used, and when, without telling you what it is.

rm

Rotating a credential

There is no update command. Rotation is set a new credential, then rm the old one:
A credential is immutable by design, so last_injected_at stays attributable to exactly one secret. An in-place update would make “when was this value last used?” unanswerable at exactly the moment you most need it — during an incident.