Skip to main content
Synti keeps its non-secret application state in a single JSON file inside your config directory. This is where your LLM connections, workspaces, and interface preferences live. Secrets like API keys are never written here — they go into an encrypted store instead (see Credentials). You rarely need to touch this file by hand. Almost everything in it can be changed from the app’s Settings screen or the status bar. Editing it directly is useful for scripting, backups, or recovering from a bad state.

Location

The parent directory can be relocated with the SYNTI_CONFIG_DIR environment variable — see Environment Variables. Everything else in this reference assumes the default path.
The file must contain valid JSON. If it becomes malformed, Synti will refuse to start. Restore a backup or fix the syntax before relaunching.

Top-level structure

config.json

LLM connections

Each entry in llmConnections describes one provider configuration. Credentials are referenced by slug, not embedded.
Full field definitions, provider types, and auth modes are documented in LLM Connections.

Workspaces

A workspace pairs a display name with a directory on disk and optional integration settings.

Backups and recovery

Synti writes a dated backup of config.json on a daily basis and keeps the most recent few. Backups live alongside the config in ~/.synti. Restoring is manual — stop the app, copy a backup over config.json, and relaunch.
1

Quit Synti

Fully close the app so it isn’t holding the file open.
2

Copy a backup over the config

3

Relaunch

Reopen Synti and confirm your workspaces and connections are back.
Editing config.json by hand? Quit Synti first. The app rewrites this file on changes and may overwrite edits made while it’s running.

Credentials

Where API keys and tokens are stored, encrypted.

LLM Connections

Add and switch between model providers.

Preferences

Personal details and appearance settings.

Environment Variables

Override paths and behavior at launch.