Introduction

Available for Mac, Windows & WSL
Biometric authentication on all platforms. Windows Hello, Touch ID, or PIN.

LLM Secrets protects your .env files from AI coding assistants like Claude Code. Your secrets are encrypted with Windows Hello and only decrypted at runtime in isolated subprocesses.

Key Principle

Claude Code can use your secrets without ever seeing them. Commands run with injected environment variables, but the actual values never appear in Claude's context.

Installation

🍎 macOS  |  🖥️ Windows  |  🐧 WSL

Prerequisites

macOS:

Windows:

WSL/Linux:

Download

Download LLM Secrets from the downloads page:

Quick Start

1. Download & Install

Download LLM Secrets for your platform from the downloads page and run the installer.

2. Encrypt Your Existing .env File

Navigate to your project and run setup:

cd your-project
scrt setup

Or specify the path to your .env:

scrt setup C:\path\to\your\.env
What happens during setup

Windows Hello authentication → Your original .env is backed up → .env.encrypted is created. Your original .env is never deleted.

3. View Your Secrets

# View all secrets (authenticates automatically)
scrt view

# View a specific secret
scrt view STRIPE_SECRET_KEY

4. Run Commands with Secrets

scrt run -- npm run deploy

Encrypting & Managing Secrets

Encrypt Existing Secrets (First Time)

# In your project directory with a .env file:
scrt setup

# Or specify path:
scrt setup /path/to/.env

This creates:

File Description
.env Your original (unchanged)
.env.backup Backup copy
.env.encrypted Encrypted version (commit this to git)

View Secrets

# Authenticates with Windows Hello and shows all secrets
scrt view

# Show only a specific secret
scrt view API_KEY

Add or Edit Secrets

# Step 1: Decrypt to .env for editing
scrt decrypt

# Step 2: Edit .env in your text editor (opens automatically)

# Step 3: Re-encrypt when done
scrt encrypt --force
Important

After decrypting, your .env file contains plaintext secrets. Always run scrt encrypt --force when you're done editing.

Add to .gitignore

.env
.env.backup

Only commit .env.encrypted to your repository.

How It Works

The injection mechanism is simple:

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  Your Command   │ --> │  Scrt injects   │ --> │  Command runs   │
│  (no secrets)   │     │  $env:VARS      │     │  with secrets   │
└─────────────────┘     └─────────────────┘     └─────────────────┘
  1. Encryption at rest - Your .env is encrypted with AES-256-CBC
  2. Windows Hello unlock - Master key protected by DPAPI + Windows Hello
  3. Runtime injection - Secrets decrypted only in subprocess environment
  4. Isolation - Values never return to parent process or Claude's context

Security Model

Claude CAN See Claude CANNOT See
Secret names (e.g., PRIVATE_KEY) Secret values (e.g., 0x7f3a...)
Command structure Decrypted environment variables
Transaction hashes Private keys or tokens
Success/failure messages Passwords or API secrets

Simple vs Advanced Mode

Feature Simple Mode Advanced Mode
Authentication Windows Hello only Windows Hello + KeePass password
Master key storage DPAPI encrypted KeePass database
Best for Daily use, personal machines High-security, shared machines

Using with Claude Code

Claude Code automatically has access to use your secrets via the $env:SECRET_NAME syntax.

Example: Deploy a Smart Contract

# Claude writes this command:
forge script script/Deploy.s.sol \
  --rpc-url $env:ALCHEMY_RPC_URL \
  --private-key $env:PRIVATE_KEY \
  --broadcast

# Scrt injects the actual values at runtime
# Claude never sees your private key

Example: Push to GitHub

git push https://$env:GITHUB_PAT@github.com/user/repo.git

Example: Deploy to Vercel

vercel --token $env:VERCEL_TOKEN --prod
Important

Claude should never run scrt decrypt or scrt view. These commands expose secret values. If you need to edit secrets, run these commands yourself.

Commands Reference

Command Description
scrt setup [path] First-time setup: encrypt existing .env file
scrt view [name] Auth + view secrets (all or specific)
scrt auth Start Windows Hello session
scrt decrypt Decrypt .env.encrypted to .env for editing
scrt encrypt --force Encrypt .env to .env.encrypted
scrt list List secret names (not values)
scrt run -- <cmd> Run command with secrets injected
scrt status Show session status
scrt help Show all commands

Environment Variables

Add secrets to your .env file using standard format:

PRIVATE_KEY=0x...
ALCHEMY_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/...
GITHUB_PAT=ghp_...
VERCEL_TOKEN=...
GODADDY_API_KEY=...
GODADDY_API_SECRET=...

Reference them in commands as $env:SECRET_NAME.

Backup & Restore

LLM Secrets supports encrypted cloud backups:

Licensing

LLM Secrets is free for Windows and WSL. macOS requires a one-time $10 license.

Platform Price Features
Windows Free Full GUI, Windows Hello, backup tools
WSL/Linux Free Native bash, Windows Hello bridge
macOS $10 one-time Touch ID, Secure Enclave, native app

Why Free for Windows?

We believe security tools should be accessible. Windows and WSL users get full functionality at no cost. The macOS license helps support cross-platform development.

Source Available

The source code is available for security auditing:

Verify Our Code

