
Security News
Free Certified Patch for Critical Rails Active Storage Vulnerability
Socket has released a free Certified Patch for a critical Rails Active Storage vulnerability, giving developers time to upgrade to a secure Rails version.
Local-first secret manager for humans and coding agents, rebuilt on Bun.
Autho stores secrets in an encrypted SQLite vault on your machine. No cloud, no sync, no account. Secrets are envelope-encrypted with AES-256-GCM and protected by a master password via scrypt KDF.
bun install -g autho
Requires Bun 1.3.10+. Standalone binaries for macOS, Linux and Windows are on GitHub Releases, and the web UI runs in Docker:
docker run --rm -it -v autho-data:/data niradler/autho init
docker run -d -p 127.0.0.1:8061:8061 -v autho-data:/data niradler/autho
# Create a vault
autho init --password "correct horse battery staple"
# Add a secret
autho secrets add --password "..." --name github --type password --value ghp_xxx --username octocat --url https://github.com
# Read it back
autho secrets get --password "..." --ref github --json
# Generate an OTP code
autho otp code --password "..." --ref my-totp --json
Run autho init to save your master password to the native OS secret store (macOS Keychain, Linux Secret Service, Windows Credential Manager). After that, all commands unlock silently without prompting.
You can also set AUTHO_MASTER_PASSWORD to avoid passing --password on every call, or set AUTHO_DISABLE_OS_SECRETS=1 to opt out of OS secret storage.
homelab; filter the CLI, TUI and web UI by group.env files, or inject into subprocessesENV_NAME=secretRef maps in a project config fileauditRetentionDays)autho with no arguments for a guided promptautho web serve); it also runs while the TUI is openautho init --password <value> [--vault <path>]
autho status [--password <value>] [--vault <path>] [--json]
autho secrets add --password <value> --name <name> --type <password|note|otp> --value <value> [options]
autho secrets list --password <value> [--group <name>] [--vault <path>] [--json]
autho secrets edit --password <value> --ref <name-or-id> [--group <name> | --no-group] [options]
autho secrets get --password <value> --ref <name-or-id> [--vault <path>] [--json]
autho secrets rm --password <value> --ref <name-or-id> [--vault <path>] [--json]
autho groups list|create <name>|rename <name> <new-name>|rm <name> [--yes] [--json]
autho otp code --password <value> --ref <name-or-id> [--vault <path>] [--json]
autho lease create --password <value> --secret <ref> --ttl <seconds> [--name <value>] [--json]
autho lease revoke --password <value> --lease <id> [--json]
autho env render --password <value> --map <ENV=ref> [--project-file <path>] [--lease <id>] [--json]
autho env sync --password <value> --map <ENV=ref> [--output <path>] [--force] [--ttl <seconds>] [--json]
autho exec --password <value> --map <ENV=ref> [--lease <id>] -- <command>
autho file encrypt --password <value> --input <path> [--output <path>] [--force] [--json]
autho file decrypt --password <value> --input <path> [--output <path>] [--force] [--json]
autho files encrypt --password <value> --input <path> [--output <path>] [--force] [--json]
autho files decrypt --password <value> --input <path> [--output <path>] [--force] [--json]
autho import legacy --password <value> --file <path> [--no-skip-existing] [--json]
autho audit list --password <value> [--limit <number>] [--source cli|tui|web|daemon] [--type <prefix>] [--secret <ref>] [--lease <ref>] [--json]
autho project init --map <ENV=ref> [--output <path>] [--force] [--json]
autho web serve [--vault <path>] [--port <value>]
autho daemon serve [--vault <path>] [--port <value>]
autho daemon status [--state-file <path>] [--json]
autho daemon unlock --password <value> [--ttl <seconds>] [--state-file <path>] [--json]
autho daemon lock --session <id> [--state-file <path>] [--json]
autho daemon stop [--state-file <path>] [--json]
autho daemon env render --session <id> --map <ENV=ref> [--project-file <path>] [--json]
autho daemon exec --session <id> --map <ENV=ref> [--project-file <path>] -- <command>
autho password change [--new-password <value>] [--json]
autho passkey add|list|remove [--label <name>]
autho config show|path|set <key> <value>|unset <key>
Run autho with no arguments for the terminal UI; press 2 there for Groups and 6 for Settings (paths, unlock methods, timeouts, agent defaults).
Run autho help for the full reference.
0600 permissionsBy default, Autho stores everything under ~/.autho/:
vault.db — encrypted SQLite vaultproject.json — project env mappingsdaemon.json — daemon stateOverride with AUTHO_HOME or --vault <path>.
Humans can approve exact secrets for an agent without sharing their master password:
# Human: unlock and start the local daemon using normal vault authentication
autho daemon start
# Human: approve an existing secret for five minutes
# GITHUB_SECRET_REF contains its vault entry name, not the secret value
autho lease create --key --secret "$GITHUB_SECRET_REF" --ttl 300 --json
# Agent: launcher supplies the returned leaseKey through AUTHO_LEASE_KEY
autho exec --map GITHUB_TOKEN=github -- node build.js
# Human: revoke before expiry
autho lease revoke --lease <id>
Keys allow only approved reads, OTP, env injection, exec and lease inspection. They expire or revoke at the daemon and are invalidated on daemon restart. New links cannot widen an issued key. Already delivered values cannot be recalled or invalidated at their external provider; this is an API boundary, not an OS sandbox.
Optional OS keyring storage is off by default. Enable it with
autho config set saveLeaseKeys true, issue a new key, then use
autho exec --lease-keyring <id> --map GITHUB_TOKEN=github -- node build.js.
Only the lease credential is saved; expiry/revocation triggers cleanup, with no
plaintext fallback if saving fails. You can also supply a key using
--lease-key-file <private-file>.
Owner-authenticated lease create without --key remains available. See the
full lease-key guide
for scope, replacement, cleanup and trust boundaries.
MIT
FAQs
Local-first secret manager for humans and coding agents, rebuilt on Bun
The npm package autho receives a total of 0 weekly downloads. As such, autho popularity was classified as not popular.
We found that autho demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Socket has released a free Certified Patch for a critical Rails Active Storage vulnerability, giving developers time to upgrade to a secure Rails version.

Security News
/Threat Research
A malicious Ruby gem runs a credential-stealing worm during installation, poisons AI coding tools, and can wipe files when a stolen GitHub token is revoked.

Security News
GitHub is tightening GitHub Actions security with new restrictions on privileged pull request workflows. Here's what changes and how maintainers are affected.