Three years of paying for 1Password. No complaints — it's a solid product. Then one morning we ran op read to grab a Stripe key and stopped. $36/year for a get and set command. Our Mac already had hardware-encrypted storage with biometric auth baked in. The Keychain was right there. We just needed a better way to talk to it.
So we spent a week testing every free CLI alternative we could find. Here's what held up.
Why developers look for 1Password CLI alternatives
1Password CLI (op) is genuinely good. op run is elegant, vault integration is tight, team sharing works. We're not here to trash it. But three things kept bugging us:
- The cost doesn't match the use. $36/year for an individual plan. If you're an indie dev managing a handful of API keys, that's a subscription for what your Mac already does for free — hardware-encrypted secret storage.
- Cloud sync you don't need. 1Password routes everything through their servers. Great for teams. For a solo dev on one machine? That's an extra attack surface for sync you'll never use.
- Way too much tool for the job. Password vaults, watchtower alerts, travel mode, family sharing. If all you need is "store this API key, give it back when I ask, authenticate with my fingerprint" — you're paying for a Swiss Army knife when you need a screwdriver.
None of these are dealbreakers for everyone. If your team shares creds through 1Password, keep it. But if you're solo on macOS and just want encrypted storage without a subscription, you've got real options.
5 free alternatives to 1Password CLI
1. NoxKey — macOS Keychain with a developer-friendly CLI
Full disclosure: we built NoxKey. We'll be upfront about what it does and doesn't do.
NoxKey is a macOS menu bar app and CLI that stores secrets in the Keychain, protected by Touch ID. No cloud, no account, no subscription. Built for the exact workflow 1Password CLI handles — storing and retrieving developer secrets from the terminal — without the overhead of a full password manager.
# Install — download from https://noxkey.ai
# Import your existing secrets
$ noxkey import myorg/project .env
✓ Imported 6 secrets
# Use them — Touch ID on every access
$ eval "$(noxkey get myorg/project/STRIPE_KEY)"
# Batch operations — one fingerprint, then flow
$ noxkey unlock myorg/project
$ eval "$(noxkey get myorg/project/STRIPE_KEY)" # no prompt
$ eval "$(noxkey get myorg/project/DATABASE_URL)" # no prompt
Here's what none of the other tools on this list do: AI agent detection. When Claude Code, Cursor, or Copilot calls noxkey get, it walks the process tree, spots the agent, and returns the secret through an encrypted handoff. The value reaches the agent's environment but never enters its conversation context.
Pros: Free, open source. Hardware encryption via Secure Enclave. Touch ID. AI agent detection with encrypted handoff. org/project/KEY namespacing. Session unlock for batch ops. Menu bar UI. One-command .env import.
Cons: macOS only — depends on Keychain and Secure Enclave. No team sharing. No cross-device sync. Single-machine tool by design.
Best for: Solo macOS developers who want 1Password CLI's core workflow without the subscription or cloud — especially if you use AI coding agents.
2. macOS Keychain (native security CLI)
Before we built NoxKey, we spent a week trying to use the Keychain directly. The security is identical — same Secure Enclave, same AES-256 encryption, same Touch ID. The developer experience is where it falls apart.
# Store a secret (note the flags)
$ security add-generic-password -a "$USER" -s "myproject-stripe-key" \
-w "sk_live_..." -T ""
# Retrieve it
$ security find-generic-password -a "$USER" -s "myproject-stripe-key" -w
Compare that to op read "op://Dev/Stripe/key" or noxkey get myorg/project/STRIPE_KEY. The security command works, but it wasn't designed for juggling dozens of dev secrets. No namespacing. No bulk import. Access control groups are a nightmare. We documented the whole experience — it's doable, but you'll fight the tooling.
Pros: Free, already installed. Same hardware encryption as NoxKey. No third-party deps. Touch ID support (with correct configuration).
Cons: Terrible DX for developer workflows. No namespacing or organization. No bulk import/export. No AI agent awareness. You'll end up writing wrapper scripts — at which point you're building your own NoxKey.
Best for: Developers who want zero dependencies and don't mind shell wrappers. Fine for a handful of secrets. Painful at scale.
3. Bitwarden CLI (bw)
Bitwarden is the open-source alternative to 1Password as a password manager, and their CLI extends that to the terminal. If you're already using Bitwarden for passwords, the CLI gives you programmatic access to your vault.
# Login and unlock
$ bw login
$ export BW_SESSION=$(bw unlock --raw)
# Get a secret
$ bw get password "Stripe API Key"
# Create a secure note with your API key
$ bw get template item | jq '.name="STRIPE_KEY" | .notes="sk_live_..."' \
| bw encode | bw create item
The free tier is genuinely free — unlimited passwords and secrets, cross-device sync, no credit card. That's a real edge over 1Password. The catch: Bitwarden CLI was built for password management, not developer secrets. There's no bw run equivalent to op run. Injecting secrets into your environment takes scripting. And the session token (BW_SESSION) sits in your shell as an environment variable — exactly the kind of thing we're trying to avoid.
Pros: Free tier with no limits. Open source. Cross-platform. Device sync. Self-hosting option (Vaultwarden). Active community.
Cons: CLI built for password management, not dev workflows. BW_SESSION token exposed in environment. No run command for secret injection. Cloud-dependent. No AI agent detection. Each command round-trips to the vault.
Best for: Developers already on Bitwarden who want terminal access to their vault. Less ideal as a purpose-built secrets tool.
4. pass (the standard Unix password manager)
pass is the minimalist's answer to secret management. Each secret is a GPG-encrypted file in ~/.password-store/. That's it. The filesystem is the database, GPG handles encryption, git handles version history.
# Initialize with your GPG key
$ pass init "your-gpg-id@email.com"
# Store a secret
$ pass insert dev/stripe-key
# Retrieve it
$ pass dev/stripe-key
# List all secrets
$ pass ls
We respect the philosophy. It's genuinely Unix — small tool, one job, composes with others. The encryption is solid. Git integration gives you history and sync. It's been around since 2012, battle-tested by the Linux community.
The downside: GPG key management is its own circle of hell. Never set up a GPG keyring? Block out an afternoon before you store your first secret. On macOS you'll need gnupg and pinentry-mac from Homebrew, and getting the pinentry agent to work reliably takes patience. No Touch ID — authentication is your GPG passphrase.
Pros: Free, open source. Strong GPG encryption. Git-based version history. Filesystem-based — easy to understand and back up. Huge ecosystem of extensions. Works on macOS, Linux, BSD.
Cons: GPG setup is painful. No Touch ID on macOS. No namespacing beyond directories. No AI agent detection. Ecosystem feels dated compared to modern dev tools.
Best for: Developers comfortable with GPG who want a proven, Unix-philosophy secrets manager. Strong pick on Linux where Keychain isn't an option.
5. age + SOPS — file-level encryption
age is a modern encryption tool — think GPG but simpler. SOPS (Secrets OPerationS) uses it to encrypt specific values inside config files (YAML, JSON, ENV, INI). Keys stay readable, values get encrypted. You can commit secrets files to git and decrypt at runtime.
# Generate an age key
$ age-keygen -o ~/.config/sops/age/keys.txt
# Create a SOPS-encrypted secrets file
$ sops secrets.yaml
# Editor opens — add your secrets, SOPS encrypts values on save
# Decrypt and use
$ sops -d secrets.yaml
# Or inject into environment
$ eval $(sops -d --output-type dotenv secrets.yaml)
This is a different animal. Not a vault, not a CLI secret store — it's encrypted config files. Your secrets travel with your repo (encrypted), and you can use the same tool for local dev, CI/CD, and production. The tradeoff: it's file-based, so you're back to managing files. The workflow is closer to "encrypted .env files" than "secrets manager."
Pros: Free, open source. Modern encryption (age is far simpler than GPG). Secrets can live in git. Works with YAML, JSON, ENV formats. Good for CI/CD. Straightforward key management.
Cons: File-based workflow, not a secrets manager. No per-access auth — if you have the key, you have everything. No Touch ID. No AI agent detection. More setup than a simple CLI tool.
Best for: Teams that need encrypted secrets in git repos. Strong for CI/CD and infrastructure-as-code. Less ideal as a daily-driver local secrets tool.
Comparison table
| Tool | Encryption | Authentication | AI agent safe | Platform | Cloud required | Price |
|---|---|---|---|---|---|---|
| 1Password CLI | AES-256 | Master password / biometrics | No | Any | Yes | $36+/yr |
| NoxKey | AES-256 (Keychain) | Touch ID | Yes (agent detection) | macOS | No | Free |
| macOS Keychain | AES-256 (Secure Enclave) | Touch ID / password | No | macOS | No | Free |
| Bitwarden CLI | AES-256 | Master password | No | Any | Yes (self-host option) | Free |
| pass | GPG (RSA/ECC) | GPG passphrase | No | macOS, Linux, BSD | No | Free |
| age + SOPS | X25519 + ChaCha20-Poly1305 | Key file | No | Any | No | Free |
Which one should you pick?
Here's how we'd decide:
You're a solo macOS dev using AI coding agents: NoxKey. Only free option with agent detection. download NoxKey, import your secrets, delete the .env files.
Solo macOS dev, no AI agents: NoxKey or native Keychain. NoxKey gives you better DX. Keychain gives you zero dependencies. Either way, hardware encryption and Touch ID.
Need cross-platform or team sharing: Bitwarden CLI if you want free. 1Password CLI if you'll pay for polish. Both give you sync that local-only tools can't.
You live in the terminal and love Unix philosophy: pass. Rock-solid for over a decade. GPG setup is the price of entry, but the workflow is clean once you're through.
Secrets need to live in git (CI/CD, infrastructure-as-code): age + SOPS. Different problem, different tool. Encrypts values in config files so they can be committed safely.
Frequently asked questions
- Is 1Password CLI free?
- No. The CLI itself is a free download, but it requires a 1Password subscription ($36+/year). For free alternatives with comparable security, see NoxKey (macOS Keychain + Touch ID), Bitwarden CLI, or
pass. - Can I use macOS Keychain instead of 1Password CLI?
- Yes. The Keychain provides the same hardware encryption (AES-256 via Secure Enclave) and supports Touch ID. The
securityCLI gives you terminal access, though the DX is rough — no namespacing, no bulk import, awkward flags. We wrote a full tutorial if you want to try it. NoxKey wraps the same Keychain with a developer-friendly interface. - Do any free secret managers protect against AI agent leaks?
- NoxKey is the only free tool we've found that detects AI coding agents (Claude Code, Cursor, Copilot) via process-tree inspection and delivers secrets through encrypted handoff instead of plaintext. Other tools — including 1Password CLI — expose raw values to any process that calls them, agents included.
- Is Bitwarden CLI a good alternative to 1Password CLI?
- For password management, yes — Bitwarden's free tier is generous and the CLI works well. For developer secrets specifically, it's less polished. No
op runequivalent, the session token sits in your environment, and each command round-trips to the vault. It works, but it wasn't built for this. - What's the most secure free option for storing API keys on macOS?
- NoxKey and native macOS Keychain both use Apple's Secure Enclave for hardware encryption and support Touch ID. They're equivalent in encryption strength. NoxKey adds AI agent detection, namespacing, session management, and a DLP guard on top. For raw security without frills, the native Keychain is already on your Mac.
Related reading: Introducing NoxKey, Best dotenv alternatives in 2026, macOS Keychain tutorial for developers.