Skip to main content

setup-gbrain

Facilitates the setup of gbrain for coding agents, enabling seamless integration and operation of local PGLite or Supabase brains.

Install this skill

or
0/100

Security score

The setup-gbrain skill was audited on May 12, 2026 and we found 126 security issues across 5 threat categories, including 1 high-severity. Review the findings below before installing.

Categories Tested

Security Issues

medium line 31

Template literal with variable interpolation in command context

SourceSKILL.md
31```bash
medium line 264

Template literal with variable interpolation in command context

SourceSKILL.md
264```bash
medium line 360

Template literal with variable interpolation in command context

SourceSKILL.md
360```bash
medium line 394

Template literal with variable interpolation in command context

SourceSKILL.md
394echo "before relying on \`gbrain search\` for code questions in this worktree."
medium line 522

Template literal with variable interpolation in command context

SourceSKILL.md
522```bash
medium line 1198

Template literal with variable interpolation in command context

SourceSKILL.md
1198```bash
medium line 1228

Template literal with variable interpolation in command context

SourceSKILL.md
1228```bash
high line 993

Ngrok tunnel reference

SourceSKILL.md
993For users whose brain runs on another machine (Tailscale, ngrok, internal
low line 32

Access to hidden dotfiles in home directory

SourceSKILL.md
32_UPD=$(~/.claude/skills/gstack/bin/gstack-update-check 2>/dev/null || .claude/skills/gstack/bin/gstack-update-check 2>/dev/null || true)
low line 34

Access to hidden dotfiles in home directory

SourceSKILL.md
34mkdir -p ~/.gstack/sessions
low line 35

Access to hidden dotfiles in home directory

SourceSKILL.md
35touch ~/.gstack/sessions/"$PPID"
low line 36

Access to hidden dotfiles in home directory

SourceSKILL.md
36_SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ')
low line 37

Access to hidden dotfiles in home directory

SourceSKILL.md
37find ~/.gstack/sessions -mmin +120 -type f -exec rm {} + 2>/dev/null || true
low line 38

Access to hidden dotfiles in home directory

SourceSKILL.md
38_PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true")
low line 39

Access to hidden dotfiles in home directory

SourceSKILL.md
39_PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no")
low line 42

Access to hidden dotfiles in home directory

SourceSKILL.md
42_SKILL_PREFIX=$(~/.claude/skills/gstack/bin/gstack-config get skill_prefix 2>/dev/null || echo "false")
low line 46

Access to hidden dotfiles in home directory

SourceSKILL.md
46source <(~/.claude/skills/gstack/bin/gstack-repo-mode 2>/dev/null) || true
low line 49

Access to hidden dotfiles in home directory

SourceSKILL.md
49_LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "yes" || echo "no")
low line 51

Access to hidden dotfiles in home directory

SourceSKILL.md
51_TEL=$(~/.claude/skills/gstack/bin/gstack-config get telemetry 2>/dev/null || true)
low line 52

Access to hidden dotfiles in home directory

SourceSKILL.md
52_TEL_PROMPTED=$([ -f ~/.gstack/.telemetry-prompted ] && echo "yes" || echo "no")
low line 57

Access to hidden dotfiles in home directory

SourceSKILL.md
57_EXPLAIN_LEVEL=$(~/.claude/skills/gstack/bin/gstack-config get explain_level 2>/dev/null || echo "default")
low line 60

Access to hidden dotfiles in home directory

SourceSKILL.md
60_QUESTION_TUNING=$(~/.claude/skills/gstack/bin/gstack-config get question_tuning 2>/dev/null || echo "false")
low line 62

Access to hidden dotfiles in home directory

SourceSKILL.md
62mkdir -p ~/.gstack/analytics
low line 64

Access to hidden dotfiles in home directory

SourceSKILL.md
64echo '{"skill":"setup-gbrain","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skil
low line 66

Access to hidden dotfiles in home directory

SourceSKILL.md
66for _PF in $(find ~/.gstack/analytics -maxdepth 1 -name '.pending-*' 2>/dev/null); do
low line 68

Access to hidden dotfiles in home directory

SourceSKILL.md
68if [ "$_TEL" != "off" ] && [ -x "~/.claude/skills/gstack/bin/gstack-telemetry-log" ]; then
low line 69

Access to hidden dotfiles in home directory

SourceSKILL.md
69~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true
low line 75

Access to hidden dotfiles in home directory

