@globant/coda-darwin-x64 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/agents/coda-help.md +1 -0
- package/assets/docs/add-mcp-server-skill.md +135 -0
- package/assets/docs/agents.md +1 -1
- package/assets/docs/cli-reference.md +2 -0
- package/assets/docs/config-json.md +42 -44
- package/assets/docs/config-reference.md +49 -35
- package/assets/docs/configuration.md +12 -8
- package/assets/docs/connect-provider.md +3 -3
- package/assets/docs/extensions.md +23 -26
- package/assets/docs/faq.md +17 -7
- package/assets/docs/glossary.md +4 -4
- package/assets/docs/guide-changes.md +4 -4
- package/assets/docs/guide-collaborate.md +4 -4
- package/assets/docs/guide-extend.md +5 -5
- package/assets/docs/hooks.md +32 -68
- package/assets/docs/how-it-works.md +3 -3
- package/assets/docs/index.md +6 -5
- package/assets/docs/installation.md +5 -5
- package/assets/docs/logging.md +1 -1
- package/assets/docs/overview.md +7 -6
- package/assets/docs/permissions.md +16 -12
- package/assets/docs/quickstart.md +8 -4
- package/assets/docs/sessions.md +1 -1
- package/assets/docs/shortcuts.md +1 -1
- package/assets/docs/tools-reference.md +8 -1
- package/assets/docs/workflows.md +2 -1
- package/assets/skills/configure-mcp/SKILL.md +279 -0
- package/assets/skills/create-hook/SKILL.md +4 -4
- package/coda +0 -0
- package/lib/keytar/build/Release/keytar.node +0 -0
- package/lib/opentui/libopentui.dylib +0 -0
- package/lib/ripgrep/rg +0 -0
- package/package.json +1 -1
|
@@ -51,6 +51,7 @@ Notation: every entry points to `file.md › § "Exact Heading"`. All files live
|
|
|
51
51
|
| Where are config / secrets / sessions / logs stored? | `config-reference.md` › § "Config file locations"; `faq.md` › § "Where are my config, sessions, and logs stored?" |
|
|
52
52
|
| Store API keys safely / `${VAR}` / `secretRef` secrets? | `config-json.md` › § "Secrets: keep keys out of the file"; `config-reference.md` › § "Referencing secrets with `${VAR}`" |
|
|
53
53
|
| How do I switch models? | `cli-reference.md` › § "Configuration" (`/switch-model`); `shortcuts.md` › § "Model switching" |
|
|
54
|
+
| How do I copy CODA's response / a past response / test the `/copy` command? | `cli-reference.md` › § "Session management" (`/copy`); shortcut → `shortcuts.md` › § "Transcript navigation" (`Ctrl+Shift+C`) |
|
|
54
55
|
| How do I let bash run everything / change approval level / permission mode (`read-only`/`default`/`auto`, Ctrl+P)? | `permissions.md` › § "Permission modes", § "Where to set it"; headless: § "Approvals in headless (batch) mode" |
|
|
55
56
|
| How do I allow / always-allow / never-allow a command (`propose_policy`, "allow pnpm build")? | `permissions.md` › § "The easy way to change permissions: just ask the agent", § "How `propose_policy` works", § "What you actually approve" |
|
|
56
57
|
| Stop CODA suggesting rule changes / disable `propose_policy` (`permissions.proposePolicy`, `CODA_PROPOSE_POLICY`, `disableProposePolicy`)? | `permissions.md` › § "Turning `propose_policy` off"; `config-reference.md` › § "permissions" |
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Configure an MCP Server with CODA
|
|
2
|
+
|
|
3
|
+
When you ask CODA to add, register, install, or configure an MCP server, it can load the bundled **`configure-mcp`** skill. The skill turns a package name, command, Git repository, local binary, or remote HTTP endpoint into a valid MCP configuration without overwriting your other servers.
|
|
4
|
+
|
|
5
|
+
## Ask in plain language
|
|
6
|
+
|
|
7
|
+
Examples:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
Add the Playwright MCP server to this project.
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
Configure https://api.example.com/mcp globally. Read its token from API_TOKEN.
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
Install the MCP server from this repository and show me the available setup choices: <repository-url>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
CODA inspects the input, asks which scope or installation method you want when that is unclear, and writes only after it can derive a valid server transport.
|
|
22
|
+
|
|
23
|
+
## Choose the scope
|
|
24
|
+
|
|
25
|
+
| Scope | Configuration file | Use it when |
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| **Project** | `<project>/.coda/mcp.json` | The server belongs to this project and the config should be shared with teammates. |
|
|
28
|
+
| **Global** | `~/.coda/mcp.json` | The server is personal and should be available in every project on this machine. |
|
|
29
|
+
|
|
30
|
+
If you do not specify a scope, CODA asks. When both scopes contain the same server name, the project definition wins.
|
|
31
|
+
|
|
32
|
+
## Supported inputs
|
|
33
|
+
|
|
34
|
+
The bundled skill accepts package names, executable commands, local binaries, Git repositories, and remote HTTP endpoints. A `.zip` archive is not a direct skill input; unpack it first, then point CODA at the extracted command or repository instructions.
|
|
35
|
+
|
|
36
|
+
### Remote HTTP endpoint
|
|
37
|
+
|
|
38
|
+
An HTTP MCP server uses `url` and may include headers, a bearer-token reference, a timeout, and environment variables:
|
|
39
|
+
|
|
40
|
+
```jsonc
|
|
41
|
+
{
|
|
42
|
+
"mcpServers": {
|
|
43
|
+
"my-api": {
|
|
44
|
+
"url": "https://api.example.com/mcp",
|
|
45
|
+
"authorizationToken": "Bearer ${API_TOKEN}",
|
|
46
|
+
"headers": { "X-Project": "${PROJECT_ID}" },
|
|
47
|
+
"timeout": 30
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Package, command, or local binary
|
|
54
|
+
|
|
55
|
+
A local stdio server uses `command` with optional arguments, environment variables, and a working directory:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"mcpServers": {
|
|
60
|
+
"playwright": {
|
|
61
|
+
"command": "npx",
|
|
62
|
+
"args": ["-y", "@playwright/mcp@latest"]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Common launchers include `npx`, `uvx`, `node`, and a direct executable path.
|
|
69
|
+
|
|
70
|
+
### Git repository
|
|
71
|
+
|
|
72
|
+
A repository can document several installation methods. CODA reads its setup instructions, presents the viable choices, and lets you pick—for example a package launcher, a hosted HTTP endpoint, or a local build. A temporary clone is removed when the selected runtime does not need it.
|
|
73
|
+
|
|
74
|
+
If no command or URL can be derived, CODA writes nothing and asks you for a package name, executable command, repository, or HTTP endpoint.
|
|
75
|
+
|
|
76
|
+
## Entry rules
|
|
77
|
+
|
|
78
|
+
Each server entry must have exactly one transport:
|
|
79
|
+
|
|
80
|
+
- `command` for a local stdio subprocess; or
|
|
81
|
+
- `url` for Streamable HTTP.
|
|
82
|
+
|
|
83
|
+
Do not set both. Useful optional fields are:
|
|
84
|
+
|
|
85
|
+
| Field | Applies to | Purpose |
|
|
86
|
+
| --- | --- | --- |
|
|
87
|
+
| `args` | stdio | Command arguments. |
|
|
88
|
+
| `cwd` | stdio | Working directory for the subprocess. |
|
|
89
|
+
| `env` | both | Environment variables passed to the server. |
|
|
90
|
+
| `headers` | HTTP | Extra request headers. |
|
|
91
|
+
| `authorizationToken` | HTTP | Shorthand for the Authorization header. |
|
|
92
|
+
| `timeout` | HTTP | Request timeout in seconds. |
|
|
93
|
+
|
|
94
|
+
Session-level overrides can also use `{ "disabled": true }` to switch off a server inherited from a higher scope. For ordinary project/global entries, enable or disable the server from the `/mcp` manager.
|
|
95
|
+
|
|
96
|
+
## Keep secrets out of the file
|
|
97
|
+
|
|
98
|
+
Never put a real token or API key directly in `mcp.json`. Use `${VAR}` or `${VAR:-default}` and define the value in your environment, `~/.coda/.secrets`, or a project environment file that is excluded from version control.
|
|
99
|
+
|
|
100
|
+
For example:
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"authorizationToken": "Bearer ${GITHUB_TOKEN}"
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
CODA preserves existing server entries. If the chosen name already exists, it shows the current entry and asks before replacing only that key.
|
|
109
|
+
|
|
110
|
+
## Activate and verify
|
|
111
|
+
|
|
112
|
+
After the file is written:
|
|
113
|
+
|
|
114
|
+
1. Open `/mcp`.
|
|
115
|
+
2. Choose **Reload MCP servers**.
|
|
116
|
+
3. Check the server status and view its discovered tools.
|
|
117
|
+
|
|
118
|
+
Restarting CODA also loads the change. `/skills refresh` reloads skill definitions; it does not reload MCP connections.
|
|
119
|
+
|
|
120
|
+
Once the server is connected, describe the task normally. CODA can select its MCP tools when they are relevant, subject to the same authorization rules as other tools.
|
|
121
|
+
|
|
122
|
+
## Troubleshooting
|
|
123
|
+
|
|
124
|
+
- **Invalid JSON** — fix the existing file first; CODA does not overwrite malformed configuration.
|
|
125
|
+
- **Duplicate server name** — choose a different name or approve replacement of that one entry.
|
|
126
|
+
- **No transport found** — provide the exact executable command, package name, or HTTP endpoint.
|
|
127
|
+
- **Git setup is ambiguous** — choose one of the installation methods found in the repository documentation.
|
|
128
|
+
- **A credential is required** — provide the environment-variable name, never the secret value in the config.
|
|
129
|
+
- **The server does not appear** — reload it from `/mcp`, then inspect its status and error details.
|
|
130
|
+
|
|
131
|
+
## See also
|
|
132
|
+
|
|
133
|
+
- [Extend CODA](#guide-extend) — MCP, skills, extensions, plugins, and workflows.
|
|
134
|
+
- [Configuration](#configuration) — where configuration and secrets live.
|
|
135
|
+
- [Permissions & Approvals](#permissions) — authorization for MCP tool calls.
|
package/assets/docs/agents.md
CHANGED
|
@@ -128,7 +128,7 @@ Agent behavior is controlled by the `agents` block in your config (global and/or
|
|
|
128
128
|
| --- | --- |
|
|
129
129
|
| `agents.enabled` | When `false`, agent tools and the run manager aren't wired up. Default **true** |
|
|
130
130
|
| `agents.maxConcurrent` | Cap on parallel runs (valid range **1–10**). Default **6** |
|
|
131
|
-
| `agents.defaultModel` |
|
|
131
|
+
| `agents.defaultModel` | Legacy configuration field retained for compatibility; delegated runs now inherit the main session model unless a definition or tool call chooses another model |
|
|
132
132
|
| `agents.fastModel` | Model ID used when a run requests the `"fast"` tier at the agents level (overrides provider value) |
|
|
133
133
|
| `agents.smartModel` | Model ID used when a run requests the `"smart"` tier |
|
|
134
134
|
| `agents.deepModel` | Model ID used when a run requests the `"deep"` tier |
|
|
@@ -10,6 +10,7 @@ Reference for the slash commands available in the interactive TUI, plus the shel
|
|
|
10
10
|
| `/new` | Start a fresh session (old one is saved) |
|
|
11
11
|
| `/exit` (alias `/quit`) | Exit CODA; prints `coda --session-id <id>` so you can resume later |
|
|
12
12
|
| `/clear` | Permanently wipe the current session's message history (the session itself stays) |
|
|
13
|
+
| `/copy` (or `/copy N`) | Copy CODA's last response to the clipboard; `/copy N` copies the Nth-most-recent response (assistant messages only). Complements the [`Ctrl+Shift+C`](#shortcuts) shortcut, which copies only the last fenced code block |
|
|
13
14
|
|
|
14
15
|
## Files and changes
|
|
15
16
|
|
|
@@ -86,6 +87,7 @@ Reference for the slash commands available in the interactive TUI, plus the shel
|
|
|
86
87
|
| `coda --timeout <ms>` | Abort a headless run after the given time |
|
|
87
88
|
| `coda --checkpoints[=true\|false]` | Force checkpoints on or off for this run |
|
|
88
89
|
| `coda --model <name>` / `-m` | Use a specific model for this run |
|
|
90
|
+
| `coda --reasoning-effort <level>` | Set the thinking effort for THIS run only — `none\|minimal\|low\|medium\|high\|xhigh\|max` (case-insensitive). Applied in memory; never written to config. Overrides a persisted `reasoning.effort` at launch and is inherited by subagents. An invalid value fails fast; a level the model can't honor prints a stderr warning and is not applied (no silent fallback) |
|
|
89
91
|
| `coda -e <path>` | Load an extra extension file for this run |
|
|
90
92
|
| `coda --mcp-config <path>` | Point at a specific `mcp.json` for this run |
|
|
91
93
|
| `coda --system-prompt <text>` | Replace the built-in base system prompt for this run |
|
|
@@ -11,7 +11,7 @@ For a field-by-field table of the most common keys, see [Configuration Reference
|
|
|
11
11
|
| `~/.coda/config.json` | Your user-global settings (apply in every project) |
|
|
12
12
|
| `<project>/.coda/config.json` | Project overrides (commit to share with the team) |
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Most settings cascade in priority order: **CLI flags → project config → global config → built-in defaults**. Permission rules accumulate across scopes, and a project cannot raise the starting permission mode above your user-level default. A project file only needs the keys it wants to change.
|
|
15
15
|
|
|
16
16
|
> **Every block below is optional.** A real `config.json` only contains the keys you actually set — most commonly `activeProfile` and a `profiles` map (the wizard writes these). The example here is intentionally exhaustive so you can copy the one block you need.
|
|
17
17
|
|
|
@@ -23,12 +23,13 @@ Settings cascade in priority order: **CLI flags → project config → global co
|
|
|
23
23
|
// This is the ONLY provider config CODA writes to disk. "activeProfile" names
|
|
24
24
|
// the profile currently in use; "profiles" is the map of switchable targets.
|
|
25
25
|
// Both are managed by /providers and /switch-profile — you rarely hand-edit
|
|
26
|
-
// them. Each profile's "provider" is one of:
|
|
26
|
+
// them. Each profile's "provider" is one of:
|
|
27
|
+
// "glob-ai" | "glob-ai-os" | "openai-compat" | "ollama".
|
|
27
28
|
"activeProfile": "geai-oauth",
|
|
28
29
|
"profiles": {
|
|
29
30
|
// Glob.AI OS via OAuth (browser login). Tokens live in the OS keyring, so
|
|
30
|
-
// no key is stored here. "instance" is a preset
|
|
31
|
-
//
|
|
31
|
+
// no key is stored here. "instance" is a known preset or a custom id;
|
|
32
|
+
// a custom id also needs its own "baseUrl".
|
|
32
33
|
"geai-oauth": {
|
|
33
34
|
"provider": "glob-ai",
|
|
34
35
|
"label": "Glob.AI OS (OAuth)",
|
|
@@ -65,7 +66,8 @@ Settings cascade in priority order: **CLI flags → project config → global co
|
|
|
65
66
|
// tools). Default 300. Raise for very long autonomous runs; lower to cap cost.
|
|
66
67
|
"maxSteps": 300,
|
|
67
68
|
|
|
68
|
-
// Background update check: true
|
|
69
|
+
// Background update check: true or "notify" checks and notifies; false disables it.
|
|
70
|
+
// Installation still happens only when you run /upgrade or coda upgrade.
|
|
69
71
|
"autoupdate": "notify",
|
|
70
72
|
|
|
71
73
|
// Error-recovery posture: "balanced" (default), "conservative", "aggressive".
|
|
@@ -106,14 +108,23 @@ Settings cascade in priority order: **CLI flags → project config → global co
|
|
|
106
108
|
},
|
|
107
109
|
|
|
108
110
|
// ── Reasoning (thinking) effort ───────────────────────────────────────
|
|
109
|
-
// effort: "low" | "medium" | "high" | "xhigh" | "max".
|
|
110
|
-
// varies. Change live with /effort.
|
|
111
|
+
// effort: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max".
|
|
112
|
+
// Per-model support varies. Change live with /effort.
|
|
113
|
+
//
|
|
114
|
+
// Headless note: the `coda --reasoning-effort <level>` shell flag sets the
|
|
115
|
+
// effort for a SINGLE run IN MEMORY ONLY — it is deliberately NOT written to
|
|
116
|
+
// this `reasoning` block, so it never collides with (or clobbers) the
|
|
117
|
+
// persisted value here. At launch the flag overrides this value for that run;
|
|
118
|
+
// the file is left exactly as-is, which is what lets two concurrent headless
|
|
119
|
+
// runs use different efforts without racing on config.json.
|
|
111
120
|
"reasoning": {
|
|
112
121
|
"enabled": true, // Default: false
|
|
113
122
|
"effort": "medium"
|
|
114
123
|
},
|
|
115
124
|
|
|
116
|
-
// ── Compaction (
|
|
125
|
+
// ── Compaction (automatic context reduction) ──────────────────────────
|
|
126
|
+
// When reduction is needed, stale tool output is moved aside first.
|
|
127
|
+
// threshold controls when older messages may also be summarized.
|
|
117
128
|
"compaction": {
|
|
118
129
|
"enabled": true,
|
|
119
130
|
"threshold": 0.75,
|
|
@@ -153,16 +164,14 @@ Settings cascade in priority order: **CLI flags → project config → global co
|
|
|
153
164
|
},
|
|
154
165
|
|
|
155
166
|
// ── Vision (examine_images) ───────────────────────────────────────────
|
|
156
|
-
// A LiteLLM-style model id.
|
|
167
|
+
// A LiteLLM-style model id. With Ollama, the product-default vision model
|
|
168
|
+
// follows the main model unless useMainAgentModel is explicitly false.
|
|
157
169
|
"vision": {
|
|
158
170
|
"model": "openai/gpt-5.4"
|
|
159
171
|
},
|
|
160
172
|
|
|
161
|
-
//
|
|
162
|
-
|
|
163
|
-
"provider": "brave", // "exa" | "brave" | "serper"
|
|
164
|
-
"apiKey": "${BRAVE_API_KEY}"
|
|
165
|
-
},
|
|
173
|
+
// The legacy webSearch block is accepted for compatibility but is not used
|
|
174
|
+
// by the current Glob.AI OS-backed web_search tool. Leave it out.
|
|
166
175
|
|
|
167
176
|
// ── Web fetch tool ────────────────────────────────────────────────────
|
|
168
177
|
// Backend priority: the FIRST entry is the primary, the rest are fallbacks.
|
|
@@ -205,23 +214,13 @@ Settings cascade in priority order: **CLI flags → project config → global co
|
|
|
205
214
|
// ── Composer (input area) behavior while CODA is busy ─────────────────
|
|
206
215
|
"composer": {
|
|
207
216
|
"whileBusy": { "delivery": "queue" }, // "queue" | "steer"
|
|
208
|
-
"queueSteer": { "enabled": true
|
|
217
|
+
"queueSteer": { "enabled": true }
|
|
209
218
|
},
|
|
210
219
|
|
|
211
|
-
// ── MCP servers
|
|
212
|
-
//
|
|
213
|
-
// <project>/.coda/mcp.json
|
|
214
|
-
//
|
|
215
|
-
"mcp": {
|
|
216
|
-
"servers": {
|
|
217
|
-
"github": {
|
|
218
|
-
"transport": "stdio",
|
|
219
|
-
"command": "npx",
|
|
220
|
-
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
221
|
-
"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
},
|
|
220
|
+
// ── MCP servers ───────────────────────────────────────────────────────
|
|
221
|
+
// Put active server definitions in ~/.coda/mcp.json or
|
|
222
|
+
// <project>/.coda/mcp.json. Leave the unused legacy "mcp" config block out.
|
|
223
|
+
// See #add-mcp-server-skill.
|
|
225
224
|
|
|
226
225
|
// ── Editor / IDE integration (ACP) ────────────────────────────────────
|
|
227
226
|
"acp": { "enabled": true },
|
|
@@ -238,16 +237,15 @@ Settings cascade in priority order: **CLI flags → project config → global co
|
|
|
238
237
|
"rawViewer": { "enabled": false }
|
|
239
238
|
},
|
|
240
239
|
|
|
241
|
-
// ── Telemetry (
|
|
240
|
+
// ── Telemetry (Glob.AI OS platform gateway only) ──────────────────────
|
|
241
|
+
// The destination is derived from the authenticated provider and cannot be
|
|
242
|
+
// set here. Use /settings → Telemetry for the normal off/basic/full control.
|
|
242
243
|
"telemetry": {
|
|
243
|
-
"
|
|
244
|
-
"exporter": "otlp",
|
|
245
|
-
"otlpProtocol": "http",
|
|
246
|
-
"
|
|
247
|
-
"
|
|
248
|
-
"serviceName": "coda", // custom service name in traces
|
|
249
|
-
"tracesEnabled": true,
|
|
250
|
-
"metricsEnabled": true
|
|
244
|
+
"level": "basic", // "off" | "basic" | "full"
|
|
245
|
+
"exporter": "otlp", // or "console" for local diagnostics
|
|
246
|
+
"otlpProtocol": "http",
|
|
247
|
+
"otlpUseTls": true,
|
|
248
|
+
"serviceName": "coda"
|
|
251
249
|
}
|
|
252
250
|
}
|
|
253
251
|
```
|
|
@@ -256,12 +254,12 @@ Settings cascade in priority order: **CLI flags → project config → global co
|
|
|
256
254
|
|
|
257
255
|
## Secrets: keep keys out of the file
|
|
258
256
|
|
|
259
|
-
Never paste raw API keys into `config.json`. Store them in `~/.coda/.secrets` (dotenv format). API-key profiles reference a secret by **name** via `auth.secretRef`; other
|
|
257
|
+
Never paste raw API keys into `config.json`. Store them in `~/.coda/.secrets` (dotenv format). API-key profiles reference a secret by **name** via `auth.secretRef`; other compatible string fields use `${VAR}` interpolation:
|
|
260
258
|
|
|
261
259
|
```bash
|
|
262
260
|
# ~/.coda/.secrets
|
|
263
261
|
MY_API_KEY=sk-...
|
|
264
|
-
|
|
262
|
+
MCP_TOKEN=...
|
|
265
263
|
```
|
|
266
264
|
|
|
267
265
|
```jsonc
|
|
@@ -287,15 +285,15 @@ The `.secrets` file is never committed and its values are scrubbed from logs bef
|
|
|
287
285
|
| --- | --- |
|
|
288
286
|
| Switch the active model | `profiles.<id>.model` (or `/model` live) |
|
|
289
287
|
| Add a provider | A new entry under `profiles` (use `/providers`); API-key ones reference a `secretRef` in `.secrets` |
|
|
290
|
-
| Switch which provider is active | `activeProfile
|
|
288
|
+
| Switch which provider is active | `activeProfile`, or `/switch-profile` / `/sp` for the next launch |
|
|
291
289
|
| Switch OAuth ↔ API key | the profile's `auth` block (`{ "method": "oauth" }` vs `{ "method": "apikey", "secretRef": "VAR" }`) |
|
|
292
|
-
| Let commands run more without asking | `permissions.defaultMode
|
|
290
|
+
| Let commands run more without asking | Set your user-level `permissions.defaultMode` to `"auto"`, or add narrow `permissions.allow` rules — see [Permissions & Approvals](#permissions) |
|
|
293
291
|
| Change thinking effort | `reasoning.effort` (or `/effort` live) |
|
|
294
292
|
| Cap or widen parallel agents | `agents.maxConcurrent` (1–10) |
|
|
295
293
|
| Turn off a noisy bundled agent | add its name to `agents.disabledDefinitions` |
|
|
296
294
|
| Use the faster search engine | `tools.grep.backend: "fastgrep"` |
|
|
297
295
|
| Set the web-fetch backend priority | `webfetch.order` — e.g. `["client","anthropic"]` (default) or `["anthropic","client"]`; `[]` disables the tool |
|
|
298
|
-
| Add an MCP server |
|
|
296
|
+
| Add an MCP server | `~/.coda/mcp.json` or `<project>/.coda/mcp.json` — see [Configure an MCP Server](#add-mcp-server-skill) |
|
|
299
297
|
| Quiet or verbose logs | `logging.level` / `logging.levels` |
|
|
300
298
|
| Disable update checks | `autoupdate: false` |
|
|
301
299
|
|
|
@@ -310,7 +308,7 @@ A couple of settings are controlled by env vars instead of (or on top of) the fi
|
|
|
310
308
|
|
|
311
309
|
## The legacy `providers` map
|
|
312
310
|
|
|
313
|
-
Older configs (and the runtime, internally) use a top-level **`provider`** string plus a **`providers`** map keyed by provider *type* (`geai`, `openai-compat`, `ollama`, `openai`, `anthropic`, `google`, `groq`, `openrouter`, `azure`, `vertex`). **CODA no longer writes these to disk** — at launch it derives an equivalent runtime map from your active profile. You don't need to add them by hand.
|
|
311
|
+
Older configs (and the runtime, internally) use a top-level **`provider`** string plus a **`providers`** map keyed by provider *type* (`geai`, `openai-compat`, `ollama`, `openai`, `anthropic`, `google`, `groq`, `openrouter`, `azure`, `vertex`). **CODA no longer writes these to disk** — at launch it derives an equivalent runtime map from your active profile. You don't need to add them by hand. The legacy schema still accepts `vertex`, but Vertex AI cannot run yet.
|
|
314
312
|
|
|
315
313
|
If you're maintaining a config that still uses the old shape, it continues to work, but migrate to `activeProfile` + `profiles` (run `/providers`) when you can. A legacy entry looks like:
|
|
316
314
|
|
|
@@ -9,7 +9,7 @@ Reference for the most common configuration options. For how to set these up in
|
|
|
9
9
|
| `~/.coda/config.json` | User-global settings |
|
|
10
10
|
| `~/.coda/.secrets` | API keys (dotenv format, never commit) |
|
|
11
11
|
| `~/.coda/mcp.json` | Global MCP server definitions |
|
|
12
|
-
| `<project>/.coda/config.json` | Project-level
|
|
12
|
+
| `<project>/.coda/config.json` | Project-level settings. Most values override user config; permission rules accumulate and the starting mode can only become more restrictive. |
|
|
13
13
|
| `<project>/.coda/mcp.json` | Project-level MCP servers |
|
|
14
14
|
|
|
15
15
|
## activeProfile and profiles
|
|
@@ -32,7 +32,7 @@ Each profile has a `provider` type that determines its shape:
|
|
|
32
32
|
"work": {
|
|
33
33
|
"provider": "glob-ai",
|
|
34
34
|
"label": "Globant Clients",
|
|
35
|
-
"instance": "clients", //
|
|
35
|
+
"instance": "clients", // known preset or custom id
|
|
36
36
|
"auth": { "method": "oauth" },
|
|
37
37
|
"model": "anthropic/claude-opus-4-8",
|
|
38
38
|
"org": { "id": "org-123", "name": "My Org" }, // set by wizard after login
|
|
@@ -46,13 +46,33 @@ Each profile has a `provider` type that determines its shape:
|
|
|
46
46
|
| --- | --- |
|
|
47
47
|
| `provider` | Must be `"glob-ai"` |
|
|
48
48
|
| `label` | Human-readable name shown in the UI |
|
|
49
|
-
| `instance` |
|
|
49
|
+
| `instance` | Known presets include `"clients"`, `"corp"`, `"saas-europe"`, `"saas-us"`, and `"beta"`; custom IDs require a `baseUrl`. The normal wizard may show only the environments intended for your setup. |
|
|
50
50
|
| `auth` | Auth method: `{ "method": "oauth" }` (browser login, tokens in OS keyring) or `{ "method": "apikey", "secretRef": "ENV_VAR_NAME" }` |
|
|
51
51
|
| `model` | Default model for this profile (optional) |
|
|
52
52
|
| `org` / `project` | Selected org and project (written by wizard after login) |
|
|
53
53
|
| `favoriteModels` | Array of model IDs shown as quick-switch options |
|
|
54
54
|
| `fastModel` / `smartModel` / `deepModel` | Model IDs for the `"fast"`, `"smart"`, and `"deep"` agent shortcut tiers |
|
|
55
|
-
| `strictPin` | When `true`, never auto-heal this profile's model
|
|
55
|
+
| `strictPin` | When `true`, never auto-heal this profile's retired model. Interactive launches already ask through the model picker; this mainly keeps headless/ACP paths from selecting a recommended replacement automatically. Default `false`. |
|
|
56
|
+
|
|
57
|
+
### `glob-ai-os` profiles (custom Glob.AI OS platform gateway)
|
|
58
|
+
|
|
59
|
+
Use `glob-ai-os` when your administrator gives you a platform-gateway URL rather than one of the `glob-ai` presets:
|
|
60
|
+
|
|
61
|
+
```jsonc
|
|
62
|
+
{
|
|
63
|
+
"profiles": {
|
|
64
|
+
"my-os": {
|
|
65
|
+
"provider": "glob-ai-os",
|
|
66
|
+
"label": "My Glob.AI OS",
|
|
67
|
+
"baseUrl": "https://identity.example.com",
|
|
68
|
+
"ingestBaseUrl": "https://gateway.example.com",
|
|
69
|
+
"auth": { "method": "oauth" }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
`baseUrl` is required. `ingestBaseUrl`, `signInUrl`, organization/project selections, model, favorite models, and tier models are optional. Telemetry is available only on this platform-gateway profile type.
|
|
56
76
|
|
|
57
77
|
### `openai-compat` profiles (any OpenAI-compatible API)
|
|
58
78
|
|
|
@@ -125,13 +145,13 @@ Each entry maps a key (referenced by `provider`) to a typed config block:
|
|
|
125
145
|
| `groq` | `apiKey` | Groq SDK |
|
|
126
146
|
| `openrouter` | `apiKey` | OpenRouter SDK |
|
|
127
147
|
| `azure` | `resourceName`, `apiKey`, `apiVersion` | Azure OpenAI SDK |
|
|
128
|
-
| `vertex` | project/region config |
|
|
148
|
+
| `vertex` | project/region config | Accepted by the legacy schema, but Vertex AI cannot run yet |
|
|
129
149
|
|
|
130
150
|
Every provider entry also accepts `fastModel`, `smartModel`, `deepModel`, and a `models` map for per-model capability overrides.
|
|
131
151
|
|
|
132
152
|
Keep secrets out of `config.json` — store them in `~/.coda/.secrets` (dotenv format) and reference with `${VAR}`:
|
|
133
153
|
|
|
134
|
-
```
|
|
154
|
+
```jsonc
|
|
135
155
|
{
|
|
136
156
|
"providers": {
|
|
137
157
|
"my-api": {
|
|
@@ -160,13 +180,9 @@ Applies to Glob.AI OS / Globant OAuth sign-in. The wizard manages these; you rar
|
|
|
160
180
|
| `auth.tokenRefreshThreshold` | (built-in) | Seconds before expiry at which an access token is proactively refreshed |
|
|
161
181
|
| `auth.gamRedirectUri` | `http://localhost:XXXX/callback` | OAuth redirect URI. **Deprecated:** prefer `authDefaults` inside the provider entry |
|
|
162
182
|
|
|
163
|
-
## mcp
|
|
183
|
+
## mcp.json files
|
|
164
184
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
| Field | Description |
|
|
168
|
-
| --- | --- |
|
|
169
|
-
| `mcp.servers` | Map of server id → server entry (`command`+`args` for stdio, or `url` for http; plus optional `env`, `headers`, `timeout`, `authorizationToken`). Merged with `~/.coda/mcp.json` and `<project>/.coda/mcp.json`. |
|
|
185
|
+
Put MCP server entries in `~/.coda/mcp.json` or `<project>/.coda/mcp.json`; session overrides live under `~/.coda/sessions/<sessionId>/mcp.json`. The old inline `mcp.servers` block in `config.json` is accepted for compatibility but no longer controls runtime connections. See [Configure an MCP Server](#add-mcp-server-skill).
|
|
170
186
|
|
|
171
187
|
## bash
|
|
172
188
|
|
|
@@ -197,9 +213,9 @@ Admin-only managed-policy lockdown keys (set in a managed policy, not personal c
|
|
|
197
213
|
|
|
198
214
|
| Field | Default | Description |
|
|
199
215
|
| --- | --- | --- |
|
|
200
|
-
| `enabled` | `true` | Enable automatic pre-flight
|
|
201
|
-
| `threshold` | `0.75` | Fraction of
|
|
202
|
-
| `retainFraction` | `0.3` | Fraction of recent messages kept verbatim (0.1–0.9) |
|
|
216
|
+
| `enabled` | `true` | Enable automatic pre-flight context reduction |
|
|
217
|
+
| `threshold` | `0.75` | Fraction of the conversation budget that permits summary condensation (0.3–0.9). Large, stale tool output can start moving aside at 0.65, or at this threshold when it is lower. |
|
|
218
|
+
| `retainFraction` | `0.3` | Fraction of recent messages kept verbatim when condensation runs (0.1–0.9) |
|
|
203
219
|
|
|
204
220
|
## reasoning
|
|
205
221
|
|
|
@@ -210,7 +226,7 @@ Admin-only managed-policy lockdown keys (set in a managed policy, not personal c
|
|
|
210
226
|
|
|
211
227
|
## modelResilience
|
|
212
228
|
|
|
213
|
-
Controls
|
|
229
|
+
Controls recommendations when a configured model has been retired or renamed (see [How CODA Works](#how-it-works) › "Error recovery"). CODA finds the closest same-provider/family replacement. Interactive sessions open the model picker with that recommendation; headless runs apply it only with `CODA_MODEL_AUTOHEAL=1`, while ACP can use it for the current run. Per-profile `strictPin` opts out of automatic replacement.
|
|
214
230
|
|
|
215
231
|
| Field | Default | Description |
|
|
216
232
|
| --- | --- | --- |
|
|
@@ -247,7 +263,8 @@ Controls how CODA heals a configured model that's been retired or renamed on the
|
|
|
247
263
|
|
|
248
264
|
| Field | Description |
|
|
249
265
|
| --- | --- |
|
|
250
|
-
| `vision.model` | Model used by `examine_images`
|
|
266
|
+
| `vision.model` | Model used by `examine_images` for Glob.AI OS; Ollama can use this value or follow the main model according to `vision.useMainAgentModel` |
|
|
267
|
+
| `vision.useMainAgentModel` | For Ollama, leave unset/`true` to follow the main model while `vision.model` is still the product default; set `false` to force `vision.model` |
|
|
251
268
|
|
|
252
269
|
## webfetch
|
|
253
270
|
|
|
@@ -300,12 +317,7 @@ These exist for power users and rarely need hand-editing. Most can be reached th
|
|
|
300
317
|
| `fallback.provider` | — | Key of the fallback provider |
|
|
301
318
|
| `fallback.model` | — | Model to use on the fallback provider (optional) |
|
|
302
319
|
|
|
303
|
-
**`webSearch`** —
|
|
304
|
-
|
|
305
|
-
| Field | Default | Description |
|
|
306
|
-
| --- | --- | --- |
|
|
307
|
-
| `webSearch.provider` | `"brave"` | Search backend: `"exa"`, `"brave"`, or `"serper"` |
|
|
308
|
-
| `webSearch.apiKey` | — | API key for the chosen search backend |
|
|
320
|
+
**`webSearch`** — unused compatibility schema for alternate search backends. Leave it out of normal configs: the built-in `web_search` tool uses the active Glob.AI OS credentials instead.
|
|
309
321
|
|
|
310
322
|
**`session`** — session auto-rename behavior:
|
|
311
323
|
|
|
@@ -320,8 +332,8 @@ These exist for power users and rarely need hand-editing. Most can be reached th
|
|
|
320
332
|
| Field | Default | Description |
|
|
321
333
|
| --- | --- | --- |
|
|
322
334
|
| `composer.whileBusy.delivery` | `"queue"` | What to do with messages sent while the agent is running: `"queue"` or `"steer"` |
|
|
323
|
-
| `composer.queueSteer.enabled` | `true` | Enable queue/steer
|
|
324
|
-
| `composer.queueSteer.defaultMode` | `"later"` |
|
|
335
|
+
| `composer.queueSteer.enabled` | `true` | Enable queue/steer behavior |
|
|
336
|
+
| `composer.queueSteer.defaultMode` | `"later"` | Legacy input migrated to `whileBusy.delivery`: `"next"` → `"steer"`, `"later"` → `"queue"` |
|
|
325
337
|
|
|
326
338
|
**`acp`** — agent communication protocol:
|
|
327
339
|
|
|
@@ -329,26 +341,27 @@ These exist for power users and rarely need hand-editing. Most can be reached th
|
|
|
329
341
|
| --- | --- | --- |
|
|
330
342
|
| `acp.enabled` | `true` | Enable ACP headless mode (`coda --acp`) |
|
|
331
343
|
|
|
332
|
-
**`autoupdate`** —
|
|
344
|
+
**`autoupdate`** — background update-check behavior: `true` or `"notify"` checks and notifies; `false` disables the check. Updates are installed only when you run `/upgrade` or `coda upgrade`. Default `true`.
|
|
333
345
|
|
|
334
346
|
**`extensions`** — array of extension file paths to load at startup (e.g. `[".coda/extensions/my-tool.ts"]`).
|
|
335
347
|
|
|
336
348
|
**`reasoning`** — effort/thinking controls for reasoning-capable models.
|
|
337
349
|
|
|
338
|
-
**`telemetry`** — OpenTelemetry export
|
|
350
|
+
**`telemetry`** — OpenTelemetry export. It is available only when the active Glob.AI OS profile uses the platform gateway; the destination is derived from that authenticated profile and cannot be set in `config.json`:
|
|
339
351
|
|
|
340
352
|
| Field | Default | Description |
|
|
341
353
|
| --- | --- | --- |
|
|
342
|
-
| `telemetry.
|
|
343
|
-
| `telemetry.
|
|
344
|
-
| `telemetry.
|
|
354
|
+
| `telemetry.level` | `"basic"` on the platform gateway; `"off"` elsewhere | Consent level: `"off"`, `"basic"`, or `"full"`. You can change it under `/settings` → **Telemetry**. |
|
|
355
|
+
| `telemetry.enabled` | Legacy/raw override | Prefer `telemetry.level`. To disable export, set `level: "off"`; do not rely on `enabled: false` alone. |
|
|
356
|
+
| `telemetry.exporter` | `"otlp"` | Exporter: `"otlp"` or `"console"` |
|
|
345
357
|
| `telemetry.otlpProtocol` | `"http"` | OTLP transport: `"http"` or `"grpc"` |
|
|
346
|
-
| `telemetry.otlpUseTls` | `
|
|
347
|
-
| `telemetry.serviceName` |
|
|
348
|
-
| `telemetry.tracesEnabled` |
|
|
349
|
-
| `telemetry.metricsEnabled` |
|
|
358
|
+
| `telemetry.otlpUseTls` | `true` | Use TLS for OTLP export; credentialed cleartext export is refused |
|
|
359
|
+
| `telemetry.serviceName` | `"coda"` | `service.name` reported by the SDK |
|
|
360
|
+
| `telemetry.tracesEnabled` | unset | Advanced override; otherwise follows `telemetry.level` |
|
|
361
|
+
| `telemetry.metricsEnabled` | unset | Advanced override; otherwise follows `telemetry.level` |
|
|
362
|
+
| `telemetry.logsEnabled` | unset | Advanced override; otherwise follows `telemetry.level` |
|
|
350
363
|
|
|
351
|
-
Settings cascade in priority order: CLI flags override project config, which overrides your global config
|
|
364
|
+
Settings normally cascade in priority order: CLI flags override project config, which overrides your global config. Permission rules accumulate across layers, and a project cannot raise the starting permission mode above your user-level default. See [Configuration](#configuration).
|
|
352
365
|
|
|
353
366
|
## Referencing secrets with `${VAR}`
|
|
354
367
|
|
|
@@ -368,6 +381,7 @@ Keep keys out of `config.json` by storing them in `~/.coda/.secrets` (dotenv for
|
|
|
368
381
|
| --- | --- | --- |
|
|
369
382
|
| `LOG_LEVEL` | `info` | Log verbosity, Rust-style: a bare token sets the global floor, `service:level` overrides per service (e.g. `info,core.agent:debug`) |
|
|
370
383
|
| `CODA_HOME` | `~/.coda` | Alternative home directory for config, secrets, sessions, logs, and checkpoints |
|
|
384
|
+
| `CODA_NPM_REGISTRY` | public npm | HTTPS registry mirror used by native install and upgrade checks/downloads |
|
|
371
385
|
| `CODA_PROPOSE_POLICY` | unset | Overrides `permissions.proposePolicy` without editing config (dev/QA). A truthy value (`1`, `true`, `yes`, `on`) forces it **on**; any other set value (e.g. `0`, `false`, `off`) forces it **off** — so it can override in either direction, winning over config. Blank/unset defers to config (default on). An administrator's `disableProposePolicy` still wins over it. |
|
|
372
386
|
| `CODA_MODEL_AUTOHEAL` | unset | In a headless/batch run, set (e.g. `1`) to let CODA auto-heal a retired model to its recommended replacement instead of exiting non-zero. Interactive runs use the picker and ignore this; a `strictPin` profile is never healed. |
|
|
373
387
|
| `CODA_FETCH_BLOCKED_URLS` | unset | Comma-separated URLs/hosts/extensions the `webfetch` client backend must never fetch (e.g. `competitor.com,tracker.io,.pdf`). Merged with `webfetch.blockedUrls`. |
|
|
@@ -25,7 +25,7 @@ If you've set up more than one provider (say, two Glob.AI OS instances, or a loc
|
|
|
25
25
|
|
|
26
26
|
## Where settings live
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
Most settings cascade in priority order — project settings override user settings, and CLI flags override everything. Permission rules accumulate across scopes, and project config cannot raise the starting permission mode:
|
|
29
29
|
|
|
30
30
|
| File | What it's for |
|
|
31
31
|
| --- | --- |
|
|
@@ -45,37 +45,41 @@ Some settings can be adjusted from the settings panel. Open it from inside CODA:
|
|
|
45
45
|
/settings
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
**Permission mode** — how much CODA runs without asking is set by the session's permission mode: **read-only** (reads only), **default** (asks before risky actions), or **auto** (hands-off). Cycle it with **Ctrl+P**, or set the default with `permissions.defaultMode`. See [Permissions & Approvals](#permissions).
|
|
48
|
+
**Permission mode** — how much CODA runs without asking is set by the session's permission mode: **read-only** (reads only), **default** (asks before risky actions), or **auto** (hands-off). Cycle it with **Ctrl+P**, or set the user default with `permissions.defaultMode` in `~/.coda/config.json`. See [Permissions & Approvals](#permissions).
|
|
49
49
|
|
|
50
50
|
**Shell** — pick the **shell** CODA uses (`auto`, `bash`, `powershell`, `wsl`, or an explicit path) under **Bash Tool Preferences**. Only shells your host actually has are offered, so you can't select one that won't run (for example, `wsl` doesn't appear off Windows). If a *configured* shell isn't available on this host — say a `config.json` synced from Windows that asks for `wsl` on macOS — CODA neither fails to start nor silently runs a different shell: it falls back to a working shell and shows a banner naming what it's running instead and why, with a pointer to change it. The banner clears the moment you pick a shell that works. Press **Enter** to confirm and close, **Esc** to step back to the menu.
|
|
51
51
|
|
|
52
|
-
**Compaction** — to keep context fresh, CODA can
|
|
52
|
+
**Compaction** — to keep context fresh, CODA checks before each model call whether the conversation still fits. When reduction is needed, it can first move stale tool output aside and later condense older conversation at the configured threshold. Tune it under **Context Compaction**:
|
|
53
53
|
|
|
54
54
|
- **Scope** — apply your changes globally or to the current project (project overrides global).
|
|
55
|
-
- **Enable / disable** — turn automatic
|
|
56
|
-
- **Threshold** — how full the context can get (
|
|
55
|
+
- **Enable / disable** — turn automatic reduction on or off. With it off, you can still compact on demand with `/compact`.
|
|
56
|
+
- **Threshold** — how full the context can get before summary condensation begins. Large, stale tool output can start moving aside at **65%** of the conversation budget (or at your lower condensation threshold).
|
|
57
57
|
- **Retain fraction** — how much of the most recent conversation is kept intact when condensing; older messages are summarized.
|
|
58
58
|
|
|
59
59
|
**Chat input** — choose what happens when you send a message while CODA is already working: **Queue message** waits until the current turn finishes (default), while **Steer message** sends your message as the next input to guide the active flow. In `/settings`, this appears under **Composer**. See [Make Changes Safely](#guide-changes) for details.
|
|
60
60
|
|
|
61
61
|
**Theme** — switch the look of the UI between `classic` and `modern` under **UI Theme**.
|
|
62
62
|
|
|
63
|
+
**Autonomy** — enable or tune `/goal` and `/loop`, including goal judging and loop duration limits.
|
|
64
|
+
|
|
65
|
+
**Telemetry** — on an authenticated Glob.AI OS platform-gateway profile, choose **Off**, **Basic**, or **Full**. Basic sends operational metadata without prompt bodies; Full also permits redacted prompt text. Other provider types keep telemetry off.
|
|
66
|
+
|
|
63
67
|
## How settings cascade
|
|
64
68
|
|
|
65
69
|
When the same key is set in more than one place, the most specific wins. From lowest to highest priority:
|
|
66
70
|
|
|
67
71
|
1. **Built-in defaults** — what CODA ships with.
|
|
68
72
|
2. **`~/.coda/config.json`** — your personal, machine-wide settings.
|
|
69
|
-
3. **`<project>/.coda/config.json`** — project overrides.
|
|
73
|
+
3. **`<project>/.coda/config.json`** — project overrides, except that a project cannot raise the starting permission mode above your user-level default.
|
|
70
74
|
4. **CLI flags** — `--model`, `--profile`, `--auto-approve` (headless), and friends, for a single run.
|
|
71
75
|
|
|
72
|
-
|
|
76
|
+
A project can make the starting permission mode more restrictive for everyone who clones it, but it cannot silently raise autonomy. For a one-off headless run, `--auto-approve none|all` chooses fail-closed default mode or unattended auto mode without editing a file.
|
|
73
77
|
|
|
74
78
|
## What's safe to commit
|
|
75
79
|
|
|
76
80
|
- **Commit:** `<project>/.coda/config.json` (no secrets), `<project>/.coda/mcp.json`, `AGENTS.md`, shared skills/agents/workflows.
|
|
77
81
|
- **Never commit:** `~/.coda/.secrets` (it lives in your home directory, not the repo) and your personal `~/.coda/config.json`.
|
|
78
|
-
- **Think twice:** pinning the active `provider` or
|
|
82
|
+
- **Think twice:** pinning the active `provider` or shared permission rules affects teammates. A project `permissions.defaultMode` can tighten their starting mode, but it cannot raise autonomy above their user-level default — see [Collaborate with Your Team](#guide-collaborate).
|
|
79
83
|
|
|
80
84
|
## A minimal `config.json`
|
|
81
85
|
|
|
@@ -81,9 +81,9 @@ coda configure \
|
|
|
81
81
|
| Flag | Purpose |
|
|
82
82
|
| --- | --- |
|
|
83
83
|
| `--profile-name NAME` | Profile ID in `~/.coda/config.json` (required) |
|
|
84
|
-
| `--provider PROVIDER` | `glob-ai` \| `openai-compat` \| `ollama` (required) |
|
|
85
|
-
| `--instance INSTANCE` | glob-ai only: `clients` \| `corp` \| `saas-europe` (default: `clients`) |
|
|
86
|
-
| `--base-url URL` | Required for `openai-compat
|
|
84
|
+
| `--provider PROVIDER` | `glob-ai` \| `glob-ai-os` \| `openai-compat` \| `ollama` (required) |
|
|
85
|
+
| `--instance INSTANCE` | `glob-ai` only: `clients` \| `corp` \| `saas-europe`, or a custom name with `--base-url` (default: `clients`) |
|
|
86
|
+
| `--base-url URL` | Required for `openai-compat` and `glob-ai-os`, for a custom `glob-ai` instance, and optional for `ollama` |
|
|
87
87
|
| `--api-key KEY` | Pass key on the command line (appears in shell history — prefer `--api-key-stdin`) |
|
|
88
88
|
| `--api-key-stdin` | Read key from stdin — safe for scripts and CI |
|
|
89
89
|
| `--force` | Overwrite an existing profile and rotate its API key |
|