Security model

What Claude actually sees, step by step.

A short, specific answer instead of a marketing line: here is exactly what happens between typing a key into Claude Keychain and Claude running a command with it, what's protected at each step, and where the real edges of that protection are.

The path a key takes

macOS Keychain
Key stored, encrypted
Injected as env var
Into one subprocess
Command runs
Has the key in its env
stdout / stderr
Captured, not shown yet
Redaction filter
Exact matches stripped
Claude sees this
Output, key removed

The key goes from the Keychain straight into the command's own environment. Claude never holds it directly; it only ever gets back what that command printed, after the redaction step.

What this protects against

What this does not protect against

The honest tradeoff

True zero-trust isolation, where the tool running your command never holds the real key at all, needs something more involved: a scoped, short-lived token from an OAuth-style proxy, or a sandboxed execution environment, rather than a plain environment variable. Claude Keychain chooses the simpler model on purpose: one key, stored once, injected locally, with a redaction net as a backstop. That's a real tradeoff of convenience for weaker isolation, not zero risk dressed up as zero risk.

Terms, quickly

Claude Keychain is provided as is. We do not warrant that it is free of defects or fit for a particular purpose. Our total liability to you is capped at what you paid us in the last 12 months, for a monthly or yearly plan, or at what you paid for your license, for a lifetime plan.

Full terms of use · Privacy policy

Questions this doesn't answer? [email protected]