Programs usually get input from flags or scripts. But there’s another way: a program can read its own filename. That means the entire configuration can live in the file name itself, making programs self-contained, portable, and instantly shareable.
Why not just flags or scripts?
Flags are ephemeral – you have to share the command line or wrap it in a script. Scripts depend on environment, which can break portability. Filenames solve both: the program describes itself, requires zero setup, and any configuration can be shared by simply renaming the file.
Example 1: Reusable installers
Imagine install_PY3_MODULE_NAME.exe. It reads the filename, extracts the Python module name, downloads dependencies, sets up Python if needed, and creates a launcher. Rename it, and you have a new installer for a different project. Icons, mirrors, or other metadata can also live in the file as resources – all self-contained, all shareable.
See my exploration: here
Example 2: AI experiment runners
ML experiments usually require scripts, configs, and data setup. Imagine a single executable:
train---resnet50---lr0.001---batch32---cifar10.exe
It parses its filename, downloads datasets, sets hyperparameters, installs dependencies, and runs automatically. Rename it for a new model, dataset, or parameters.
Share the file, reproduce instantly.
Example 3: Ephemeral utilities
Small ad-hoc tasks can also be encoded in filenames:
compress---photos---high.exe
backup---home---encrypt-aes256.exe
fetch---api.github.com---repos/owner/project---q=stars>100---o=json.exe
Each file does its job immediately. Rename to perform a new task. Share it. No setup, no instructions. Everything is self-contained in the name.
Example 4: P2P VPN tunnels
VPNs between friends are usually tricky to set up. Imagine:
lounge-room---friends-machine---t25565---minecraft.exe
First two parts: machine names, automatically registered with a server using ECDSA keys.
Third part: ports to open.
Optional: description.
Run the file to open one side of the tunnel. Rename for new endpoints or ports. Send to a friend, they open their side, tunnel is connected, game on. No config, no editing, zero friction.
Closing thoughts
This approach collapses configuration, portability, and reproducibility into a single artifact. It challenges conventional assumptions: using filenames as the interface. For installers, AI experiments, utilities, or even VPNs, renaming the file is all it takes to change behavior.