a0

Same files.
More disk.

a0 compresses the stuff you haven't opened in a week and unpacks it the second you do. Nothing moves, nothing gets renamed, no new folder to remember. Your files just take less space.

curl -fsSL https://a0.0a0.dev/install.sh | sh

Linux on x86_64 or 64-bit ARM. Arch, Debian, Ubuntu, Mint, Fedora, openSUSE, Alpine. Installs nothing else and compresses nothing until you tell it which folders.

One laptop, two days in

282 GBdisk space back
61%smaller on average
162,386files compressed
130 GBof duplicates, stored once
Untouched files, 463.5 GBnow 181.8 GB

A 1 TB laptop with a 710 GB home folder: games, an Unreal project, Java builds, old backups. Everything except keys and container images. 130 GB of it turned out to be duplicate data, which is stored once.

Where it came from

By file type

Already-compressed formats get one test run and are kept only if they shrink by 10% or more. Plenty of zips are stored without compression, and PNGs repeat across projects.

Speed

Compressing, in the background16 of 32 threads, lowest CPU and disk priority190 MB/s
Opening a compressed 440 MB filethe program waits this long once, then it's a normal file again0.6 s
Opening a compressed 2 GB file, cold cachethe same file uncompressed reads in 1.1 s2.3 s
Pausing ita0 pause stops a running scanunder 1 s
Protected again after a restart162,386 compressed files re-armed0.24 s
Daemon memory when idle~10 MB

Tested on

InstallerDebian 12, Ubuntu 20.04 and 24.04, Fedora 41, Arch, Alpine, openSUSE Tumbleweed7 / 7
Filesystemsext4, btrfs, xfs, and inside the hardened systemd sandbox4 × 61 checks
Crash, power cut, file opened mid-compressionreaders racing the compressor for 20 s never saw wrong data0 wrong reads

How it works

  1. Every few hours a0 looks for files nobody touched in 7 days. Over a megabyte, not already compressed, not in your config or keys.
  2. It packs them into one shared store and leaves the file where it was. Same name, same size, same date. It just doesn't take up blocks anymore.
  3. When any program opens one, Linux pauses that program while a0 unpacks it. Usually under a second. Then the program carries on and never knows.
render.pak  2.0 GB   on disk 2.0 GB
      │  untouched for 7 days
      ▼
render.pak  2.0 GB   on disk 0 B      store +716 MB
      │  something opens it
      ▼
render.pak  2.0 GB   on disk 2.0 GB   ~1.4 s later

Before you install

After installing

a0 estimate ~
How much you'd get back. Reads only, changes nothing.
sudoedit /etc/a0/config.toml
Pick folders. Or install with --home to start with your home folder.
sudo a0 scan --dry-run
The exact list it would compress.
a0 status
How much it saved.
a0 pause 2h
Leave the CPU alone for a while. a0 resume picks up where it stopped.
a0 speed 4
How many threads it may use. Default: one per core.
sudo a0 thaw-all
Everything back to normal.

Home folder straight away:

curl -fsSL https://a0.0a0.dev/install.sh | sh -s -- --home

Remove it (unpacks everything first):

curl -fsSL https://a0.0a0.dev/install.sh | sh -s -- --uninstall