-
Notifications
You must be signed in to change notification settings - Fork 0
Persistence
Where Soffit writes things on disk, and what survives a relaunch.
~/Library/Application Support/Soffit/layout.json
The whole pane tree. Tabs, active IDs, split orientations and ratios, plus per-panel state blobs. Written debounced 300ms after any change. Pretty-printed JSON with sorted keys for diff-friendliness.
What's in it:
Per-panel state is opaque to the layout layer — it's whatever the provider chose to encode.
| Provider | Encodes |
|---|---|
| File (markdown) |
MarkdownPanelState — current mode (preview / edit / split) |
| Folder |
CanvasState — items, positions, sizes, sticky note text/colours, zoom, pan, mode |
| Chat (legacy) |
ChatState — message history |
| Terminal, Web, Mermaid | Nothing persisted |
UserDefaults key soffit.recentFiles.v1
A flat array of standardised file URLs, MRU order, capped at 20. Auto-prunes deleted files when you expand the Recent sidebar section.
To clear: sidebar → Recent → expand → Clear at the bottom.
To wipe via shell: defaults delete com.soffit.app soffit.recentFiles.v1.
Inside Soffit.app/Contents/Resources/Soffit_Soffit.bundle/:
| File | Purpose |
|---|---|
mermaid-shim.html |
The HTML page that renders .mmd files |
mermaid.min.js |
Vendored mermaid renderer (run scripts/vendor-mermaid.sh to fetch — not committed) |
| Survives | Doesn't |
|---|---|
| Pane tree, tabs, splits, ratios | Terminal sessions (always fresh) |
| Markdown editor mode per panel | Markdown undo history |
| Canvas item positions, sticky text, zoom, pan | Folder grid sort scroll position |
| Recent files list | Per-tab scroll position |
| Workspace root | Hover/drag overlay state |
To move a workspace to another Mac:
- Copy your folder.
- Copy
~/Library/Application Support/Soffit/layout.json. - Open Soffit on the new Mac, point it at the copied folder. Layout restores.
To reset to a clean slate without uninstalling:
rm ~/Library/Application\ Support/Soffit/layout.json
defaults delete com.soffit.app soffit.recentFiles.v1Then relaunch — Soffit will ask for a workspace folder again.
Soffit · MIT-licensed · macOS 14+
Start here
Reference
{ "workspaceRoot": "/Users/me/notes", "tree": { "kind": "split", "id": { "raw": "..." }, "orientation": "horizontal", "ratio": 0.5, "first": { "kind": "leaf", "pane": { "id": { "raw": "..." }, "tabs": [ { "id": ..., "source": "file:///...", "title": "spec.md", "state": "<base64>" } ], "activeTabID": ... } }, "second": { ... } } }