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