Show HN: Lokalite – local secrets for CLIs and coding agents RubenGlez released Lokalite, a local-first secrets manager for macOS that encrypts API keys, tokens, and credentials in an AES-256-GCM vault stored in Apple Keychain, delivering secrets to AI coding agents via MCP without exposing them to chat history or model context. The tool, which supports Claude Code, Cursor, and Windsurf, offers a menu bar app, CLI, and MCP server with Touch ID unlock, per-project environments, and logged access, requiring macOS 14 or later and no cloud accounts or telemetry. Lokalite is a local-first secrets manager for macOS, built for how developers work with AI coding agents. Your API keys, tokens, and credentials live in an encrypted vault on your machine. When an agent needs one, the value is delivered into its shell runtime, never into the chat — so secrets stay out of the model's context and your conversation history. Reaches Claude Code, Cursor, and Windsurf through MCP, on your terms, with every access logged. Menu bar app, CLI, and MCP server in one. No cloud, no accounts, no telemetry. Project page: rubenglez.dev/lokalite https://rubenglez.dev/lokalite vs. : values are encrypted at rest instead of sitting in plaintext, access is logged, and the same secrets are available to your shell, the CLI, and your AI agents without copy-pasting between files. .env files vs. cloud secret managers Doppler, Infisical, 1Password : nothing leaves your machine. No account to create, no per-seat billing, no vendor to trust with your credentials. Local-first is the point, not a limitation. Built for agents : an AI agent loads the secrets it needs through MCP — the value reaches its shell runtime via a one-time handoff, never the chat transcript or the model's context. Logged, read-only by default, scoped per project; no pasting keys into a conversation. Encrypted vault : AES-256-GCM via CryptoKit, vault key stored in Apple Keychain Touch ID unlock : biometric authentication to unlock the vault — from the menu bar app, or via a prompt when a CLI/MCP request arrives while the vault is locked — plus per-read consent on approve / strict secrets. While the vault is unlocked, reads don't re-prompt — see Security security Menu bar app : search, copy, and reveal secrets without leaving your workflow; recent secrets surfaced at the top Global keyboard shortcut : open the popover from anywhere, configurable in Settings default ⌘⇧Space Full CLI : read, write, and inject secrets from the terminal Projects : group secrets by project; link to a local directory for automatic resolution Environments : per-project environment profiles dev, staging, production with per-environment secret values; every project starts with a Default environment: pull from an existing .env import/export .env file or export back to one Encrypted backup/restore : lokalite backup writes a passphrase-encrypted file; lokalite restore reads it back Shell injection : eval $ lokalite shell exports secrets into the current session Clipboard auto-clear : copied values are wiped after 30 seconds Session timeout : vault auto-locks after inactivity In-app auto-updates : the menu bar app keeps itself current via Sparkle — a manual Check for Updates… item plus opt-in automatic background checks MCP integration : expose your vault as tools to Claude Code, Cursor, Windsurf, and any other MCP-compatible agent Secret references : commit lokalite://project/KEY instead of a token in MCP configs; lokalite run --refs-only resolves it at spawn time Zero runtime dependencies : no cloud, no telemetry, no vendor lock-in - macOS 14 or later CLI, MCP server, and menu bar app via Homebrew: brew install RubenGlez/lokalite/lokalite brew install --cask RubenGlez/lokalite/lokalite-app lokalite install registers the MCP server in ~/.claude.json If you don't need the menu bar app: brew install RubenGlez/lokalite/lokalite lokalite install If you already have the CLI installed or don't need it: brew install --cask RubenGlez/lokalite/lokalite-app Download from the Releases page https://github.com/RubenGlez/lokalite/releases : - CLI : run the .pkg installer, then lokalite install - Menu bar app : drag the .dmg to Applications and launch it — no quarantine workaround needed.Releases are signed with an Apple Developer ID and notarized by Apple — the app, DMG, and CLI .pkg all pass Gatekeeper on first launch. The menu bar app then keeps itself up to date automatically Sparkle . Every release also ships a SHA256SUMS file you can verify against the artifacts. Initialise a project from the current directory lokalite init Check vault state active project, env, secret count, MCP status lokalite status lokalite status --json View the secret access log which agent read/changed what, and from where lokalite log lokalite log --limit 20 lokalite log --source cli filter by app, cli, or mcp lokalite log --agent claude filter by the AI agent that accessed the secret Add a secret lokalite add OPENAI API KEY sk-... lokalite add OPENAI API KEY no value: prompts for it, keeping it out of shell history echo -n "sk-..." | lokalite add OPENAI API KEY - or pipe it via stdin Get a secret prints to stdout, pipeable lokalite get OPENAI API KEY Copy to clipboard auto-clears after 30s lokalite copy OPENAI API KEY List all secrets lokalite list Filter secrets by name or description case-insensitive substring lokalite list --search openai Update a secret also supports the prompt/stdin forms shown for add lokalite set OPENAI API KEY sk-new-... Delete a secret lokalite delete OPENAI API KEY Run a command with secrets injected as environment variables lokalite run -- npm start lokalite run --keys OPENAI API KEY,ANTHROPIC API KEY -- claude lokalite run --refs-only -- npx some-server resolve lokalite:// references only see Secret references Manage projects lokalite project add MyProject lokalite project list lokalite project use MyProject lokalite project link