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.

Caller CLI · agent SSH · tools Authsia Bridge policy · CLI toggles caller binding Human approval Touch ID / Access Center or iPhone remote JIT scope · TTL · revoke Keychain vault secrets stay local Child process only parent shell stays clean CHROME AUTOFILL PATH Chrome extension page-adjacent no direct secret access Installed native host origin · URL · host installed-path checks Bundled Authsia CLI valid same-Team-ID shell PATH ignored Bridge / App browser session Touch ID approval Keychain vault host-matched item local response only approved result returns over the same local path
CLI and agent values go only to an approved child process. Chrome autofill uses its own browser session: the installed native host validates the page context and launches only the same-team bundled CLI before Bridge approval reaches the local Keychain. Standard app path: /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

  1. Agent requests scoped exec or list access.
  2. You approve folder, capability, and TTL in Access Center — or from a paired iPhone.
  3. 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.