From b1e23db5b4eb2574820ca616473609fabdcbf417 Mon Sep 17 00:00:00 2001 From: pmaxhogan Date: Sun, 14 Jun 2026 15:19:48 -0500 Subject: [PATCH] fix(setup-gbrain): register gbrain MCP via direct bun on Windows to stop console-window popups On Windows, /setup-gbrain registers the gbrain MCP as `$HOME/.bun/bin/gbrain serve`. That `gbrain` is the bun-generated binstub (gbrain.exe), which re-launches the bun runtime in a NEW console, so Claude Code spawns a visible terminal window/tab for the gbrain MCP on every session. Register `bun serve` directly on Windows instead. bun then attaches to Claude Code's headless pseudo-console the same way node-based MCP servers do, so no window appears. POSIX behavior is unchanged; falls back to the binstub if the entry script isn't found. Template only; SKILL.md regenerated in the next commit. Co-Authored-By: Claude Opus 4.8 (1M context) --- setup-gbrain/SKILL.md.tmpl | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/setup-gbrain/SKILL.md.tmpl b/setup-gbrain/SKILL.md.tmpl index efc52c04c..948d9736e 100644 --- a/setup-gbrain/SKILL.md.tmpl +++ b/setup-gbrain/SKILL.md.tmpl @@ -543,7 +543,28 @@ GBRAIN_BIN=$(command -v gbrain) [ -z "$GBRAIN_BIN" ] && GBRAIN_BIN="$HOME/.bun/bin/gbrain" claude mcp remove gbrain -s user 2>/dev/null || true claude mcp remove gbrain 2>/dev/null || true -claude mcp add --scope user gbrain -- "$GBRAIN_BIN" serve + +# Windows: the bun-generated `gbrain` binstub (gbrain.exe) re-launches the bun +# runtime in a NEW console, so registering it as the MCP command pops a visible +# terminal window/tab on every Claude Code session. Registering `bun +# serve` directly lets bun attach to Claude Code's headless pseudo-console +# (the same reason node-based MCP servers don't pop a window). The entry is the +# gbrain package's `bin` (src/cli.ts), reachable through the bun global +# node_modules for both `bun install -g` and `bun link`ed clones. POSIX is +# unaffected; fall back to the binstub if the entry isn't found. +case "$(uname -s)" in + MINGW*|MSYS*|CYGWIN*) + GBRAIN_ENTRY="$HOME/.bun/install/global/node_modules/gbrain/src/cli.ts" + if [ -f "$GBRAIN_ENTRY" ] && [ -f "$HOME/.bun/bin/bun.exe" ]; then + claude mcp add --scope user gbrain -- "$HOME/.bun/bin/bun.exe" "$GBRAIN_ENTRY" serve + else + claude mcp add --scope user gbrain -- "$GBRAIN_BIN" serve + fi + ;; + *) + claude mcp add --scope user gbrain -- "$GBRAIN_BIN" serve + ;; +esac claude mcp list | grep gbrain # verify: should show "✓ Connected" ```