Skip to content

themakers/cage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

!!! ACHTUNG !!!
GPT-wibecoded concept
Hands off production! (…for now)

cage β€” Minimal SSH-based secrets manager

cage is a lightweight, transparent secret manager that encrypts files using your existing SSH Ed25519 keys and the modern age encryption scheme.


πŸ’‘ Philosophy: simple, auditable, and secure by default β€” just secrets under your SSH control.

Features

  • πŸ” Strong crypto β€” X25519 + ChaCha20-Poly1305 via age
  • πŸͺΆ Uses your SSH keys β€” no new key infrastructure or GPG mess
  • 🧩 Declarative config β€” .cage.yaml defines environments and recipients
  • ⚑ One blob per file β€” no ciphertext duplication across recipients
  • 🧱 Git-friendly β€” deterministic YAML output, safe to commit
  • 🧰 Simple CLI
    • cage encrypt β€” encrypt listed files
    • cage decrypt β€” decrypt all .cage files for your SSH key
    • cage dump <env> β€” stream decrypted environment files to stdout
  • πŸ§‘β€πŸ’» CI/CD ready β€” ideal for self-hosted, GitOps, and minimal workflows

Example

# Encrypt secrets for all environments
cage encrypt

# Decrypt locally with your SSH key
cage decrypt

# Export merged plaintext for CI
cage dump dev-local > .env

.cage.yaml:

recipients:
  john:
    - ssh-ed25519 AAAAC3Nza... easy@peasy
    - ssh-ed25519 AAAAC3Nza... bob@alice
  june:
    - ssh-ed25519 AAAAC3Nza... hello@kitty

envs:
  prod:
    files:
      - s3.prod.env
      - telegram-bot.env
    recipients:
      - john
  dev-local:
    files:
      - s3.mino.env
    recipients:
      - john
      - june

Encrypted *.cage file

cipher:
  payload: <base64 of age ciphertext>
  recipients:
    - ssh-ed25519 AAAAC3Nza... hello@kitty
    - ssh-ed25519 AAAAC3Nza... bob@alice
    - ssh-ed25519 AAAAC3Nza... easy@peasy

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages