Configuration layout
Where Isolade keeps config, secrets, and local state on disk.
Isolade follows the XDG base-directory layout. Configuration is meant to be tracked in git, but secret values and local state are not.
What lives where
| Path | Purpose | In git? |
|---|---|---|
~/.config/isolade/profiles/<name>/ | One directory per profile, holding its whole definition and identity (build, git, network, appearance) | yes |
~/.local/share/isolade/isolade.db | Build state, instances, agents, chats | local data |
~/.local/share/isolade/registry/ | In-process OCI registry: index plus content-addressed blobs | local data |
~/.local/share/isolade/profiles/<id>/auth/ | Per-profile Claude/Codex credentials from the in-app login, mode 0600 | never |
~/.local/share/isolade/profiles/<id>/secrets.json | Per-profile secret values, mode 0600 | never |
Tracking config in git
To keep your configuration in a personal dotfiles repo, run git init inside ~/.config/isolade/. Secret values are entered in the UI and never written to the config directory, so they never reach the repo.
How profiles are registered
You create, rename, clone, and delete profiles in the app, under Settings → Profiles. Each one is a subdirectory here, and the directory name is its id.
On startup, Isolade also reconciles ~/.config/isolade/profiles/, so a profile directory you copy in — for example from a dotfiles repo — is picked up automatically:
- A new directory is registered as a profile, ready to build from Settings → Build. Nothing is built for you: a copied-in profile has no image on this machine until you build one.
- A removed directory has its pushed image deleted from the registry.
This keeps the set of profiles reproducible from the files in git.
For the full profile definition, see Profiles.