All source code is available on GitHub. Security researchers can verify there are no backdoors in the encryption.

Security FAQ

The following answers are from DeepWiki, an independent third-party AI analysis of this codebase. Use their chatbot to ask your own security questions.

Can LLM Secrets, the developers, or Claude ever see my decrypted secrets?

No. Here's why:

Even if the developers wanted to see your secrets (which they can't), the architecture makes it impossible since all operations are local and keys never leave your machine.

What happens if I lose my Windows account or master key?

You can recover IF you set up backups beforehand.

Recovery options:

  1. Master Key Backup - During setup, a 44-character key is shown once. Save it in your password manager.
  2. Recovery Password - Set a recovery password that encrypts your master key for cloud backup.
  3. Disaster Recovery Scripts - Decrypt-MasterKeyBackup.ps1 and Decrypt-EnvFile.ps1 work without the app installed.
Without backups

Your secrets are irrecoverable by design. There is no backdoor. Save your master key!

Troubleshooting

"Windows Hello authentication required"

A Windows Hello prompt will appear when accessing secrets. This is expected behavior.

".env.encrypted not found"

Run setup in your project first:

scrt setup

"Secret not found"

Check available secrets:

scrt list

Then add the missing secret by decrypting, editing, and re-encrypting:

scrt decrypt
# Edit .env file
scrt encrypt --force

Need to update a secret?

# Decrypt, edit, re-encrypt
scrt decrypt
# Edit .env in your editor
scrt encrypt --force
Free

Native WSL/Linux Support

LLM Secrets runs natively in Windows Subsystem for Linux. Same protection, native bash.

Windows Hello
Ubuntu / Debian
Bash Native

Install

One command to get started. Run this inside your WSL2 terminal:

Ubuntu (WSL2)
$ curl -sL https://downloads.llmsecrets.com/scrt-wsl-0.3.1.tar.gz | tar xz $ ./install/install.sh ============================== Scrt Linux - Dependencies ============================== [+] GnuPG: installed [+] pass (password-store): installed [+] jq (JSON processor): installed [+] OpenSSL (AES encryption): installed [+] keyctl (kernel keyring): installed [+] Zenity (GTK dialogs via WSLg): installed [+] gpg-agent: installed [+] PowerShell interop: available (Windows Hello bridge) [+] All dependencies satisfied!

The installer checks and installs everything you need. If packages are missing, it offers to install them automatically.

Setup

The setup wizard walks you through everything interactively:

Ubuntu (WSL2)
$ scrt setup ====================================== Scrt Linux - Setup ====================================== This will set up encrypted secret management with Windows Hello authentication (via WSL2). What we'll do: 1. Check dependencies 2. Verify Windows Hello 3. Generate encryption key 4. Save backup key 5. Add your first secrets 6. Install Claude Code commands
1

Dependencies verified

Checks that GPG, pass, openssl, keyctl, and PowerShell interop are available.

2

Windows Hello confirmation

Your existing Windows Hello enrollment (face, fingerprint, or PIN) is used directly from WSL2.

3

Encryption key generated

A master key is created and stored securely. You'll set a passphrase.

4

Backup key saved

A recovery key is exported. Save it somewhere safe — it's your only recovery option.

5

Secrets added

Paste your secrets in KEY=value format. They're encrypted immediately.

6

Claude Code integrated

CLAUDE.md is generated and slash commands are installed automatically.

Recommended First Step

Add Your Secrets

After setup completes, the first thing you should do is add your secrets. This populates your encrypted vault and generates the CLAUDE.md file that tells Claude Code what secrets are available.

# Add secrets inline (fast)
$ scrt add API_KEY=sk-your-key-here PRIVATE_KEY=0x123...

# Or open the GUI editor to paste multiple secrets at once
$ scrt add

Usage

Once your secrets are added, inject them into any command:

Ubuntu (WSL2)
# Deploy a contract with your private key $ scrt run forge script Deploy.s.sol --private-key $PRIVATE_KEY --broadcast [+] Injecting 12 secrets into subprocess... # Push to GitHub with your PAT $ scrt run git push https://$GITHUB_PAT@github.com/user/repo.git [+] Injecting 12 secrets into subprocess... # Only inject specific secrets $ scrt run --only PRIVATE_KEY,ALCHEMY_RPC_URL forge script Deploy.s.sol [+] Injecting 2 selected secrets... # See what would be injected (no execution) $ scrt run --dry-run forge test Secrets that would be injected: PRIVATE_KEY=-------- ALCHEMY_RPC_URL=-------- ETHERSCAN_API_KEY=--------

Claude Code writes commands using $SECRET_NAME syntax. The actual values are injected at runtime and never appear in the terminal output or Claude's context.

Commands

scrt setup First-time setup wizard
scrt run <cmd> Run with secrets injected
scrt view View secrets (GUI window)
scrt add KEY=val Add new secrets
scrt edit Edit secrets interactively
scrt list List secret names
scrt hide Verify security status
scrt learn Regenerate CLAUDE.md
scrt backup Export / import
scrt status Show session info
scrt logout Lock secrets
scrt version Show version
Requirements

Windows 10/11 with WSL2 (Ubuntu or Debian). Windows Hello must be configured. WSLg recommended for GUI features.