Mage

Mage

Android GUI for age file encryption, built on kage.

Nick Haghiri File Encryption & Vault

Screenshots

Screenshot of Mage Screenshot of Mage Screenshot of Mage Screenshot of Mage Screenshot of Mage Screenshot of Mage

Description

Mage is an Android GUI for age file encryption, built on kage (a Kotlin/JVM implementation of the age protocol). "Mage" is short for Mobile age. Mage is not officially affiliated with or endorsed by the age project.

Encrypt or decrypt files to age recipients or passphrases, including armor, multi-recipient, and encrypt-to-self. SSH keys (ssh-ed25519, ssh-rsa) work as recipients and identities alongside native age keys, and can be mixed on one file.

Identities are sealed in the Android Keystore (AES-256-GCM, StrongBox where available) behind biometric or device-credential authentication. Recipients get a small address book with QR encode/scan for sharing a public key.

Batch mode encrypts or decrypts more than one file at a time into a folder. Your identity vault can be exported and re-imported as an encrypted backup, so it isn't stuck on one device.

Mage hooks into the system where it makes sense: share-sheet targets, a .age file-manager association, launcher shortcuts, and a Quick Settings tile.

Mage does not implement its own cryptography — that is kage's job. It is not a general-purpose file manager or password manager, and it does not support the age-plugin mechanism, which relies on binaries on $PATH and does not work on Android.

Mage requests no network permission and makes no network connections.

What’s new (0.1.5)

Fixes decrypting large files: a stale check used to block anything
over ~128 MB even though decryption itself has been streaming for a
while. The passphrase strength slider also caps lower now and shows
its actual memory cost instead of just warning it'll be slower.

Versions

Version Date Size Requires Android Download
0.1.5 current
d9ac308e2fb20530…
2026-08-31 4.0 MB API 26
0.1.4
8be89a3e5a1419dd…
2026-08-27 4.0 MB API 26
0.1.3
1ac782298cc8b541…
2026-08-03 3.9 MB API 26

Permissions

What the app asks the system for. Android only grants sensitive access after you confirm it.

  • CameraTake photos and videos.
  • BiometricsUnlock with fingerprint or face.
  • FingerprintUnlock with a fingerprint.
  • age.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

Comments