Get Started

Lock any file with one command, so only you (or the person you choose) can open it

Send a message over WhatsApp or email that only one person can read. Lock your passport scans before they go anywhere near the cloud. age turns any file into scrambled bytes that only your passphrase or your key can open. Free, tiny, no account, and it runs on Windows, Mac and Linux.

25 minBeginnerTools: FreeStep 1 free
Tested 9 Oct 2026 · age 1.3.2 (official zip) in Windows PowerShell 5.1, rage 0.12.1, Windows 11
age on your PC in one command, with no admin rights
A file locked with a passphrase, and one locked with your own key pair
A secret message only one friend can open, as text you can paste into WhatsApp, email or any chat
  • A whole folder locked in one go: 500MB takes about 2 seconds
  • What the errors look like for a wrong key, a wrong passphrase and a damaged file
Before you start
  • Level 0 done (you can open a terminal and cd into a folder)
  • About 33MB of disk space
  • A file to practise on. A copy of a photo is fine, or make a pretend one in step 2
01/06Get age0 done
STEP 01 of 06~4 min

Get age

age is a handful of small programs. Nothing running in the background, no account, no admin rights.

  1. Install it with your system's package manager. These are the commands from the age README ↗:

    Windows
    winget install --id FiloSottile.age -e
    Mac (Homebrew)
    brew install age
    Linux (Debian 12+, Ubuntu 22.04+)
    sudo apt install age
  2. Close the terminal, open a new one, and check it works:

    Terminal
    age --version
    Output
    v1.3.2
  3. You get three programs you'll use: age (locks and opens files), age-keygen (makes keys) and age-inspect (describes a locked file).

  4. No winget, or want a portable copy?These lines fetch the newest Windows zip from the official releases page ↗ and unpack it into an age folder in your user folder:

    Windows (portable zip)
    cd $HOME
    $v = (Invoke-RestMethod https://api.github.com/repos/FiloSottile/age/releases/latest).tag_name
    Invoke-WebRequest -UseBasicParsing "https://github.com/FiloSottile/age/releases/download/$v/age-$v-windows-amd64.zip" -OutFile age.zip
    Expand-Archive age.zip -DestinationPath $HOME
    $env:Path += ";$HOME\age"
    TipWith the zip, the $env:Path line only lasts until you close the window, so paste it again in each new PowerShell. winget's age package installs this same official zip and keeps it on your PATH for you.
    TipNever opening a terminal? The free archiver 7-Zip ↗ can password-lock files with AES-256 from the right-click menu: 7-Zip, Add to archive, type a password under Encryption, and tick Encrypt file names. It's passphrase-only, so it can't do the lock-for-one-friend trick in steps 4 and 5, but it's a solid lock for your own files.
✓
Checkpointage --version prints v1.3.2 or newer.
If it breaks'age' is not recognised (or 'command not found')
'age' is not recognised (or 'command not found')
Close the terminal and open a new one: new windows pick up newly installed programs. With the portable zip, run $env:Path += ";$HOME\age" again, and check age.exe is there with dir $HOME\age.
Still stuck? Ask the community
Next mission · Go darkHarden Firefox until websites think you're in Iceland, without touching your normal browser
→