SourceSKILL.md
75eval "$(~/.claude/skills/gstack/bin/gstack-slug 2>/dev/null)" 2>/dev/null || true
low line 81

Access to hidden dotfiles in home directory

SourceSKILL.md
81~/.claude/skills/gstack/bin/gstack-learnings-search --limit 3 2>/dev/null || true
low line 86

Access to hidden dotfiles in home directory

SourceSKILL.md
86~/.claude/skills/gstack/bin/gstack-timeline-log '{"skill":"setup-gbrain","event":"started","branch":"'"$_BRANCH"'","session":"'"$_SESSION_ID"'"}' 2>/dev/null &
low line 91

Access to hidden dotfiles in home directory

SourceSKILL.md
91_ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false")
low line 102

Access to hidden dotfiles in home directory

SourceSKILL.md
102_CHECKPOINT_MODE=$(~/.claude/skills/gstack/bin/gstack-config get checkpoint_mode 2>/dev/null || echo "explicit")
low line 103

Access to hidden dotfiles in home directory

SourceSKILL.md
103_CHECKPOINT_PUSH=$(~/.claude/skills/gstack/bin/gstack-config get checkpoint_push 2>/dev/null || echo "false")
medium line 111

Access to hidden dotfiles in home directory

SourceSKILL.md
111In plan mode, allowed because they inform the plan: `$B`, `$D`, `codex exec`/`codex review`, writes to `~/.gstack/`, writes to the plan file, and `open` for generated artifacts.
medium line 119

Access to hidden dotfiles in home directory

SourceSKILL.md
119If `SKILL_PREFIX` is `"true"`, suggest/invoke `/gstack-*` names. Disk paths stay `~/.claude/skills/gstack/[skill-name]/SKILL.md`.
medium line 121

Access to hidden dotfiles in home directory

SourceSKILL.md
121If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with
medium line 126

Access to hidden dotfiles in home directory

SourceSKILL.md
126- Missing `~/.claude/skills/gstack/.feature-prompted-continuous-checkpoint`: AskUserQuestion for Continuous checkpoint auto-commits. If accepted, run `~/.claude/skills/gstack/bin/gstack-config set che
medium line 127

Access to hidden dotfiles in home directory

SourceSKILL.md
127- Missing `~/.claude/skills/gstack/.feature-prompted-model-overlay`: inform "Model overlays are active. MODEL_OVERLAY shows the patch." Always touch marker.
medium line 140

Access to hidden dotfiles in home directory

SourceSKILL.md
140If B: run `~/.claude/skills/gstack/bin/gstack-config set explain_level terse`.
low line 144

Access to hidden dotfiles in home directory

SourceSKILL.md
144rm -f ~/.gstack/.writing-style-prompt-pending
low line 145

Access to hidden dotfiles in home directory

SourceSKILL.md
145touch ~/.gstack/.writing-style-prompted
low line 154

Access to hidden dotfiles in home directory

SourceSKILL.md
154touch ~/.gstack/.completeness-intro-seen
medium line 167

Access to hidden dotfiles in home directory

SourceSKILL.md
167If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community`
medium line 177

Access to hidden dotfiles in home directory

SourceSKILL.md
177If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous`
medium line 178

Access to hidden dotfiles in home directory

SourceSKILL.md
178If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off`
low line 182

Access to hidden dotfiles in home directory

SourceSKILL.md
182touch ~/.gstack/.telemetry-prompted
medium line 195

Access to hidden dotfiles in home directory

SourceSKILL.md
195If A: run `~/.claude/skills/gstack/bin/gstack-config set proactive true`
medium line 196

Access to hidden dotfiles in home directory

SourceSKILL.md
196If B: run `~/.claude/skills/gstack/bin/gstack-config set proactive false`
low line 200

Access to hidden dotfiles in home directory

SourceSKILL.md
200touch ~/.gstack/.proactive-prompted
medium line 241

Access to hidden dotfiles in home directory

SourceSKILL.md
241If B: run `~/.claude/skills/gstack/bin/gstack-config set routing_declined true` and say they can re-enable with `gstack-config set routing_declined false`.
medium line 245

Access to hidden dotfiles in home directory

SourceSKILL.md
245If `VENDORED_GSTACK` is `yes`, warn once via AskUserQuestion unless `~/.gstack/.vendoring-warned-$SLUG` exists:
medium line 257

Access to hidden dotfiles in home directory

SourceSKILL.md
2573. Run `~/.claude/skills/gstack/bin/gstack-team-init required` (or `optional`)
medium line 259

