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, ask your AI: “Bootstrap Hush for this project and show me the v3 config”

Why Hush?

Hush is an orchestration layer for the human + AI secrets workflow.

Current v3 authority

Hush stores repository authority in .hush/manifest.encrypted and .hush/files/**.encrypted. There is no hush.yaml runtime authority in the current model.

AI safety

hush set, hush inspect, and hush has let AI assistants help manage secrets without seeing plaintext values.

Encrypted at rest

hush run -- <command> decrypts only for the active process or materialized target, then cleans up.

Migration bridge

If a repository still uses legacy v2 files, migrate once with hush migrate --from v2 and optionally --cleanup after validation.

Quick example

Terminal window
# Bootstrap the current v3 repository shell
npx @chriscode/hush bootstrap
# Inspect manifest, files, identities, and targets
npx @chriscode/hush config show
npx @chriscode/hush config active-identity
# Add a secret safely
npx @chriscode/hush set DATABASE_URL
# Run with secrets in memory
npx @chriscode/hush run -- npm start
# Push a wrangler target
npx @chriscode/hush push

Current repository model

.hush/
manifest.encrypted
files/
env/project/shared.encrypted
.sops.yaml
  • .hush/manifest.encrypted defines identities, bundles, targets, and imports
  • .hush/files/**.encrypted stores the actual secret entries plus readers
  • hush bootstrap creates the shell
  • hush config inspects and updates repository state
  • hush migrate --from v2 [--cleanup] is the only legacy bridge

The problem

AI coding assistants are helpful, but plaintext secret files are easy to expose accidentally. Legacy .env workflows depend on telling AI what not to read. That is not a strong boundary.

The solution

Hush keeps the canonical repository state encrypted under .hush/ and gives AI-safe commands for the normal workflow:

  • hush inspect
  • hush has <KEY>
  • hush set <KEY>
  • hush run -- <command>

That keeps the current repo model simple: encrypted documents at rest, secrets only decrypted for the active runtime path.