Configuration
Customize Paneflow with a single paneflow.json file - default shell, theme, keybindings, window decorations, and more.
Paneflow reads a single JSON file at startup: paneflow.json. Every
key is optional and has a sensible default, so an empty {} is a
valid config. The full reference, including types, defaults, and
stability per key, lives on the schema page.
Where is paneflow.json?
| OS | Path |
|---|---|
| Linux | ~/.config/paneflow/paneflow.json (or $XDG_CONFIG_HOME/paneflow/paneflow.json) |
| macOS | ~/Library/Application Support/paneflow/paneflow.json |
If the file does not exist on first launch, Paneflow boots with all defaults. Create the file at the path above to start customizing.
Editor autocomplete with JSON Schema
Pin a $schema reference to get instant autocomplete and type
checking in VS Code, JetBrains, Zed, Helix, or any editor with a
JSON Schema language server:
{
"$schema": "https://github.com/ArthurDEV44/paneflow/raw/main/schemas/paneflow.schema.json",
"theme": "One Dark"
}The schema is published with every release and tracks the exact set of keys the running build accepts.
How does Paneflow handle unknown keys?
Paneflow is lenient at runtime: unknown top-level keys are silently ignored, and missing keys resolve to their defaults. This keeps your config forward-compatible across releases - dropping in a key from a newer build never breaks an older Paneflow binary.
The JSON Schema additionally rejects unknown keys at edit time
(additionalProperties: false), so your editor flags typos before
you save. The runtime stays permissive on purpose.
What's next?
- Full schema reference with every key: Schema.
- Keyboard shortcut customization: Keybindings.