AGE-INSPECT(1)

πŸ“¦
version 1.3.2 Β· 2 versions
, in alpine 3.24, arch rolling, nixos 26.05, nixpkgs unstable

πŸ’… AGE-INSPECT(1) β€” inspect age(1) encrypted files πŸŽ€

okay so bestie, welcome to age-inspect, from the General Commands Manual section of the Unix world (that's section 1, iykyk) ✨


🌸 SYNOPSIS 🌸

age-inspect [--json] [INPUT]

🫢 DESCRIPTION 🫢

age-inspect reads an age(1) encrypted file from INPUT (or from standard input if you don't give it one, no pressure πŸ’…) and then β€” the whole point β€” displays metadata about it without decrypting. Like, it doesn't peek inside, it just reads the vibe check of the file πŸ”₯

What you get in that little report:

  • the recipient types πŸ‘‘
  • whether the file uses post-quantum encryption 🧚
  • a size breakdown of the file's components πŸ“

no decryption, no drama, just info. periodt πŸ’–


✨ OPTIONS ✨

  • --json β€” outputs machine-readable JSON instead of the human-readable text version. for when you want your scripts to eat πŸ“
  • --version β€” prints the version and then exits. short and sweet, iconic πŸŽ€

πŸ¦‹ JSON FORMAT πŸ¦‹

when you pass --json, what comes out is a JSON object with these fields:

  • version: the age format version (like "age-encryption.org/v1") ⭐
  • postquantum: whether the file uses post-quantum encryption β€” one of "yes", "no", or "unknown" πŸ’€
  • armor: a boolean, meaning yes/no is it ASCII-armored πŸ›‘οΈ
  • stanza_types: an array of recipient stanza type strings (like ["X25519"] or ["mlkem768x25519"]) 🌈
  • sizes: an object holding the size info, in bytes πŸ‘€
    • header: the size of the age header
    • armor: the armor encoding overhead β€” that's 0 if the file isn't armored
    • overhead: the stream encryption overhead
    • min_payload, max_payload: the payload size bounds (right now these always match each other)
    • min_padding, max_padding: the padding size bounds (right now these are always 0)

and here's the cute part: the fields add up to the total size of the file πŸ”₯ not me doing math on a manpage, but it checks out.


πŸŽ€ EXAMPLES πŸŽ€

inspect an encrypted file, no cap

$ age-inspect secrets.age
secrets.age is an age file, version "age-encryption.org/v1".

This file is encrypted to the following recipient types:
- "mlkem768x25519"

This file uses post-quantum encryption.

Size breakdown (assuming it decrypts successfully):

    Header                      1627 bytes
    Encryption overhead           32 bytes
    Payload                       42 bytes
                        -------------------
    Total                       1701 bytes

Tip: for machine-readable output, use --json.

yes bestie those paddings are literally zero, nothing to see there, moving on 🫢

get JSON output for scripting (main character energy)

$ age-inspect --json secrets.age
{
    "version": "age-encryption.org/v1",
    "postquantum": "yes",
    "armor": false,
    "stanza_types": [
        "mlkem768x25519"
    ],
    "sizes": {
        "header": 1627,
        "armor": 0,
        "overhead": 32,
        "min_payload": 42,
        "max_payload": 42,
        "min_padding": 0,
        "max_padding": 0
    }
}

slay, your script is gonna love this πŸ“


πŸ’œ SEE ALSO πŸ’œ

go read those too, they're the supportive besties of this page πŸ’–


πŸ‘‘ AUTHORS πŸ‘‘

Filippo Valsorda age@filippo.io β€” absolute legend, we stan 😭🫢


ngl this whole thing is metadata-only. it tells you about the file, it does not unlock the file. no cap, keep your keys safe πŸ”

✨ August 2026 ✨ β€” and that's the version/date sign-off from the AGE-INSPECT(1) page, bestie. take care of your .age files and stay iconic πŸ’…πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from