Access to hidden dotfiles in home directory

SourceSKILL.md
2595. Tell the user: "Done. Each developer now runs: `cd ~/.claude/skills/gstack && ./setup --team`"
low line 265

Access to hidden dotfiles in home directory

SourceSKILL.md
265eval "$(~/.claude/skills/gstack/bin/gstack-slug 2>/dev/null)" 2>/dev/null || true
low line 266

Access to hidden dotfiles in home directory

SourceSKILL.md
266touch ~/.gstack/.vendoring-warned-${SLUG:-unknown}
low line 369

Access to hidden dotfiles in home directory

SourceSKILL.md
369_BRAIN_SYNC_BIN="~/.claude/skills/gstack/bin/gstack-brain-sync"
low line 370

Access to hidden dotfiles in home directory

SourceSKILL.md
370_BRAIN_CONFIG_BIN="~/.claude/skills/gstack/bin/gstack-config"
medium line 474

Access to hidden dotfiles in home directory

SourceSKILL.md
474If A/B and `~/.gstack/.git` is missing, ask whether to run `gstack-artifacts-init`. Do not block the skill.
low line 479

Access to hidden dotfiles in home directory

SourceSKILL.md
479"~/.claude/skills/gstack/bin/gstack-brain-sync" --discover-new 2>/dev/null || true
low line 480

Access to hidden dotfiles in home directory

SourceSKILL.md
480"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
low line 523

Access to hidden dotfiles in home directory

SourceSKILL.md
523eval "$(~/.claude/skills/gstack/bin/gstack-slug 2>/dev/null)"
medium line 678

Access to hidden dotfiles in home directory

SourceSKILL.md
678Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `~/.claude/skills/gstack/bin/gstack-question-preference --check "<id>"`. `AUTO_DECID
low line 682

Access to hidden dotfiles in home directory

SourceSKILL.md
682~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"setup-gbrain","question_id":"<id>","question_summary":"<short>","category":"<approval|clarification|routing|cherry-pick|feedback-loop>","door
low line 691

Access to hidden dotfiles in home directory

SourceSKILL.md
691~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"<id>","preference":"<pref>","source":"inline-user","free_text":"<optional original words>"}'
low line 711

Access to hidden dotfiles in home directory

SourceSKILL.md
711~/.claude/skills/gstack/bin/gstack-learnings-log '{"skill":"SKILL_NAME","type":"operational","key":"SHORT_KEY","insight":"DESCRIPTION","confidence":N,"source":"observed"}'
medium line 721

Access to hidden dotfiles in home directory

SourceSKILL.md
721`~/.gstack/analytics/`, matching preamble analytics writes.
low line 728

Access to hidden dotfiles in home directory

SourceSKILL.md
728rm -f ~/.gstack/analytics/.pending-"$_SESSION_ID" 2>/dev/null || true
low line 730

Access to hidden dotfiles in home directory

SourceSKILL.md
730~/.claude/skills/gstack/bin/gstack-timeline-log '{"skill":"SKILL_NAME","event":"completed","branch":"'$(git branch --show-current 2>/dev/null || echo unknown)'","outcome":"OUTCOME","duration_s":"'"$_T
low line 733

Access to hidden dotfiles in home directory

SourceSKILL.md
733echo '{"skill":"SKILL_NAME","duration_s":"'"$_TEL_DUR"'","outcome":"OUTCOME","browse":"USED_BROWSE","session":"'"$_SESSION_ID"'","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"}' >> ~/.gstack/analytics/skill-
low line 736

Access to hidden dotfiles in home directory

SourceSKILL.md
736if [ "$_TEL" != "off" ] && [ -x ~/.claude/skills/gstack/bin/gstack-telemetry-log ]; then
low line 737

Access to hidden dotfiles in home directory

SourceSKILL.md
737~/.claude/skills/gstack/bin/gstack-telemetry-log \
medium line 747

Access to hidden dotfiles in home directory

SourceSKILL.md
747In plan mode before ExitPlanMode: if the plan file lacks `## GSTACK REVIEW REPORT`, run `~/.claude/skills/gstack/bin/gstack-review-read` and append the standard runs/status/findings table. With `NO_RE
low line 784

Access to hidden dotfiles in home directory

SourceSKILL.md
784~/.claude/skills/gstack/bin/gstack-gbrain-detect
low line 849

Access to hidden dotfiles in home directory

