TL;DR — Quick Summary

rage is a Rust implementation of age encryption. Simple, modern file encryption with no config — encrypt files with passphrases or public keys. No GPG complexity.

rage is encryption without the pain. No GPG keyrings, no config — just encrypt and decrypt.

Installation

# macOS
brew install rage

# Arch Linux
sudo pacman -S rage

# Cargo
cargo install rage

Usage

# Generate a key pair
rage-keygen -o key.txt
# Output: public key age1ql3z7hjy...

# Encrypt with public key
rage -r age1ql3z7hjy... secret.txt -o secret.txt.age

# Decrypt with private key
rage -d -i key.txt secret.txt.age > secret.txt

# Encrypt with passphrase
rage -p secret.txt -o secret.txt.age

# Decrypt with passphrase
rage -d secret.txt.age > secret.txt

# Encrypt with SSH public key
rage -R ~/.ssh/id_ed25519.pub file.txt -o file.txt.age

# Decrypt with SSH key
rage -d -i ~/.ssh/id_ed25519 file.txt.age > file.txt

# Multiple recipients
rage -r age1abc... -r age1def... file.txt -o file.txt.age

# Pipe support
echo "secret" | rage -r age1abc... > encrypted.age
cat encrypted.age | rage -d -i key.txt

# Encrypt a directory (with tar)
tar czf - mydir/ | rage -r age1abc... > mydir.tar.gz.age

Summary

  • rage encrypts files with the age format — simple, modern, GPG-free
  • Public key, passphrase, and SSH key encryption
  • Multiple recipients, pipe support, streaming
  • Compatible with the Go age tool
  • Written in Rust — memory-safe, auditable, cross-platform