~/projects/filekind

filekind

★ 3

Make a custom file extension a real, recognised file type — on Windows, Linux and macOS — from one declarative spec. Generates the registry tree, freedesktop MIME XML, macOS UTI plist, icons in three formats, and the install/remove scripts. Rust core, Tauri app + CLI.

Rust

## What it is

filekind turns one declarative spec file into a real, recognised file type on Windows, Linux, and macOS. You describe the format once; it generates every artifact the three operating systems need to treat your extension as a first-class type — icons, MIME registration, and the scripts that install and remove it all.

## Why I built it

Registering a custom file type today means hand-writing four unrelated artifacts in four dialects: a Windows .reg tree, a freedesktop shared-mime-info XML plus a .desktop entry, a macOS Info.plist UTI block, and a libmagic pattern. Each is separately and poorly documented, and getting any one subtly wrong means your icon silently doesn't show up. I wanted to write the format down once.

## What it generates

From a single .filekind TOML spec — name, extension, magic bytes, MIME type, icon, handler — filekind build emits the whole set:

Nothing is installed for you — it writes the files and points you at the generated README, so the system-changing step stays in your hands. Rust core, with a Tauri desktop app and a CLI.

← back to all projects