Navigate the docs

Security model: where your keys actually live

Straight answers to the questions that decide whether you trust a credential broker. The cryptographic detail behind each one is in PROTOCOL.md.

Where is the plaintext?

In exactly one place: the daemon's memory on your machine, while the vault is unlocked. On disk (yours and ours) the vault exists only as a blob sealed under a key derived from your passkey. sc lock wipes the decrypted copy from memory; so does stopping the daemon.

What does the cloud store?

The sealed vault blob (for backup and cross-device sync), your device and agent registrations, and approval/audit metadata. It cannot decrypt the blob: sealing and unsealing happen on your devices. Credential values you add in the web console are encrypted in your browser before upload; values you enter at the CLI never leave your machine at all.

So a breach of your servers leaks my keys?

It leaks sealed blobs. Without a passkey tap on one of your enrolled authenticators, they stay sealed. That is also the honest cost of the design: lose every enrolled passkey and nobody, including us, can decrypt your vault. Enroll a backup passkey (your vault's Passkeys tab) the day you set up.

What can a compromised agent do?

Less than you'd fear. It holds phantoms, which are inert everywhere except SafeClaw's proxy. Through the proxy it can spend a credential only toward that connection's own hosts, under your policy, and sensitive actions block until you approve them with a passkey. What it cannot do: read a value, send a credential to an attacker's host, or approve its own requests. Exfiltrating a key it never held is not on the table.

Is SafeClaw intercepting all my traffic?

No. Only commands you deliberately prefix with sc run -- are brokered. Everything else on your machine goes straight out, untouched.

What does a passkey tap actually authorize?

One specific operation. Approval surfaces speak SUDP, a passkey-signed single-use-grant protocol: the pending operation is what you see, what you sign, and all the signature is good for. There is no session-wide "approve everything" token to steal.

Can I verify any of this?

Yes: this repo is the entire client. The sealing, the proxy substitution, and the approval protocol all happen in code you can read and build yourself (cargo build --release), and releases carry sigstore build-provenance attestations tying the binary you installed to this source.