# Install age with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper, scoop, winget

Simple, modern, secure file encryption. Version 1.3.1 via Homebrew; verified 2026-07-26. Also installable with debian: sudo apt install age.

## Install

```sh
sudo av install brew:age
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install age
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install age
```

  Evidence: MacPorts ports tree: security/age/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add age
```

  Evidence: Alpine Linux edge package indexes: age from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install age
```

  Evidence: Debian stable package indexes: age from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install age
```

  Evidence: Fedora Rawhide package metadata: age from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#age
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ag/age/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S age
```

  Evidence: Arch Linux sync databases: age from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install age
```

  Evidence: openSUSE Tumbleweed package metadata: age from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install extras/age
```

  Evidence: Scoop official bucket manifest trees: bucket/age.json from https://api.github.com/repos/ScoopInstaller/Extras/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id FiloSottile.age -e
```

  Evidence: Windows Package Manager source index: FiloSottile.age from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:age
- **Package manager:** Homebrew
- **Version:** 1.3.1
- **Source summary:** Simple, modern, secure file encryption
- **Homepage:** <https://github.com/FiloSottile/age>
- **Repository:** <https://github.com/FiloSottile/age>
- **Last updated:** 2026-07-26T13:19:49+02:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- age (alias)
- age-inspect (alias)
- age-keygen (alias)
- age-plugin-batchpass (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 1.3.1
## Project history and usage

age is a modern file-encryption tool, file format, and Go library designed around small explicit keys, Unix-style composability, and a deliberately small option surface.

### Project history

age was designed by Ben Cartwright-Cox and Filippo Valsorda and the public repository was created in May 2019. The README describes it as a simple, modern, secure file encryption tool, format, and Go library with small explicit keys, post-quantum support, no config options, and Unix-style composability.

The first beta releases appeared in December 2019, including a beta named from the floor of 36C3. Release candidates followed in 2021, and age v1.0.0 was published in September 2021. The 1.1.0 release in December 2022 added plugin and YubiKey support, helping turn age from a single CLI into a format with a hardware and plugin ecosystem.

The project continued with v1.2.x in 2024 and v1.3.x in December 2025. The v1.3.0 release was explicitly described upstream as a post-quantum release, matching the README's current positioning of age as a format and tool with post-quantum support.

### Adoption history

age became widely packaged for a security CLI. The upstream README lists installation commands for Homebrew, MacPorts, winget, Alpine, Arch, Debian, Fedora, Gentoo, Guix, Nix, openSUSE, Ubuntu, Void, FreeBSD, OpenBSD, Chocolatey, and Scoop, and it asks new packagers for help. The supplied package metadata also records major Linux and Windows package-manager names.

The ecosystem around age includes plugins, alternate implementations, browser/TypeScript work, Passage, and an awesome-age list. That adoption pattern is important: age is not just a command named by package managers, but a small format other tools embed.

### How it is used

The canonical CLI flow is `age-keygen -o key.txt`, encryption with `age -r RECIPIENT`, and decryption with `age --decrypt -i key.txt`. The README documents recipient files, identity files, passphrase encryption, SSH public keys as recipients, and stdin/stdout friendly operation for shell pipelines.

age has intentionally no global config file documented by upstream. Instead, users pass identity and recipient files explicitly, which is part of its packaging appeal: the installed binary is portable, scriptable, and easy to compose with tar, password managers, backups, and deployment tooling.

### Why package nerds care

age is the package-manager-friendly successor-shaped tool many users wanted for file encryption: one small CLI, readable key files, no daemon, no keyring requirement, and simple static-ish binary distribution. Its packaging matrix and plugin convention make it a useful case study in how a security format gets from a GitHub repo to distro repositories and operator scripts.

For package nerds, the interesting bit is that age's minimalism is a distribution feature. The same project is a Go module, a command-line binary, a file format specification, and an ecosystem anchor for Rust, TypeScript, YubiKey, Secure Enclave, and password-manager integrations.

### Timeline

- 2019: GitHub repository created.
- 2019: First beta releases published.
- 2021: v1.0.0 released.
- 2022: v1.1.0 released with plugin and YubiKey support.
- 2024: v1.2.x releases published.
- 2025: v1.3.0 released with post-quantum support.

### Related projects

- rage is the alternative interoperable Rust implementation named by the age README.
- typage is the TypeScript implementation named by the age README.
- age-plugin-yubikey provides hardware PIV token support.
- age-plugin-se provides Apple Secure Enclave support.
- awesome-age collects plugins, implementations, tools, and integrations.

### Sources

- official GitHub releases API
- official GitHub repository metadata
- official age specification and man page
- source_facts.package-manager
- upstream README


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal

## Other Package-Manager Records

- Debian apt - age - 1.2.1-1+b5: normalized package name match | Debian stable package indexes: age from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | simple, modern and secure encryption tool | https://github.com/FiloSottile/age
- Debian apt - golang-filippo-age-dev - 1.2.1-1: normalized package name match | Debian stable package indexes: golang-filippo-age-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | simple, modern and secure encryption tool (Go library) | https://github.com/FiloSottile/age
- Nix - age: normalized package name match | nixpkgs package indexes: pkgs/by-name/ag/age/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - age - 1.1.1-1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: age from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | simple, modern and secure encryption tool | https://github.com/FiloSottile/age
- Ubuntu apt - golang-filippo-age-dev - 1.1.1-1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: golang-filippo-age-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | simple, modern and secure encryption tool (Go library) | https://github.com/FiloSottile/age
- apk - age - 1.3.1-r6: normalized package name match | Alpine Linux edge package indexes: age from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Simple, modern and secure encryption tool | https://github.com/FiloSottile/age
- apk - age-doc - 1.3.1-r6: normalized package name match | Alpine Linux edge package indexes: age-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Simple, modern and secure encryption tool (documentation) | https://github.com/FiloSottile/age
- dnf - age - 1.3.1-5.fc45: normalized package name match | Fedora Rawhide package metadata: age from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Simple, modern and secure encryption tool | https://github.com/FiloSottile/age
- pacman - age - 1.3.1-1: normalized package name match | Arch Linux sync databases: age from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | A simple, modern and secure file encryption tool | https://github.com/FiloSottile/age
- zypper - age - 1.3.0-1.7: normalized package name match | openSUSE Tumbleweed package metadata: age from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | A file encryption tool | https://github.com/FiloSottile/age
- MacPorts - age: normalized package name match | MacPorts ports tree: security/age/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - extras/age: normalized package name match | Scoop official bucket manifest trees: bucket/age.json from https://api.github.com/repos/ScoopInstaller/Extras/git/trees/master?recursive=1
- winget - FiloSottile.age: normalized package name match | Windows Package Manager source index: FiloSottile.age from https://cdn.winget.microsoft.com/cache/source.msix


## Combined YAML source

View the package source record on GitHub. [combined/age.yml](https://github.com/mxcl/pkgdb/blob/main/combined/age.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
