elbab CLI

The elbab CLI keeps keys and passwords encrypted and lets an agent run commands with secrets without ever showing them.

  • 268 ★ on the repository
  • Last commit
  • MIT
CLI

Broad access

Why this level

  • The utility handles API keys, SSH keys and cloud credentials.
  • `encrypt` replaces original files with encrypted ones, and a mistake without a backup risks data loss.
All reasons and checks

dreamers-laboratory/good-door

Install

Manual install

git clone https://github.com/dreamers-laboratory/good-door && cd good-door

The first README command; then `install -m 755 bin/elbab ~/.local/bin/elbab` and `elbab init --recovery ~/elbab-recovery.txt`.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The utility handles API keys, SSH keys and cloud credentials.
  • `encrypt` replaces original files with encrypted ones, and a mistake without a backup risks data loss.

This is third-party code. Review the repository files before installing.

What it does

elbab is a local secret store built on age. `elbab set-key openai OPENAI_API_KEY` saves a key without writing it to shell history, and `elbab run openai -- python app.py` places the value in the process environment and never in a file. The encryption key lives in the macOS keychain, TPM, Secret Service, DPAPI, on a hardware key or in a password manager. The utility protects what already sits on disk: SSH keys get a random passphrase, the AWS file is replaced with on-demand key delivery, `.env` and arbitrary folders are encrypted, and `elbab scan` finds secrets by name without values. The `skill/SKILL.md` skill tells an agent to run commands only through `elbab run` and never read values.

Who it is for. Developers who give agents access to API keys, SSH and cloud CLIs and do not want secrets left in plain text or in logs.

Good fit when

  • An agent must run a script with `OPENAI_API_KEY` and the value must not reach the transcript.
  • The `~/.aws/credentials` file sits in the open and must be replaced by on-demand key delivery.
  • An SSH key without a passphrase must be protected with `elbab ssh-protect`.
  • A wallet or `.env` folder must be encrypted and decrypted only for the duration of a command.

Not a fit when

  • The account on the machine is already compromised: the utility protects copies, not a process running as you.
  • A shared team secret manager with auditing is needed: elbab is local and single-user.
  • A file or folder exceeds 256 MB or contains links.

Example request

Run the app through `elbab run openai -- python app.py`, do not print the key values and report what is missing in the store.

Limitations

Python 3.9 and age 1.2 or newer are required. Anything running as you can call elbab. The utility protects copies (backups, sync, transcripts) but not a compromised account. After `encrypt` old blocks can remain on an SSD, so enable full-disk encryption. Files and folders are limited to 256 MB without links, and `--show` and `--dump` export everything after the OS password. The latest commit is dated November 2026.

How to disable. Decrypt protected files with `elbab decrypt PATH`, delete the `~/.local/bin/elbab` binary and the skill folder. The store and key live in the elbab data directory, and the recovery file from `elbab init --recovery` should be kept separately.

FAQ

How do I install elbab?

Clone the repository, run `install -m 755 bin/elbab ~/.local/bin/elbab` and then `elbab init --recovery ~/elbab-recovery.txt`. Move the recovery file to separate media.

Where is the encryption key stored?

On macOS in the keychain by default, optionally in the Secure Enclave. On Linux in TPM or Secret Service, on Windows through DPAPI. Any key can come from an identity file or a password manager command.

Does the agent see secret values?

No, when it works through `elbab run ENTRY -- CMD`. In agent shells the `show` output is masked, and the skill forbids reading `*.age` files and using `--show` and `--dump`.

How do I protect the AWS file?

Run `elbab aws-protect ~/.aws/credentials`: the file becomes keyless and AWS gets keys through `credential_process`.

Can a secret have a lifetime?

Yes, `elbab tmp wifi 2h` saves an entry that expires after two hours.

Discussion

No questions or reviews yet.

CLI tools

agent-secrets lends keys to an AI agent for a limited time: age encryption, TTL leases, an access log and an emergency revoke.

CLIBroad access114Repository stars

Vahta lets an agent use your passwords and API keys from an encrypted vault without ever showing it the values

CLIBroad access71Repository stars

A utility keeps keys in the system keychain and injects them at the transport layer, so the agent never sees a value.

CLIBroad access197Repository stars

A wrapper over the 1Password CLI: agents find, use and save secrets without seeing the values, and ask for approval less often

CLIBroad access326Repository stars

A skill and CLI around .env.schema: the agent sees variable names, types and rules while secret values never reach its context

SkillExtended access5KRepository stars

EnvLatch keeps API keys in the macOS Keychain and gives a command only the environment variables you pick, with no .env files

CLIBroad access99Repository stars

README in short

The README explains the threat of plaintext secrets and shows installation, key storage choices and the main commands. Separate sections cover SSH, AWS, cloud CLIs, `.env` and folders, while a limits block lists what the utility does not cover.

README badge

Report a problem