SourceSKILL.md
849~/.claude/skills/gstack/bin/gstack-gbrain-install
low line 869

Access to hidden dotfiles in home directory

SourceSKILL.md
869. ~/.claude/skills/gstack/bin/gstack-gbrain-lib.sh
low line 877

Access to hidden dotfiles in home directory

SourceSKILL.md
877printf '%s' "$GBRAIN_POOLER_URL" | ~/.claude/skills/gstack/bin/gstack-gbrain-supabase-verify -
medium line 890

Access to hidden dotfiles in home directory

SourceSKILL.md
890now persisted in `~/.gbrain/config.json` at mode 0600 by gbrain itself.
low line 908

Access to hidden dotfiles in home directory

SourceSKILL.md
908. ~/.claude/skills/gstack/bin/gstack-gbrain-lib.sh
low line 921

Access to hidden dotfiles in home directory

SourceSKILL.md
921orgs=$(~/.claude/skills/gstack/bin/gstack-gbrain-supabase-provision list-orgs --json)
low line 950

Access to hidden dotfiles in home directory

SourceSKILL.md
950result=$(~/.claude/skills/gstack/bin/gstack-gbrain-supabase-provision \
low line 953

Access to hidden dotfiles in home directory

SourceSKILL.md
953~/.claude/skills/gstack/bin/gstack-gbrain-supabase-provision wait "$INFLIGHT_REF" --json
low line 954

Access to hidden dotfiles in home directory

SourceSKILL.md
954pooler=$(~/.claude/skills/gstack/bin/gstack-gbrain-supabase-provision \
low line 1011

Access to hidden dotfiles in home directory

SourceSKILL.md
1011. ~/.claude/skills/gstack/bin/gstack-gbrain-lib.sh
low line 1021

Access to hidden dotfiles in home directory

SourceSKILL.md
1021~/.claude/skills/gstack/bin/gstack-gbrain-mcp-verify "$MCP_URL")
medium line 1047

Access to hidden dotfiles in home directory

SourceSKILL.md
1047resting state in `~/.claude.json` mode 0600.
medium line 1108

Access to hidden dotfiles in home directory

SourceSKILL.md
1108~10ms. The token's resting state is `~/.claude.json` (mode 0600 — Claude
low line 1147

Access to hidden dotfiles in home directory

SourceSKILL.md
1147current_tier=$(~/.claude/skills/gstack/bin/gstack-gbrain-repo-policy get)
low line 1165

Access to hidden dotfiles in home directory

SourceSKILL.md
1165~/.claude/skills/gstack/bin/gstack-gbrain-repo-policy set "$REMOTE" "$TIER"
medium line 1195

Access to hidden dotfiles in home directory

SourceSKILL.md
1195`~/.gstack-artifacts-remote.txt`. Pass `--url-form-supported` from Step 4c's
low line 1200

Access to hidden dotfiles in home directory

SourceSKILL.md
1200~/.claude/skills/gstack/bin/gstack-artifacts-init --url-form-supported "$URL_FORM"
low line 1201

Access to hidden dotfiles in home directory

SourceSKILL.md
1201~/.claude/skills/gstack/bin/gstack-config set artifacts_sync_mode artifacts-only
medium line 1219

Access to hidden dotfiles in home directory

SourceSKILL.md
1219any gbrain client. The helper creates a `git worktree` of `~/.gstack/`,
medium line 1223

Access to hidden dotfiles in home directory

SourceSKILL.md
1223Capture the database URL out of `~/.gbrain/config.json` first and pass it
medium line 1225

Access to hidden dotfiles in home directory

SourceSKILL.md
1225`~/.gbrain/config.json` mid-sync (e.g., concurrent `gbrain init` runs
low line 1232

Access to hidden dotfiles in home directory

SourceSKILL.md
1232c = json.load(open(os.path.expanduser('~/.gbrain/config.json')))
low line 1237

Access to hidden dotfiles in home directory

SourceSKILL.md
1237~/.claude/skills/gstack/bin/gstack-gbrain-source-wireup --strict \
medium line 1242

Access to hidden dotfiles in home directory

SourceSKILL.md
1242or no `~/.gstack/.git` yet) so the user sees the failure rather than silently
medium line 1262

Access to hidden dotfiles in home directory

SourceSKILL.md
1262curated `~/.gstack/` artifacts into gbrain so the retrieval surface
low line 1267

Access to hidden dotfiles in home directory

SourceSKILL.md
1267~/.claude/skills/gstack/bin/gstack-memory-ingest --probe
low line 1311

Access to hidden dotfiles in home directory

SourceSKILL.md
1311~/.claude/skills/gstack/bin/gstack-config set transcript_ingest_mode <choice>
low line 1312

Access to hidden dotfiles in home directory

SourceSKILL.md
1312~/.claude/skills/gstack/bin/gstack-gbrain-sync --full --no-brain-sync
low line 1340

Access to hidden dotfiles in home directory

SourceSKILL.md
1340- Token: stored in ~/.claude.json (do not commit; never written to CLAUDE.md)
medium line 1347

Access to hidden dotfiles in home directory

SourceSKILL.md
1347in to git in many projects). It lives only in `~/.claude.json` where
low line 1356

