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

# Config Studio: Build and Sync Your Iris Code Config Visually

> Config Studio is a visual editor in your account dashboard. Pick a preset, tune thresholds, and sync the resulting config to VS Code, JetBrains IDEs, or any VS Code fork with a diff preview.

Config Studio is a visual editor for `.irisconfig.json`, so you can configure Iris Code without knowing the key names.

It lives at [iriscode.co/account/config](https://www.iriscode.co/account/config). Choose a preset, set your naming rules, and watch the JSON build up alongside your changes, then sync it to your editor. Presets and naming are free; Pro adds custom thresholds, gate limits and severity overrides.

## What it covers

Everything that counts as a shared team standard, in one place, with a live preview of the file you will actually get:

* **Preset selector** - choose from Balanced, Strict, Legacy, Security, TypeScript, AI-assisted, or switch to Custom mode.
* **File naming** (Free) - choose a workspace fallback, absolute ignore globs, and ordered path/role rules; legacy language policies remain available as fallbacks.
* **Detection matrix** - see at a glance which rule categories are on or off for the selected preset.
* **minHealthScore bar** - the gate threshold used by the CLI and hooks is always visible at the top of the card.
* **Gate limits** (Pro, Custom mode) - explicit hard caps including `gateMaxDuplicateBlocks` and `gateMaxNamingViolations`. Leave a field empty to impose no limit.
* **Custom scoring** (Pro, Custom mode) - control exactly how many points each finding type deducts from the base 100 health score. See [Scoring Weights](/configuration/scoring-weights).
* **Live JSON preview** - the right panel updates as you change values, showing the exact `.irisconfig.json` that will be written.

<Warning>
  **Sync replaces your entire `.irisconfig.json`.** It doesn't merge.

  Four settings aren't in the studio on purpose, because they describe one machine or one project rather than a shared standard: `ignoreFiles`, `ignoreFunctions`, `testConvention` and `sidebarFontSize`. If your current file sets any of them, syncing removes them.

  A diff is shown before anything is written, and every removed line appears in it. Review it before confirming.

  To avoid the situation entirely, set those four in [VS Code settings](/configuration/vscode-settings) instead. Sync never touches them there.
</Warning>

## Syncing to VS Code

The sync flow is designed to never write silently - every sync opens a diff in VS Code first so you can review the exact changes before anything is committed to disk.

<Steps>
  <Step title="Open Account → Config in the browser">
    Navigate to [iriscode.co/account/config](https://www.iriscode.co/account/config) while signed in to your Iris Code account.
  </Step>

  <Step title="Choose a preset or switch to Custom mode">
    Select one of the six presets from the selector, or switch to Custom mode to tune individual thresholds, detections, and gate limits.
  </Step>

  <Step title="Click 'Sync to VS Code'">
    Hit the **Sync to VS Code** button. Iris Code generates a short-lived one-time token and opens VS Code via a deep link.
  </Step>

  <Step title="VS Code opens a diff preview">
    VS Code opens and shows a diff preview of the exact changes that will be made to your `.irisconfig.json`.
  </Step>

  <Step title="Confirm or cancel">
    Confirm the write to apply the changes - or cancel to leave your config exactly as it was. Nothing is written silently.
  </Step>
</Steps>

<Note>
  The sync token is short-lived and single-use. If VS Code doesn't open within a few seconds, check that the Iris Code extension is installed and that VS Code is running.
</Note>

## Other editors: sync with a code

The **Sync to VS Code** button opens a `vscode://` deep link, which only VS Code itself claims. JetBrains IDEs have no such scheme, and VS Code forks register their own - so in Trae, Positron, or a JetBrains IDE that link would open VS Code, or nothing at all.

For those editors, click **Get a sync code** instead. You get a one-time code to paste into your editor, and the rest of the flow is identical - same diff, same confirmation, same write targets.

<Tabs>
  <Tab title="JetBrains IDEs">
    **Tools → Iris Code → Sync Config from Dashboard**, then paste the code.

    Iris Code shows a real diff against your current config and writes only after you confirm. The write goes through the IDE, so it is undoable and analysis restarts automatically.
  </Tab>

  <Tab title="Trae, Positron, other forks">
    Open the command palette and run **Iris Code: Sync Config from Dashboard**, then paste the code.

    Requires Iris Code 1.17.1 or later. If the command does not appear, update the extension.

    This runs the same handler as the deep link, so the diff preview and confirmation are identical to VS Code's.
  </Tab>
</Tabs>

<Warning>
  The code can only be redeemed once. If you cancel at the diff, generate a new code rather than reusing the old one.
</Warning>

## Write targets

When you click **Sync to VS Code**, choose where the config is written:

<CardGroup cols={2}>
  <Card title="Workspace" icon="folder">
    Writes `.irisconfig.json` to the project root. Available to all users - Free and Pro. Commit it and the whole team runs the same config automatically.
  </Card>

  <Card title="Global default" icon="user" color="#f59e0b">
    **Pro only.** Writes to your personal default config path so every new project on your machine starts with the same settings. Useful for personal standards you maintain across repositories.
  </Card>
</CardGroup>

<Tip>
  For monorepos, sync a **Workspace** config to each package root that needs different thresholds. The extension resolves config by walking up the directory tree - the nearest `.irisconfig.json` wins.
</Tip>

## Using a preset without Config Studio

You don't need the dashboard to use a preset. Create a `.irisconfig.json` at your project root and add one line:

```json .irisconfig.json theme={null}
{ "presetId": "balanced" }
```

All six preset IDs are: `legacy`, `balanced`, `typescript`, `strict`, `security`, `ai-assisted`. Commit the file and every developer on the team picks up the same thresholds automatically.

## Free vs Pro

<Tabs>
  <Tab title="Free">
    * Pick any preset from the selector
    * Preview the resulting JSON in the live preview panel
    * Sync to the **Workspace** write target
    * Configure workspace-wide `fileNaming` and `fileNamingScope`, then add ordered path rules or fallback language policies

    The preset values are fixed and cannot be overridden locally - editing threshold fields in the generated file produces a yellow warning squiggle in the editor.
  </Tab>

  <Tab title="Pro">
    * Start from any preset and switch to **Custom mode** for full control
    * Override individual threshold values, detection toggles, diagnostic categories, and severity overrides
    * Configure custom scoring weights and gate limits
    * Sync to **Workspace** or **Global default** write targets

    Custom mode gives you full control over every key in `.irisconfig.json`.
  </Tab>
</Tabs>
