brainferno-mcp-bridge 0.3.0 → 0.3.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,57 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.3.2 — 2026-09-30
4
+
5
+ - After Effects `ae_add_shape`: create a shape layer with a parametric rectangle, ellipse,
6
+ star, or polygon plus an optional fill and stroke (hex colors, stroke width, corner
7
+ roundness, star/polygon points and radii). Verified live.
8
+ - After Effects `ae_add_mask`: add a rectangle or ellipse mask to a layer in the layer's
9
+ coordinates, with mode (add/subtract/intersect/lighten/darken/difference/none), feather,
10
+ opacity, and expansion; ellipse masks use proper bezier handles. Verified live. (Solids
11
+ and text layers were already available via `ae_add_layer`.)
12
+
13
+ ## v0.3.1 — 2026-09-27
14
+
15
+ - **Codex CLI and Gemini CLI are first-class clients.** The installer registers the
16
+ server with every MCP client CLI it finds (Claude Code, Codex CLI, Gemini CLI; filter
17
+ with `--clients`), each with the env defaults that suit it. Three new env vars carry
18
+ the differences: `BRAINFERNO_MCP_DEFAULT_WAIT` (false = long tools return a jobId at
19
+ once, for Codex's 60-second tool timeout — the advertised `wait` parameter now states
20
+ the live default), `BRAINFERNO_MCP_PREVIEW` (`path` returns previews as file paths for
21
+ clients that cannot show the model images; `inline`, `both`), and
22
+ `BRAINFERNO_MCP_JOB_WAIT_SECONDS` (the default `cc_job_wait` timeout, set to 50 for
23
+ Codex so each poll returns inside its limit). Claude Code keeps exactly the old
24
+ behavior. In shared mode the installer prints per-client connection snippets — Codex
25
+ reads the bearer token from an env var, Gemini from a headers block.
26
+ - **Panel versions can no longer drift.** `npm run panels:stamp` writes the package
27
+ version into the three panel manifests and each panel's `PANEL_VERSION`, and a test
28
+ fails when a bump forgets it. v0.3.0 shipped with its panels still reporting 0.2.0
29
+ (Photoshop, After Effects/Audition) and 0.1.0 (Premiere); from this release on they
30
+ carry the package version.
31
+
32
+ Found while building a lower-third .mogrt skill end to end (Illustrator → Photoshop →
33
+ After Effects → Premiere):
34
+
35
+ - After Effects `ae_apply_effect` takes an optional `name` and renames the effect once
36
+ applied. Essential Graphics labels a control with its effect name, so a Slider Control
37
+ named `Speed` now shows as "Speed" in Premiere instead of "Slider Control".
38
+ - After Effects `ae_import_as_comp` takes optional `duration` and `frameRate`. Without them
39
+ the imported comp came in at the project default (241 s) and every layer with it.
40
+ Giving a duration also trims the layers to it, so outPoint-anchored outros land at the end.
41
+ - New After Effects tool `ae_set_comp_props`: name, duration, frameRate, width, height on an
42
+ existing comp; a shorter duration trims layers the same way.
43
+ - After Effects `ae_add_layer` (text) and `ae_set_text` take `anchor: "center" | "origin"`.
44
+ The default keeps the anchor at the text's visual centre; `origin` leaves it at [0, 0] so
45
+ position is the left baseline — what a left-justified lower third wants. (Before, text
46
+ placed by its left edge rendered half its width too far left.)
47
+ - After Effects `ae_add_layer_style` retries the Layer Styles menu command up to three times
48
+ with a short pause, reselecting the layer each time. Seen live: the command did not take
49
+ when other scripts were queued behind it and the tool failed with "menu command did not
50
+ take".
51
+ - Known limit, not fixed: Premiere `pp_set_effect_param` cannot set a .mogrt text field
52
+ (`Graphic Parameters` → text control); the UXP API rejects strings ("Illegal Parameter
53
+ type") and reads the value back as null. Numbers (sliders) work.
54
+
3
55
  ## v0.3.0 — 2026-09-05
4
56
 
5
57
  - After Effects `ae_import_as_comp`: import a layered Photoshop (.psd) or Illustrator (.ai)
package/README.md CHANGED
@@ -85,14 +85,15 @@ text layers with font/size/color, properties, move, duplicate, delete), layer st
85
85
  remove), place an image as a smart object, fill, filters (Gaussian/motion/unsharp…),
86
86
  resize, crop.
87
87
 
88
- ### After Effects — 31 tools
88
+ ### After Effects — 33 tools
89
89
  Project info and file, compositions and footage (list, create, import), import a layered
90
90
  PSD or AI file as a composition (one layer each, with PSD layer styles editable), layers of
91
- every kind (footage, solid, text, null, adjustment), keyframes with easing, expressions,
92
- effects and their parameters, layer styles (drop shadow, glows, bevel, stroke… — add, adjust,
93
- read, remove), text content/font/color/justification, markers, Essential Graphics (expose a
94
- control, export a Motion Graphics template), single-frame preview, render queue, and
95
- headless rendering through `aerender` (the UI stays free).
91
+ every kind (footage, solid, text, null, adjustment), shape layers (rectangle, ellipse, star,
92
+ polygon — with fill and stroke), masks (rectangle/ellipse, with mode, feather, opacity),
93
+ keyframes with easing, expressions, effects and their parameters, layer styles (drop shadow,
94
+ glows, bevel, stroke… — add, adjust, read, remove), text content/font/color/justification,
95
+ markers, Essential Graphics (expose a control, export a Motion Graphics template),
96
+ single-frame preview, render queue, and headless rendering through `aerender` (the UI stays free).
96
97
 
97
98
  ### Premiere Pro — 29 tools
98
99
  Project, sequences and items, a full sequence read (every track and clip with times),
