Security that matches how developers actually work
Secrets leak from env files, shell history, agent prompts, and long-lived SSH keys. Authsia keeps them in your Mac vault and only releases scoped access after you approve.
Problems Authsia is built for
Plaintext in repos
.env values get committed, copied into tickets, or pasted into agent chats.
Secret-filled shells
Exported keys sit in parent shells, child tools, and accidental env dumps.
Agents with too much
Coding agents can read any file they can open unless access is gated.
Keys without an owner
SSH keys on disk and silent CLI access leave no clear who/when trail.
Security model
CLI, agent, SSH, and Chrome callers enter through authenticated local boundaries before Bridge policy and human approval authorize access.
/Applications/Authsia.app/Contents/Helpers/AuthsiaNativeHost.
How risk drops in practice
Commit-safe workspace refs
Stop shipping secrets in env files. Before: API_KEY=sk-live-.... With Authsia: API_KEY=authsia://....
Guarded terminal
Keep plaintext out of the parent shell. Shims resolve into the tool child. See Guarded terminal.
Agent JIT approvals
- Agent requests scoped
execor list access. - You approve folder, capability, and TTL in Access Center — or from a paired iPhone.
- Grant expires or you revoke it; audit keeps who asked without secret values.
SSH signing in the vault
Git and SSH sign through the Authsia agent. Private keys stay in the vault. See Secure SSH & Git.
What stays local
Keychain-backed vault
Secrets and related metadata use Apple Keychain stores on your Mac.
Item-level CLI toggles
Keep highly sensitive items app-only even when CLI Access is on.
Local audit, no secret dump
Review who accessed what without exporting resolved secret values.
Verify a release
Official macOS builds use Apple Developer Team ID 33M8QU65SP. Check DMG hash, signing, notarization, Gatekeeper, and bundled CLI in the verify guide.
Report a vulnerability
Report privately on GitHub. Never include real secrets, seeds, private keys, or OTP codes. Read SECURITY.md and the public TRUST.md map.