> For the complete documentation index, see [llms.txt](https://developer.celigo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.celigo.com/cli/getting-started/configuration.md).

# Configuration reference

The CLI reads configuration from three sources, in priority order:

1. **Command-line flags** — `--token`, `--base-url`, `--profile`, `--format`, `--jq`, `--verbose`
2. **Environment variables** — see table below
3. **`~/.celigo/config.json`** — per-profile defaults

An earlier source overrides a later one. `--token` on the command line wins over the env var, which wins over the config file.

## Config file schema

```json
{
  "active_profile": "prod",
  "profiles": {
    "<profile-name>": {
      "api_token":      "<string>",
      "base_url":       "<url>",
      "default_format": "json" | "table",
      "mode":           "read" | "operate" | "full",
      "account_alias":  "<string>",
      "list_fields":    "all" | "default"
    }
  },
  "settings": {
    "auto_update":                 "true" | "false",
    "skills_auto_install":         "true" | "false",
    "skills_auto_install_exclude": "<comma-separated skill names>"
  }
}
```

File mode is `0600` on Unix. Unknown fields are preserved across writes but not surfaced.

### Per-profile keys

Each profile targets one account and environment, so these keys are set per profile.

| Field            | Type   | Default                     | Notes                                                                                                                                                                                                                                                                                                                                         |
| ---------------- | ------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `api_token`      | string | —                           | Bearer token. Required for anything but `config`/`profile` commands.                                                                                                                                                                                                                                                                          |
| `base_url`       | string | `https://api.integrator.io` | Use your region's API host. See [Profiles & regions](/cli/getting-started/profiles.md#regions).                                                                                                                                                                                                                                               |
| `default_format` | enum   | `json`                      | `json` for scripts, `table` for terminals.                                                                                                                                                                                                                                                                                                    |
| `mode`           | enum   | `full`                      | Permission mode. See [Profiles & regions](/cli/getting-started/profiles.md).                                                                                                                                                                                                                                                                  |
| `account_alias`  | string | —                           | This account's MCP alias — the path segment in `/mcp/<accountAlias>/<relativeURI>`. No API endpoint returns it, so set it here when you manage MCP connections. With it set, the CLI matches an MCP connection on the full server key rather than the relative URI alone.                                                                     |
| `list_fields`    | enum   | `default`                   | Default field scope for `list` commands. `default` keeps the built-in projection; `all` returns complete documents. Only these two values are valid — a profile-wide field list would apply one set of fields to every resource type. A `--fields` flag on the command always wins. See [Global flags](/cli/getting-started/global-flags.md). |

### Machine-wide settings

One CLI installation serves every profile, so these three settings live in a top-level `settings` object rather than inside a profile. Setting one from any profile changes it for all of them.

| Field                         | Type   | Default | Notes                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ----------------------------- | ------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `auto_update`                 | enum   | `true`  | `false` downgrades the background self-update to a notification only.                                                                                                                                                                                                                                                                                                                                                                                                          |
| `skills_auto_install`         | enum   | `true`  | `false` disables the background skills install. See [AI assistant skills](/cli/using-the-cli/skills.md).                                                                                                                                                                                                                                                                                                                                                                       |
| `skills_auto_install_exclude` | string | —       | Comma-separated skill names the background install must never install. Use the names `celigo skills list` reports. The CLI checks the shape, not whether the skill exists, so a typo is accepted and excludes nothing. Set it to an empty string to clear the list. While the list is non-empty, the background install requests every other skill by name. An explicit `celigo skills install` ignores this setting. See [AI assistant skills](/cli/using-the-cli/skills.md). |

## Environment variables

| Variable                     | Maps to                 | Notes                                                                   |
| ---------------------------- | ----------------------- | ----------------------------------------------------------------------- |
| `CELIGO_API_TOKEN`           | `--token`               | Most common form of auth in CI.                                         |
| `CELIGO_BASE_URL`            | `--base-url`            | Overrides profile and default.                                          |
| `CELIGO_FORMAT`              | `--format`              | `json` or `table`.                                                      |
| `CELIGO_MODE`                | profile `mode`          | `read`, `operate`, or `full`.                                           |
| `CELIGO_ACCOUNT_ALIAS`       | profile `account_alias` | Overrides the profile value for one shell session.                      |
| `CELIGO_NO_UPDATE`           | —                       | Set to any value to suppress the auto-update check.                     |
| `CELIGO_NO_SKILLS_INSTALL`   | —                       | Set to any value to suppress the background skills install for one run. |
| `CELIGO_INDEX_STALE_MINUTES` | —                       | Account-index staleness threshold in minutes (default 15).              |
| `HTTPS_PROXY`/`HTTP_PROXY`   | —                       | Standard proxy env vars, honored by the HTTP client.                    |

There is no environment variable for `list_fields`. Set it per profile, or pass `--fields` on the command.

## `celigo config` commands

```bash
celigo config show                                # active profile's config plus machine-wide settings
celigo config get api_token                       # single field
celigo config set api_token "<paste>"             # write a field to the active profile
celigo config set base_url https://api.eu.integrator.io
celigo config set default_format table
celigo config set mode operate
celigo config set list_fields all                 # complete documents from every list command

celigo config set auto_update false               # machine-wide
celigo config set skills_auto_install false       # machine-wide
celigo config set skills_auto_install_exclude writing-sql,writing-handlebars
```

`celigo config` operates on the **active profile** for per-profile keys, and on the whole installation for the three machine-wide keys. To target another profile, pass `--profile <name>` before the `config` subcommand:

```bash
celigo --profile ci config set default_format json
```

There is no `config unset`. Set the field to the default you want, or remove the profile entirely with `celigo profile delete <name>` and recreate it.

## Reset

> ⚠️ **This permanently deletes all profiles and the account index.** `rm -rf ~/.celigo` cannot be undone — you must re-add every profile and re-authenticate afterward.

```bash
rm -rf ~/.celigo        # nuke everything (profiles + account index)
celigo profile add default --api-token "<paste>"
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.celigo.com/cli/getting-started/configuration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
