An app from Excelano

Slipcase Desktop

Metadata that travels with the file.

A Slipcase container is one file that holds a document of any type together with a metadata description of it. Open a container, read and edit the metadata traveling inside it, and hand the document to whatever your computer opens it with. For macOS, Windows, and Linux.

Also on Linux and from source, with the code on GitHub. Looking for the companion that opens a container straight through? That is Slipcase Open, below.

The Slipcase Desktop app icon: a cream index card sliding into an open-topped blue case.

The description travels with the document

Metadata about a file usually lives somewhere the file is not: in its name, in a sidecar document beside it, or in a database on somebody else's computer. Rename the file, move it, or send it on, and the metadata is truncated, separated, or left behind.

A Slipcase container puts the two in one file. A .slpc is a ZIP archive holding one payload — a document of any type — together with a TOML document describing it. Copy the container, email it, or move it to another machine, and the description goes with it. Slipcase Desktop is the desktop application that opens one, shows what is inside, lets you edit the description in place, and hands the payload to whatever your computer already uses for that kind of file.

What you can do

Open

Hand the payload to whatever application your computer has registered for that kind of file. Slipcase Desktop shows no preview of its own — the file goes to the tool built to render it.

Extract and replace

Write the payload out to a location you choose, or swap it for a different file. A container holds one payload; Slipcase Desktop keeps it that way.

Edit the metadata in place

The description is a tree, and every value is editable where it sits — strings, dates, numbers, booleans, arrays, and nested tables.

Save without disturbance

Writing edited metadata back keeps your comments, your key order, your untouched whitespace, and anything in the container Slipcase Desktop does not recognize. A container you did not change is not rewritten at all.

A verdict you can read

Slipcase Desktop reports whether a container conforms to the specification, in the specification's own words — including the two answers that are neither pass nor fail: unreadable metadata is undetermined, and a newer format version is out of scope.

Checked before it lands

A rewrite is read back and validated before it replaces anything, so a save that would produce a container the format does not accept changes nothing on disk.

Provenance carried, not stripped

If a container arrived from elsewhere, Slipcase Desktop says so and passes that marking to the payload you extract, so your system treats it with the caution it gives anything from outside.

It tells you, it does not guess

Where your computer will not say what opens a payload, Slipcase Desktop says nothing rather than guessing. It ships no table matching filenames to types and never inspects a payload to invent one.

It reports. It does not decide for you.

A container is something someone may have sent you, so the questions that matter are where it came from and what is really inside it — and those are the ones Slipcase Desktop answers rather than overrides. It shows the container's verdict against the format, names the payload and what your system would open it with, and writes out the characters that reorder text so a file cannot present itself as one kind and be another.

What it will not do is substitute its own judgment for your operating system's about what is safe to open. There is no list mapping names to types, no inspection of a payload's bytes to guess at one, and no gate dressed up as a feature. What you get is information — where the file came from, what it was, whether the container is well formed — and the decision stays yours.

No network. No account. Nothing to send.

Slipcase Desktop makes no network connection of any kind. There is no server behind it, no account to create, no analytics, no telemetry, no crash reporting, and no third-party SDK. It reads the file you open and writes where you tell it to. The one thing it remembers between sessions is the folder your last container came from, so the file dialog opens somewhere useful — a folder name, never a filename, never the contents of anything. On the App Store its privacy declaration is “Data Not Collected,” because the developer collects nothing and has nowhere to put it.

The full statement is at excelano.com/legal/#slipcase, and because Slipcase Desktop is open source, every line of it is verifiable in the source at github.com/excelano/slipcase-desktop.

How to get it

macOS and Windows

Slipcase Desktop is on the Mac App Store and the Microsoft Store. Install it from either the way you install any other app — updates arrive through the store.

Debian and Ubuntu

Slipcase Desktop is packaged for the Excelano apt repository. Add the repository once, then install — updates arrive with apt upgrade like any other package:

curl -fsSL https://excelano.com/apt/setup.sh | sudo sh
sudo apt install slipcase-desktop

Once installed, Slipcase Desktop registers as a handler for .slpc files, so you can open a container straight from your file manager.