@@ -144,7 +145,7 @@ The full tool table is in [Tool reference](#tool-reference).
144
145
  a name. See `docs/spikes/13-macos-live.md`.
145
146
  - The Adobe apps you want to control (2024 or newer; Premiere Pro 25.6+ for its panel).
146
147
  - [Node.js](https://nodejs.org) 20 or newer.
147
- - [Claude Code](https://claude.com/claude-code) (or another MCP client).
148
+ - An MCP client: [Claude Code](https://claude.com/claude-code), [Codex CLI](https://developers.openai.com/codex/cli), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or any other. The installer registers the server with all three CLIs it finds; see [Other MCP clients](#other-mcp-clients-codex-cli-gemini-cli-and-more) for what differs outside Claude Code.
148
149
  - Optional: [ffmpeg](https://ffmpeg.org) on your PATH for the audio tools
149
150
  (`winget install ffmpeg` / `brew install ffmpeg`). It is never bundled — the server runs the
150
151
  copy you install; see [FFmpeg licensing](#ffmpeg).
@@ -185,7 +186,7 @@ Then it: writes `~/.brainferno-mcp-bridge/config.json`, asks for your Illustrato
185
186
  chose Illustrator (paste the line Illustrator shows; it is checked on the spot), links the
186
187
  After Effects/Audition panel, sets Media Encoder's service address, opens or closes the
187
188
  firewall port, prints the Photoshop/Premiere panel steps, and offers to register the server
188
- with Claude Code. On macOS it asks one more question when both Illustrator and Illustrator
189
+ with every MCP client CLI it finds — Claude Code, Codex CLI, Gemini CLI. On macOS it asks one more question when both Illustrator and Illustrator
189
190
  (Beta) are installed — see below.
190
191
 
191
192
  Non-interactive examples (from a source checkout, replace `brainferno-mcp-bridge-install`
@@ -199,7 +200,8 @@ brainferno-mcp-bridge-install --apps ppro,ame --mode shared --yes # Premier
199
200
 
200
201
  App names: `ps ae ppro ai au ame` or `all`. Re-run the installer any time to change apps
201
202
  or mode. Other flags: `--token`, `--port`, `--host`, `--illustrator-key`, `--illustrator-url`,
202
- `--illustrator-app`, `--no-panels`, `--no-ame`, `--no-firewall`, `--no-illustrator`, `--register`.
203
+ `--illustrator-app`, `--no-panels`, `--no-ame`, `--no-firewall`, `--no-illustrator`, `--register`,
204
+ `--clients claude,codex,gemini`.
203
205
 
204
206
  #### On macOS
205
207
 
@@ -241,6 +243,36 @@ Open it once per app; it connects on its own and shows a log and a kill switch.
241
243
  In Claude Code: `/mcp` shows **brainferno** connected. Try: *"Which Adobe apps are
242
244
  connected?"* (`cc_connected_apps`), then anything from the examples above.
243
245
 
246
+ ### Other MCP clients: Codex CLI, Gemini CLI, and more
247
+
248
+ The installer registers the server with every client CLI it finds. To do it by hand
249
+ (replace the path with your install's `dist/index.js` — the installer prints the exact
250
+ line):
251
+
252
+ ```bash
253
+ codex mcp add brainferno --env BRAINFERNO_MCP_DEFAULT_WAIT=false \
254
+ --env BRAINFERNO_MCP_PREVIEW=path --env BRAINFERNO_MCP_JOB_WAIT_SECONDS=50 \
255
+ -- node "<path>/dist/index.js"
256
+ gemini mcp add -s user -e BRAINFERNO_MCP_DEFAULT_WAIT=false brainferno node "<path>/dist/index.js"
257
+ ```
258
+
259
+ The env vars adapt the server to each client — Claude Code runs without them:
260
+
261
+ - **Codex CLI kills any tool call at 60 seconds** (`tool_timeout_sec`).
262
+ `BRAINFERNO_MCP_DEFAULT_WAIT=false` makes renders, exports and pipelines return a
263
+ `jobId` immediately instead of blocking; the agent polls `cc_job_wait`, whose default
264
+ timeout `BRAINFERNO_MCP_JOB_WAIT_SECONDS=50` keeps each poll inside Codex's limit.
265
+ Alternatively raise `tool_timeout_sec` for this server in `~/.codex/config.toml`.
266
+ - **Codex cannot show the model MCP image blocks**, so `BRAINFERNO_MCP_PREVIEW=path`
267
+ returns previews as file paths (its own `view_image` tool reads them). Gemini CLI
268
+ renders images, so it keeps inline previews.
269
+
270
+ Any other MCP client works the same way: stdio `node <path>/dist/index.js`, plus whichever
271
+ of the three env vars its timeouts and image support call for. In *shared* mode the server
272
+ also speaks Streamable HTTP with a bearer token (next section); Codex takes the token from
273
+ an env var named by `bearer_token_env_var` in `~/.codex/config.toml`, Gemini from a
274
+ `headers` block in `~/.gemini/settings.json` — the installer prints both snippets.
275
+
244
276
  ### Using it from another computer
245
277
 
246
278
  In *shared* mode the server also speaks MCP over HTTP on port 7898 and refuses every
@@ -349,6 +381,9 @@ override it:
349
381
  | `BRAINFERNO_MCP_AME_WEBSERVICE` | *(auto-detect)* | Path to Media Encoder's `ame_webservice_console` |
350
382
  | `BRAINFERNO_MCP_AME_PORT` / `_AME_IDLE_MS` | *(from its ini)* / `600000` | Media Encoder service port; idle time before it is stopped |
351
383
  | `BRAINFERNO_MCP_HTTP_PORT` / `_HTTP_HOST` / `_HTTP_TOKEN` | *(off)* / `127.0.0.1` / *(none)* | Remote mode (set by the installer's *shared* choice) |
384
+ | `BRAINFERNO_MCP_DEFAULT_WAIT` | `true` | Whether long tools (renders, exports, pipelines) block when `wait` is not passed; `false` returns a jobId at once — for clients with short tool timeouts ([Codex](#other-mcp-clients-codex-cli-gemini-cli-and-more)) |
385
+ | `BRAINFERNO_MCP_PREVIEW` | `both` | Preview tools return `inline` (image only), `path` (file path only — for clients that can't show the model images), or `both` |
386
+ | `BRAINFERNO_MCP_JOB_WAIT_SECONDS` | `300` | Default `cc_job_wait` timeout; keep it below the client's own tool timeout |
352
387
  | `BRAINFERNO_MCP_LOG_LEVEL` | `info` | `error` \| `warn` \| `info` \| `debug` |
353
388
 
354
389
  ## Security
@@ -424,7 +459,9 @@ docs/ build plan, protocol, live-run notes (spikes/), Audition AP
424
459
  process and what npm actually does after a publish).
425
460
  - **Not yet**: double-click panel installs (`.ccx`/`.zxp`) so the UXP Developer
426
461
  Tool is not needed; a single signed installer; TLS for shared mode; Audition multitrack
427
- writes; Media Encoder queue control.
462
+ writes; Media Encoder queue control. The Codex CLI / Gemini CLI lanes are built and
463
+ unit-tested but not yet verified against the live CLIs — that run is
464
+ `docs/spikes/15-multi-client-lanes.md`.
428
465
  - Roadmap: `docs/BUILD_PLAN.md` (Phase 6).
429
466
 
430
467
  ## License
package/dist/config.d.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  /** Runtime configuration, read once at startup from the environment. */
2
2
  export declare const DEFAULT_ILLUSTRATOR_MCP_URL = "http://localhost:18412/v1/mcp";
3
3
  export type LogLevel = "error" | "warn" | "info" | "debug";
4
+ /**
5
+ * How preview tools return images: "both" (image block + file path, the
6
+ * default), "inline" (image block only), or "path" (file path only — for MCP
7
+ * clients that cannot show the model image content, e.g. Codex CLI).
8
+ */
9
+ export type PreviewMode = "inline" | "path" | "both";
4
10
  /** Read BRAINFERNO_MCP_X, falling back to the pre-rename ADOBE_CC_MCP_X with a one-time warning. */
5
11
  export declare function envValue(name: string): string | undefined;
6
12
  /** Settings live in ~/.brainferno-mcp-bridge; copy config.json from the pre-rename ~/.adobe-cc-mcp once. */
@@ -73,6 +79,17 @@ export interface Config {
73
79
  /** Which applications get their tools registered (installer choice; env BRAINFERNO_MCP_APPS overrides). */
74
80
  enabledApps: InstallableApp[];
75
81
  logLevel: LogLevel;
82
+ /**
83
+ * Whether long tools (renders, exports, pipelines) block until done when the
84
+ * caller does not pass `wait`. False suits clients with short tool timeouts
85
+ * (Codex CLI kills calls at 60s by default): tools return a jobId at once and
86
+ * the client polls cc_job_wait. Set per client in its MCP registration env.
87
+ */
88
+ defaultWait: boolean;
89
+ /** How preview tools return images; see {@link PreviewMode}. */
90
+ preview: PreviewMode;
91
+ /** Default cc_job_wait timeout, seconds. Keep below the client's tool timeout. */
92
+ jobWaitSeconds: number;
76
93
  }
77
94
  /** Keys the installer may write to `~/.brainferno-mcp-bridge/config.json` (mode 600). */
78
95
  /** Everything the installer can switch on or off. */
package/dist/config.js CHANGED
@@ -5,6 +5,7 @@ import { join } from "node:path";
5
5
  import { defaultHandshakePath } from "./bridge/handshake.js";
6
6
  export const DEFAULT_ILLUSTRATOR_MCP_URL = "http://localhost:18412/v1/mcp";
7
7
  const LOG_LEVELS = ["error", "warn", "info", "debug"];
8
+ const PREVIEW_MODES = ["inline", "path", "both"];
8
9
  const LEGACY_ENV_PREFIX = "ADOBE_CC_MCP_";
9
10
  const warnedLegacy = new Set();
10
11
  /** Read BRAINFERNO_MCP_X, falling back to the pre-rename ADOBE_CC_MCP_X with a one-time warning. */
@@ -127,10 +128,21 @@ function intFromEnv(name, fallback, { allowZero = false } = {}) {
127
128
  }
128
129
  return parsed;
129
130
  }
130
- function boolFromEnv(name) {
131
+ function boolFromEnv(name, fallback = false) {
131
132
  const raw = envValue(name);
133
+ if (raw === undefined || raw === "")
134
+ return fallback;
132
135
  return raw === "1" || raw === "true";
133
136
  }
137
+ function previewFromEnv() {
138
+ const raw = envValue("BRAINFERNO_MCP_PREVIEW");
139
+ if (raw === undefined || raw === "")
140
+ return "both";
141
+ if (!PREVIEW_MODES.includes(raw)) {
142
+ throw new Error(`BRAINFERNO_MCP_PREVIEW must be one of ${PREVIEW_MODES.join(", ")}, got ${raw}`);
143
+ }
144
+ return raw;
145
+ }
134
146
  function logLevelFromEnv() {
135
147
  const raw = envValue("BRAINFERNO_MCP_LOG_LEVEL");
136
148
  if (raw === undefined || raw === "")
@@ -170,6 +182,9 @@ export function loadConfig() {
170
182
  httpToken: envValue("BRAINFERNO_MCP_HTTP_TOKEN") ?? file.httpToken ?? "",
171
183
  enabledApps: parseApps(envValue("BRAINFERNO_MCP_APPS"), file.enabledApps ?? INSTALLABLE_APPS),
172
184
  logLevel: logLevelFromEnv(),
185
+ defaultWait: boolFromEnv("BRAINFERNO_MCP_DEFAULT_WAIT", true),
186
+ preview: previewFromEnv(),
187
+ jobWaitSeconds: intFromEnv("BRAINFERNO_MCP_JOB_WAIT_SECONDS", 300),
173
188
  };
174
189
  }
175
190
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,11 @@ import { basename, dirname, join, resolve } from "node:path";
6
6
  import { createInterface } from "node:readline/promises";
7
7
  import { fileURLToPath } from "node:url";
8
8
  import { DEFAULT_ILLUSTRATOR_MCP_URL, migrateLegacyUserDir, readUserConfig, userConfigPath } from "../config.js";
9
- import { AME_INI_SEED, APP_CHOICES, DEFAULT_HTTP_PORT, appsNeed, checkIllustratorKey, detectInstalledApps, extractIllustratorKey, extractIllustratorUrl, finderCopyScript, findIllustratorApps, firewallCommands, lanAddresses, mcpAddCommands, mergeUserConfig, pickApps, platformPaths, rewriteAmeIni } from "./lib.js";
9
+ import { AME_INI_SEED, APP_CHOICES, DEFAULT_HTTP_PORT, appsNeed, checkIllustratorKey, detectInstalledApps, extractIllustratorKey, extractIllustratorUrl, finderCopyScript, findIllustratorApps, firewallCommands, lanAddresses, mergeUserConfig, parseClients, pickApps, platformPaths, registrationPlans, rewriteAmeIni } from "./lib.js";
10
10
  /**
11
11
  * Interactive installer:
12
12
  * node dist/install/cli.js [--apps ps,ae,ppro,ai,au,ame|all] [--mode local|shared] [--token T] [--port N] [--yes] [--no-panels] [--no-ame] [--no-firewall] [--register]
13
- * [--illustrator-key K|"claude mcp add … line"] [--illustrator-url U] [--no-illustrator]
13
+ * [--clients claude,codex,gemini] [--illustrator-key K|"claude mcp add … line"] [--illustrator-url U] [--no-illustrator]
14
14
  *
15
15
  * Asks one question — "only this computer" or "shared on my network" — and
16
16
  * sets every switch that depends on it: the remote MCP listener + token, the
@@ -35,7 +35,7 @@ for (let i = 2; i < process.argv.length; i++) {
35
35
  const [k, v] = a.slice(2).split("=", 2);
36
36
  if (v !== undefined)
37
37
  args.set(k, v);
38
- else if (process.argv[i + 1] && !process.argv[i + 1].startsWith("--") && ["mode", "token", "port", "host", "illustrator-key", "illustrator-url", "apps"].includes(k))
38
+ else if (process.argv[i + 1] && !process.argv[i + 1].startsWith("--") && ["mode", "token", "port", "host", "illustrator-key", "illustrator-url", "apps", "clients"].includes(k))
39
39
  args.set(k, process.argv[++i]);
40
40
  else
41
41
  args.set(k, true);
@@ -59,8 +59,8 @@ function run(cmd, opts = {}) {
59
59
  const r = spawnSync("powershell", ["-NoProfile", "-Command", `$p = Start-Process -FilePath powershell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File "${ps}"' -Verb RunAs -Wait -PassThru; exit $p.ExitCode`], { encoding: "utf8" });
60
60
  return { code: r.status ?? 1, out: (r.stdout ?? "") + (r.stderr ?? "") };
61
61
  }
62
- // `claude` is a shell shim on Windows; run it through the shell as one string. Everything else is a real exe.
63
- const viaShell = process.platform === "win32" && cmd[0] === "claude";
62
+ // The MCP client CLIs are shell shims on Windows; run them through the shell as one string. Everything else is a real exe.
63
+ const viaShell = process.platform === "win32" && ["claude", "codex", "gemini"].includes(cmd[0]);
64
64
  const r = viaShell
65
65
  ? spawnSync(cmd.map((c) => (/\s/.test(c) ? `"${c}"` : c)).join(" "), { encoding: "utf8", shell: true })
66
66
  : spawnSync(cmd[0], cmd.slice(1), { encoding: "utf8" });
@@ -327,33 +327,52 @@ async function main() {
327
327
  if (apps.includes("after_effects") || apps.includes("audition"))
328
328
  say(` ${[apps.includes("after_effects") ? "After Effects" : "", apps.includes("audition") ? "Audition" : ""].filter(Boolean).join(" / ")}: Window → Extensions → Brainferno MCP Bridge.`);
329
329
  }
330
- // ---- 7. register with Claude Code ---------------------------------------
331
- const cmds = mcpAddCommands({ mode, distIndex, port: next.httpPort ?? port, token: next.httpToken ?? "", addresses: lanAddresses() });
330
+ // ---- 7. register with MCP clients (Claude Code, Codex CLI, Gemini CLI) ---
331
+ const plans = registrationPlans({
332
+ mode,
333
+ distIndex,
334
+ port: next.httpPort ?? port,
335
+ token: next.httpToken ?? "",
336
+ addresses: lanAddresses(),
337
+ ...(str("clients") !== undefined ? { clients: parseClients(str("clients")) } : {}),
338
+ });
332
339
  say("");
333
- say("Claude Code on this computer:");
334
- say(` ${cmds.local}`);
335
- const wantRegister = flag("register") || (!flag("yes") && (await ask("Run that now? (y/n)", "y")).toLowerCase().startsWith("y"));
340
+ say("MCP clients on this computer:");
341
+ const detectedClients = [];
342
+ for (const p of plans) {
343
+ const found = run(p.probe).code === 0;
344
+ if (found)
345
+ detectedClients.push(p);
346
+ say(` ${p.label}${found ? "" : " (not found — run this yourself if you install it)"}:`);
347
+ say(` ${p.addLine}`);
348
+ }
349
+ const wantRegister = detectedClients.length > 0 && (flag("register") || (!flag("yes") && (await ask(`Register with ${detectedClients.map((p) => p.label).join(", ")} now? (y/n)`, "y")).toLowerCase().startsWith("y")));
336
350
  if (wantRegister) {
337
- // Replace our own entry, and retire the pre-rename alias in both scopes.
338
- for (const scope of ["user", "local"]) {
339
- run(["claude", "mcp", "remove", "--scope", scope, "brainferno"]);
340
- run(["claude", "mcp", "remove", "--scope", scope, "adobe-cc"]);
351
+ for (const p of detectedClients) {
352
+ // Replace our own entry, and retire stale or pre-rename names; removal failures are fine.
353
+ for (const r of p.removals)
354
+ run(r);
355
+ const res = run(p.add);
356
+ if (res.code === 0)
357
+ ok(`${p.label}: registered as 'brainferno'`);
358
+ else
359
+ warn(`${p.label}: registration failed (${res.out.trim().split("\n")[0] ?? ""}) — run the line above yourself`);
341
360
  }
342
- const r2 = run(["claude", "mcp", "add", "--scope", "user", "brainferno", "--", "node", distIndex]);
343
- if (r2.code === 0)
344
- ok("registered as 'brainferno' (user scope)");
345
- else
346
- warn(`claude mcp add failed: ${r2.out.trim().split("\n")[0] ?? ""} — run the line above yourself`);
347
361
  }
348
362
  if (mode === "shared") {
349
363
  say("");
350
364
  say(`Other computers (this machine is "${hostname()}"; the token is in ${userConfigPath()}):`);
351
- for (const c of cmds.remote)
352
- say(` ${c}`);
365
+ for (const p of plans) {
366
+ if (p.remoteLines.length === 0)
367
+ continue;
368
+ say(` ${p.label}:`);
369
+ for (const line of p.remoteLines)
370
+ say(` ${line}`);
371
+ }
353
372
  say(" The wire is plain HTTP: use it on a trusted LAN, a VPN, or Tailscale.");
354
373
  }
355
374
  say("");
356
- say("Done. Start or restart the server (in Claude Code: /mcp → brainferno → reconnect) to apply.");
375
+ say("Done. Restart the server to apply (Claude Code: /mcp → brainferno → reconnect; Codex/Gemini: start a new session).");
357
376
  rl.close();
358
377
  }
359
378
  main().catch((e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"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"}
@@ -99,3 +99,38 @@ export declare function mcpAddCommands(o: {
99
99
  local: string;
100
100
  remote: string[];
101
101
  };
102
+ export type McpClient = "claude" | "codex" | "gemini";
103
+ export declare const MCP_CLIENTS: readonly McpClient[];
104
+ export declare function parseClients(raw: string): McpClient[];
105
+ /**
106
+ * Env overrides each client's registration carries. Claude Code gets none
107
+ * (blocking waits, inline previews — today's behavior). Codex CLI kills tool
108
+ * calls at 60 seconds by default and cannot show the model MCP image blocks,
109
+ * so long tools return a jobId at once, cc_job_wait polls in 50-second slices,
110
+ * and previews come back as file paths (Codex's view_image reads them).
111
+ * Gemini CLI renders images and has a long tool timeout; only waits change.
112
+ */
113
+ export declare const CLIENT_ENV: Record<McpClient, Record<string, string>>;
114
+ export interface ClientPlan {
115
+ client: McpClient;
116
+ label: string;
117
+ /** Probe argv: exit 0 means the CLI is installed. */
118
+ probe: string[];
119
+ /** Run before `add`; failures are ignored (stale or renamed entries). */
120
+ removals: string[][];
121
+ /** Registration argv. */
122
+ add: string[];
123
+ /** The same registration as one printable line. */
124
+ addLine: string;
125
+ /** Shared mode: how another computer connects to this server (print-only). */
126
+ remoteLines: string[];
127
+ }
128
+ /** One registration plan per MCP client CLI (Claude Code, Codex CLI, Gemini CLI). */
129
+ export declare function registrationPlans(o: {
130
+ mode: InstallMode;
131
+ distIndex: string;
132
+ port: number;
133
+ token: string;
134
+ addresses: string[];
135
+ clients?: readonly McpClient[];
136
+ }): ClientPlan[];
@@ -239,4 +239,90 @@ export function mcpAddCommands(o) {
239
239
  const remote = o.mode === "shared" ? o.addresses.map((a) => `claude mcp add --scope user --transport http --header "Authorization: Bearer ${o.token}" brainferno http://${a}:${o.port}/mcp`) : [];
240
240
  return { local, remote };
241
241
  }
242
+ export const MCP_CLIENTS = ["claude", "codex", "gemini"];
243
+ export function parseClients(raw) {
244
+ const out = [];
245
+ for (const part of raw.split(/[,\s]+/).filter(Boolean)) {
246
+ const id = part.trim().toLowerCase();
247
+ if (!MCP_CLIENTS.includes(id))
248
+ throw new Error(`Unknown MCP client "${part}". Use: ${MCP_CLIENTS.join(", ")}`);
249
+ if (!out.includes(id))
250
+ out.push(id);
251
+ }
252
+ return out;
253
+ }
254
+ /**
255
+ * Env overrides each client's registration carries. Claude Code gets none
256
+ * (blocking waits, inline previews — today's behavior). Codex CLI kills tool
257
+ * calls at 60 seconds by default and cannot show the model MCP image blocks,
258
+ * so long tools return a jobId at once, cc_job_wait polls in 50-second slices,
259
+ * and previews come back as file paths (Codex's view_image reads them).
260
+ * Gemini CLI renders images and has a long tool timeout; only waits change.
261
+ */
262
+ export const CLIENT_ENV = {
263
+ claude: {},
264
+ codex: { BRAINFERNO_MCP_DEFAULT_WAIT: "false", BRAINFERNO_MCP_PREVIEW: "path", BRAINFERNO_MCP_JOB_WAIT_SECONDS: "50" },
265
+ gemini: { BRAINFERNO_MCP_DEFAULT_WAIT: "false" },
266
+ };
267
+ /** One registration plan per MCP client CLI (Claude Code, Codex CLI, Gemini CLI). */
268
+ export function registrationPlans(o) {
269
+ const chosen = o.clients ?? MCP_CLIENTS;
270
+ const plans = [];
271
+ const urls = o.addresses.map((a) => `http://${a}:${o.port}/mcp`);
272
+ if (chosen.includes("claude")) {
273
+ const cmds = mcpAddCommands(o);
274
+ plans.push({
275
+ client: "claude",
276
+ label: "Claude Code",
277
+ probe: ["claude", "--version"],
278
+ removals: ["user", "local"].flatMap((scope) => [
279
+ ["claude", "mcp", "remove", "--scope", scope, "brainferno"],
280
+ ["claude", "mcp", "remove", "--scope", scope, "adobe-cc"],
281
+ ]),
282
+ add: ["claude", "mcp", "add", "--scope", "user", "brainferno", "--", "node", o.distIndex],
283
+ addLine: cmds.local,
284
+ remoteLines: cmds.remote,
285
+ });
286
+ }
287
+ if (chosen.includes("codex")) {
288
+ const envArgs = Object.entries(CLIENT_ENV.codex).flatMap(([k, v]) => ["--env", `${k}=${v}`]);
289
+ plans.push({
290
+ client: "codex",
291
+ label: "Codex CLI",
292
+ probe: ["codex", "--version"],
293
+ removals: [["codex", "mcp", "remove", "brainferno"]],
294
+ add: ["codex", "mcp", "add", "brainferno", ...envArgs, "--", "node", o.distIndex],
295
+ addLine: `codex mcp add brainferno ${envArgs.join(" ")} -- node "${o.distIndex}"`,
296
+ // Codex reads the bearer token from an env var, not a header: point it at a TOML block.
297
+ remoteLines: o.mode === "shared"
298
+ ? [
299
+ "in ~/.codex/config.toml:",
300
+ " [mcp_servers.brainferno]",
301
+ ` url = "${urls[0] ?? ""}"`,
302
+ ...urls.slice(1).map((u) => ` # or: url = "${u}"`),
303
+ ' bearer_token_env_var = "BRAINFERNO_MCP_TOKEN"',
304
+ `then run Codex with BRAINFERNO_MCP_TOKEN=${o.token}`,
305
+ ]
306
+ : [],
307
+ });
308
+ }
309
+ if (chosen.includes("gemini")) {
310
+ const envArgs = Object.entries(CLIENT_ENV.gemini).flatMap(([k, v]) => ["-e", `${k}=${v}`]);
311
+ plans.push({
312
+ client: "gemini",
313
+ label: "Gemini CLI",
314
+ probe: ["gemini", "--version"],
315
+ removals: [["gemini", "mcp", "remove", "-s", "user", "brainferno"]],
316
+ add: ["gemini", "mcp", "add", "-s", "user", ...envArgs, "brainferno", "node", o.distIndex],
317
+ addLine: `gemini mcp add -s user ${envArgs.join(" ")} brainferno node "${o.distIndex}"`,
318
+ remoteLines: o.mode === "shared"
319
+ ? [
320
+ 'in ~/.gemini/settings.json, under "mcpServers":',
321
+ ...urls.map((u) => ` "brainferno": { "httpUrl": "${u}", "headers": { "Authorization": "Bearer ${o.token}" } }`),
322
+ ]
323
+ : [],
324
+ });
325
+ }
326
+ return plans;
327
+ }
242
328
  //# sourceMappingURL=lib.js.map