Skip to content
Bioluminescent jellyfish representing AI-native secrets management

The AI-native secrets manager

Secrets stay encrypted at rest. AI helps—without ever seeing values. Works with every framework.

Install in Seconds

Install the Claude Code / OpenCode skill, then let AI handle the rest:

Terminal window
npx @chriscode/hush skill

Once installed, just ask your AI: “Set up Hush for this project”

Why Hush?

Is Hush just a wrapper around SOPS and dotenv?

Yes, and that’s the point.

Hush is an orchestration layer that solves the “Human + AI” workflow problem that raw tools ignore:

Orchestration

sops exec handles one file. Hush merges multiple sources (shared + env + local), interpolates variables (${API_URL}), and routes them to specific monorepo targets.

AI Safety

Standard tools assume a human operator. Hush assumes an AI assistant. hush set and hush inspect allow AI agents to manage secrets without ever seeing the plaintext values.

Cross-Platform

Works on macOS, Linux, and Windows. Handles shell differences and provides native GUI prompts for secret entry when running in non-interactive modes (like AI agent sessions).

Encrypted at Rest

Secrets stay encrypted on disk. hush run decrypts to memory only. No plaintext .env files for AI to accidentally read.

Quick Example

Terminal window
# Initialize configuration
npx hush init
# Encrypt your .env files
npx hush encrypt
# Run with secrets (decrypts to memory only!)
npx hush run -- npm start
# Run with production secrets
npx hush run -e production -- npm build
# Add a secret interactively (AI-safe)
npx hush set DATABASE_URL
# Push to Cloudflare Workers
npx hush push

The Problem

AI coding assistants are incredibly helpful, but they can accidentally expose your secrets:

  • Even with instructions to “not read .env files”, LLMs find creative ways using cat, grep, or shell tricks
  • Traditional secrets management leaves plaintext files on disk—easy targets for accidental exposure
  • In monorepos, different packages need different subsets of environment variables

The Solution

Hush keeps secrets encrypted at rest—there are no plaintext .env files to read:

  • hush run -- <command> decrypts secrets to memory and runs your command
  • hush set <KEY> lets AI help add secrets without seeing the values
  • Monorepo-aware routing sends NEXT_PUBLIC_* to frontend, server secrets to API
hush.yaml
sources:
shared: .env
development: .env.development
production: .env.production
targets:
- name: app
path: ./app
format: dotenv
include:
- EXPO_PUBLIC_*
- name: api
path: ./api
format: wrangler
exclude:
- EXPO_PUBLIC_*

One command. All packages. Correct secrets.