> ## Documentation Index
> Fetch the complete documentation index at: https://docs.synti.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Config File

> How Synti stores app settings in config.json, what each section means, and how to edit it safely.

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](/reference/config/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

```text theme={null}
~/.synti/config.json
```

The parent directory can be relocated with the `SYNTI_CONFIG_DIR` environment variable — see [Environment Variables](/reference/config/environment-variables). Everything else in this reference assumes the default path.

<Warning>
  The file must contain valid JSON. If it becomes malformed, Synti will refuse to start. Restore a backup or fix the syntax before relaunching.
</Warning>

## Top-level structure

```json config.json theme={null}
{
  "llmConnections": [ /* ... */ ],
  "defaultLlmConnection": "anthropic-default",
  "workspaces": [ /* ... */ ],
  "activeWorkspaceId": "ws_home",
  "activeSessionId": null,
  "notificationsEnabled": true,
  "colorTheme": "default",
  "networkProxy": { /* ... */ },
  "dismissedUpdateVersion": null,
  "pendingUpdate": null
}
```

| Key                      | Type           | Purpose                                                                               |
| ------------------------ | -------------- | ------------------------------------------------------------------------------------- |
| `llmConnections`         | array          | Configured model providers. See [LLM Connections](/reference/config/llm-connections). |
| `defaultLlmConnection`   | string         | Slug of the connection used when a session doesn't pick one.                          |
| `workspaces`             | array          | Registered workspaces and their root directories.                                     |
| `activeWorkspaceId`      | string \| null | Workspace shown on launch.                                                            |
| `activeSessionId`        | string \| null | Session restored on launch, if any.                                                   |
| `notificationsEnabled`   | boolean        | Desktop notifications toggle. Defaults to `true`.                                     |
| `colorTheme`             | string         | Active theme preset. See [Preferences](/reference/config/preferences).                |
| `networkProxy`           | object         | Proxy settings. See [Network Proxy](/reference/config/network-proxy).                 |
| `dismissedUpdateVersion` | string \| null | Version of an update the user chose to skip.                                          |
| `pendingUpdate`          | object \| null | Downloaded-but-not-installed update metadata.                                         |

## LLM connections

Each entry in `llmConnections` describes one provider configuration. Credentials are referenced by slug, not embedded.

```json theme={null}
{
  "slug": "anthropic-default",
  "name": "Anthropic",
  "providerType": "anthropic",
  "authType": "api_key",
  "defaultModel": "claude-sonnet-4-5",
  "createdAt": 1731000000000
}
```

Full field definitions, provider types, and auth modes are documented in [LLM Connections](/reference/config/llm-connections).

## Workspaces

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

| Field            | Required | Description                                         |
| ---------------- | -------- | --------------------------------------------------- |
| `id`             | yes      | Stable unique identifier.                           |
| `name`           | yes      | Display name shown in the switcher.                 |
| `rootPath`       | yes      | Absolute path to the workspace's working directory. |
| `createdAt`      | yes      | Creation time in Unix milliseconds.                 |
| `lastAccessedAt` | no       | Used to order recently used workspaces.             |
| `iconUrl`        | no       | Custom icon for the workspace.                      |
| `mcpUrl`         | no       | Default MCP server endpoint for this workspace.     |
| `mcpAuthType`    | no       | Authentication method for the MCP endpoint.         |

```json theme={null}
{
  "id": "ws_home",
  "name": "Home",
  "rootPath": "/Users/you/projects/app",
  "createdAt": 1731000000000,
  "lastAccessedAt": 1731600000000
}
```

## 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.

<Steps>
  <Step title="Quit Synti">
    Fully close the app so it isn't holding the file open.
  </Step>

  <Step title="Copy a backup over the config">
    ```bash theme={null}
    cp ~/.synti/config.json.bak-2026-07-15 ~/.synti/config.json
    ```
  </Step>

  <Step title="Relaunch">
    Reopen Synti and confirm your workspaces and connections are back.
  </Step>
</Steps>

<Tip>
  Editing `config.json` by hand? Quit Synti first. The app rewrites this file on changes and may overwrite edits made while it's running.
</Tip>

## Related

<CardGroup cols={2}>
  <Card title="Credentials" icon="lock" href="/reference/config/credentials">
    Where API keys and tokens are stored, encrypted.
  </Card>

  <Card title="LLM Connections" icon="plug" href="/reference/config/llm-connections">
    Add and switch between model providers.
  </Card>

  <Card title="Preferences" icon="sliders" href="/reference/config/preferences">
    Personal details and appearance settings.
  </Card>

  <Card title="Environment Variables" icon="terminal" href="/reference/config/environment-variables">
    Override paths and behavior at launch.
  </Card>
</CardGroup>
