# Configuration and authentication

Source: https://rerune.io/docs/cli-configuration

Understand rerune.json, keep management credentials outside version control, and configure the correct platform paths.

## The project configuration

Source: https://rerune.io/docs/cli-configuration#config-file

The interactive CLI writes rerune.json in the current directory. Run subsequent commands from that directory. This example shows a generated Flutter configuration; select your own project, language set, and platform instead of copying its identifiers.

rerune.json · generated configuration example:

```
{
  "api_key": "${RERUNE_API_KEY}",
  "project_id": "asd819c873b1184c8asdasd",
  "languages": [
    { "code": "en", "name": "English", "main": false },
    { "code": "de", "name": "German", "main": true },
    { "code": "it", "name": "Italian", "main": false },
    { "code": "pt", "name": "Portuguese", "main": false }
  ],
  "translations_path": "lib/languages/I10n/",
  "platform": "flutter",
  "platform_metadata": {
    "code": "flutter",
    "name": "Flutter",
    "default_path": "lib/languages/I10n/",
    "has_lang_dir": false,
    "lang_dir_prefix": "",
    "lang_dir_suffix": "",
    "lang_dir_separator": "",
    "lang_code_as_prefix": false,
    "single_file": false
  }
}
```

## Configuration fields

Source: https://rerune.io/docs/cli-configuration#fields

| Field | Purpose |
| --- | --- |
| api_key | Management credential or an environment-variable reference such as ${RERUNE_API_KEY}. |
| project_id | The project that pull and push synchronize. |
| languages | Language codes, display names, and the main-language flag. |
| translations_path | The directory containing your platform translation files. |
| platform / platform_metadata | The format identifier and file-layout rules selected during setup. |
| last_sync | CLI-maintained synchronization state used with key timestamps during merging. |

Keep the generated platform metadata intact unless you are deliberately changing the format layout. Do not reset last_sync as a shortcut for resolving conflicting changes; inspect the local and remote values first.

## Supply an API key

Source: https://rerune.io/docs/cli-configuration#api-key

Create an API key in the dashboard account area. Set RERUNE_API_KEY in the process environment or a local .env file. An environment-backed rerune.json keeps the placeholder reference in the file and resolves the actual key at runtime.

> **Keep management credentials out of the app:** Do not commit API keys, expose them in client-side environment variables, or include them in a mobile binary. SDK runtime delivery uses the read-only OTA Publish ID described in the credentials chapter.

Review rerune.json before committing it. It is suitable for sharing only after any literal credential has been replaced with the environment reference. Keep the local .env file ignored by Git.

- See also: [API keys and OTA Publish IDs](https://rerune.io/docs/credentials)

---

Part of the ReRune documentation (https://rerune.io/docs). Every chapter with a summary: https://rerune.io/llms.txt. Every chapter in one file: https://rerune.io/llms-full.txt. ReRune is not Rerun (rerun.io), the robotics data visualization tool.