Access to hidden dotfiles in home directory

SourceSKILL.md
1356- Config file: ~/.gbrain/config.json (mode 0600)
low line 1383

Access to hidden dotfiles in home directory

SourceSKILL.md
1383- `~/.gstack/` curated memory (registered as `gstack-brain-<user>` source via
low line 1457

Access to hidden dotfiles in home directory

SourceSKILL.md
1457~/.claude/skills/gstack/bin/gstack-gbrain-detect 2>/dev/null || true
low line 1458

Access to hidden dotfiles in home directory

SourceSKILL.md
1458~/.claude/skills/gstack/bin/gstack-config get transcript_ingest_mode 2>/dev/null || echo "off"
low line 1459

Access to hidden dotfiles in home directory

SourceSKILL.md
1459~/.claude/skills/gstack/bin/gstack-config get artifacts_sync_mode 2>/dev/null || echo "off"
low line 1460

Access to hidden dotfiles in home directory

SourceSKILL.md
1460[ -f ~/.gstack/.gbrain-sync-state.json ] && cat ~/.gstack/.gbrain-sync-state.json || echo "{}"
medium line 1527

Access to hidden dotfiles in home directory

SourceSKILL.md
1527`ref` doesn't match the user's active `~/.gbrain/config.json` pooler URL.
medium line 1570

Access to hidden dotfiles in home directory

SourceSKILL.md
1570that holds the pooler URL long-term is `~/.gbrain/config.json`, written
medium line 1575

Access to hidden dotfiles in home directory

SourceSKILL.md
1575- **Concurrent-run lock.** At skill start, `mkdir ~/.gstack/.setup-gbrain.lock.d`
medium line 1577

Access to hidden dotfiles in home directory

SourceSKILL.md
1577is running. Wait for it, or `rm -rf ~/.gstack/.setup-gbrain.lock.d` if
low line 331

Unicode escape sequences

SourceSKILL.md
331writes `\u3103` thinking it is 管 U+7BA1, but `\u3103` is
low line 150

External URL reference

SourceSKILL.md
150If `LAKE_INTRO` is `no`: say "gstack follows the **Boil the Lake** principle — do the complete thing when AI makes marginal cost near-zero. Read more: https://garryslist.org/posts/boil-the-ocean" Offe
low line 153

External URL reference

SourceSKILL.md
153open https://garryslist.org/posts/boil-the-ocean
low line 902

External URL reference

SourceSKILL.md
902> https://supabase.com/dashboard/account/tokens — we recommend revoking
low line 925

External URL reference

SourceSKILL.md
925organizations. Create one at https://supabase.com/dashboard, then re-run
low line 943

External URL reference

SourceSKILL.md
943echo "Delete: https://supabase.com/dashboard/project/$INFLIGHT_REF"; \
low line 966

External URL reference

SourceSKILL.md
966> https://supabase.com/dashboard/account/tokens — we've already discarded
low line 973

External URL reference

SourceSKILL.md
9731. Login at https://supabase.com/dashboard
low line 1001

External URL reference

SourceSKILL.md
1001Paste your gbrain MCP URL (e.g. https://wintermute.tail554574.ts.net:3131/mcp):
low line 1005

External URL reference

SourceSKILL.md
1005a credential). Validate it starts with `https://` (require TLS for any
low line 1006

External URL reference

SourceSKILL.md
1006non-loopback host); refuse `http://` for non-localhost.
low line 1523

External URL reference

SourceSKILL.md
1523https://api.supabase.com/v1/projects)
low line 1535

External URL reference

SourceSKILL.md
1535https://api.supabase.com/v1/projects/$REF
Scanned on May 12, 2026
View Security Dashboard
Installation guide →