From source

Slipcase Desktop is written in Rust and builds with a Rust toolchain alone — nothing in its dependency tree compiles C. The README covers building and the per-platform desktop integration.

Something to open with it

If you have no .slpc file of your own yet, take this one: quarterly-report.pdf.slpc (1 KB). It holds a one-page PDF together with a metadata document that exercises every kind of value the tree can show, and it is the container in the screenshots above. Nothing in it is real: the division, the reference number and the dates are invented.

Slipcase Open: the companion that opens straight through

Slipcase Desktop shows you a container. Its companion, Slipcase Open, stays out of the way of one: double-click a .slpc and the payload opens in whatever application your computer already uses for that kind of file, with no window of its own in between. Edit the document there, save, and the edit is written back into the container. The metadata travels on untouched, and anything else in the container the tool does not recognize is preserved.

Opening a container starts a session. The payload is copied into your own state directory, that directory is watched, and every save the watcher sees is repacked into a fresh container and swapped over the original in one step, so an interruption cannot leave a half-written container behind. Sessions are explicit: they are listed, they are closed by hand, and one that outlives a crash is offered back on the next launch rather than written back unseen, because the tool was not watching when the process died and cannot tell a finished save from a partial one. A container that arrived from elsewhere keeps its mark: the tool carries it onto the payload and back onto the container, as Slipcase Desktop does.

The two claim the same file association deliberately. Whichever was installed last opens on double-click, and the other stays one click away in the Open With menu, so a machine can have both and choose per file.

Getting Slipcase Open

Windows. Slipcase Open is on the Microsoft Store. Install it the way you install any other app — updates arrive through the store.

macOS. It installs through Homebrew rather than the Mac App Store, because the sandbox that store requires would cost the tool the write-back path it exists for:

brew install --cask excelano/tap/slipcase-open

Debian and Ubuntu. It is in the same apt repository as Slipcase Desktop, and it depends on slipcase-common, which declares the media type and ships the icon a container is drawn with. Apt pulls that in:

curl -fsSL https://excelano.com/apt/setup.sh | sudo sh
sudo apt install slipcase-open

Like Slipcase Desktop, it makes no network connection, has no account, and collects nothing. It does write more to your own disk than its sibling, by design, and its privacy statement at excelano.com/legal/#slipcase-open lists all of it. The source is at github.com/excelano/slipcase-open, and the statement is written to be checked against it.

Behind the tool

Slipcase Desktop is the desktop face of an open format. The container is a plain ZIP with a TOML document inside, specified in the open at slipcaseformat.org, and every container Slipcase Desktop reads or writes goes through slpc, the reference library, rather than through any parsing of its own. Nothing about a .slpc is locked to this application: it is a file you can open with the command-line tool, unzip by hand, or read with anything that reads a ZIP.

That command-line tool is slipcase, packaged apart from this app and worth having where a container has to be built or read with no desktop in the picture — a script, a build step, a server. It installs from the same apt repository with sudo apt install slipcase, from Homebrew with brew install excelano/tap/slipcase, or with cargo install slipcase; the source and the remaining install routes are at github.com/excelano/slpc-rust.

I built it because attaching a description to a file without changing the file, and without scattering that description across filenames and sidecar documents, is a problem that keeps coming up in the data and migration work I do. If that is a snag your team keeps hitting, it is the kind of work I am glad to take on.

Get in touch

For technical users

Slipcase Desktop is free and MIT-licensed, written in Rust. The desktop application is at github.com/excelano/slipcase-desktop, with its security policy in SECURITY.md. The container format is specified at slipcaseformat.org, whose specification and design document are generated from github.com/excelano/slipcase, and the same containers are yours to pack, unpack, and validate on the command line with the slpc tool from that project.

Support

For questions, bug reports, or feedback about either tool, email support@excelano.com. Replies typically arrive within one business day.

Issues and feature requests can also be filed directly in the GitHub repository: github.com/excelano/slipcase-desktop/issues for Slipcase Desktop, and github.com/excelano/slipcase-open/issues for Slipcase Open.