Secrets access layer

Stop handing agents raw secrets.

Asiri keeps secret values off hosted servers. Agents get a bounded way to use each secret through a local runtime. For critical envelopes, Asiri can require the control plane to ack the audit event before the value is released.

Encrypted control plane Device-bound grants Strict audit ack
~/projects/agent-worker no values printed

$asiri env --workspace oclan-co --label codex prod/stripe/STRIPE_SECRET_KEY -- ./diagnose-billing

✓ authenticated device · decrypting locally

✓ strict audit ack received · releasing value

audit → label:codex · device:peter-mbp · action:inject · synced

Why this exists

Agents changed the risk model. The old copy-paste habit didn't scale.

Secrets were already spread across .env files, CI settings, servers, and chat. Agents make it worse — they run commands, read files, and can leak credentials into context and logs. Asiri's narrower default: trust the device, grant a named capability, enforce it locally, keep the raw value out of the agent's path.

01ManagePolicy, grants, and encrypted records live in one control plane.
02SyncTrusted devices receive wrapped data keys, never plaintext.
03UseThe local runtime decrypts only when an approved action runs.
04AuditStrict envelopes wait for a control-plane ack. Buffered envelopes sync later.
What you get

Managed in one place. Used locally. Audited when it matters.

01 — Hosted

Encrypted control plane

Ciphertext, wrapped data keys, scope metadata, policies, grants, envelope audit modes, revocation state, and audit records — all in one place. The backend never needs plaintext for the normal runtime path.

02 — Trust

Device-bound sync

Each trusted device generates its own keypair locally. It proves possession of the private key before it can unwrap data keys. Private keys never leave the device.

03 — Identity

Capabilities, not raw secret access

Authenticated users and service accounts control access. Trusted devices decrypt locally. Agents use injection, mounts, signing, or a local broker without receiving the raw value.

04 — Audit

Strict envelope audit

Set production or staging envelopes to strict when administrators need remote visibility before release. The local runtime appends the event, sends it to the control plane, and only materializes the secret after a matching ack.

05 — Honesty

Revocation with reality

Revoke a device and future sync stops immediately. Revocation can't erase what a compromised host already saw — so Asiri is honest that suspected compromise still means upstream rotation.

The boundary

Hosted coordination. Local plaintext use.

The split is the whole promise. The hosted service coordinates access; a trusted runtime on your own machine performs decryption and the actual moment of use. Customer API traffic never routes through Asiri servers.

See the product model
A human approves a trusted device so the local runtime can use secrets for the authenticated identity.
Start small

Three commands to the first local use.

The fastest way to understand Asiri is to authenticate on a trusted device, add one secret, and run one command. Add a label only when it makes the audit trail clearer.

  1. 01
    Create the local vault
    asiri login creates or unlocks the local profile. OAuth is only needed when you want the control plane.
  2. 02
    Add one secret
    asiri add --workspace peter-oclan-co dev/openai/OPENAI_API_KEY --stdin encrypts locally before upload. The control plane stores ciphertext and metadata after push.
  3. 03
    Run with an audit label
    asiri env --workspace peter-oclan-co --label codex dev/openai/OPENAI_API_KEY -- npm test uses the secret through the trusted local runtime. The label only describes the audit event.
Next

Centrally managed. Locally used. Narrowly granted.

Begin with one development secret and one authenticated workflow on a trusted device. Add CI, containers, and servers once identity, naming, expiry, and audit feel routine.