You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expected behavior
Running squad init in project folder should honor global squad when global squad is installed.
Actual behavior
Repo level squad is created
Steps to recreate:
When following the docs for personal squad, I get the following result.
Run squad init --global
Squad Status
Active squad: personal (global)
Path: /Users/<user>/Library/Application Support/squad/.squad
Reason: No repo .squad/ found; personal squad exists at global path
Repo resolution: not found
Global path: /Users/<user>/Library/Application Support/squad
Global squad: /Users/<user>/Library/Application Support/squad/.squad
cd into ~/project/repo
squad init
Result: Squad CLI creates repo squad and all template files. .squad/config.json has:
{
"version": 1
}
OS: Mac OS Tahoe 26.3
Node: v22.18.0
Npm: 10.9.3
Reacted by rodrigosilveiragrupoherval and Michael Burko
squad -v
0.9.4-insider.1
squad status
Active squad: personal (global)
Path: /Users/<user>/Library/Application Support/squad/.squad
Reason: No repo .squad/ found; personal squad exists at global path
Repo resolution: not found
Global path: /Users/<user>/Library/Application Support/squad
Global squad: /Users/<user>/Library/Application Support/squad/.squad
I also added an agent to my personal team using squad add
squad personal list
Personal Squad Agents (1):
Name Role Charter Path
────── ──── ────────────────────────────────────────
rocket lead ../Library/Application Support/squad/personal-squad/agents/rocket/charter.md
Now cd to a repo and init with personal squad
cd /project/folder
squad init
Output:
Let's build your team.
✓ .squad/casting/policy.json
✓ .squad/casting/registry.json
✓ .squad/casting/history.json
✓ .squad/config.json
✓ .squad/agents/scribe/charter.md
✓ .squad/agents/scribe/history.md
✓ .squad/agents/ralph/charter.md
✓ .squad/agents/ralph/history.md
✓ .squad/identity/now.md
✓ .squad/identity/wisdom.md
✓ .squad/ceremonies.md
✓ .squad/decisions.md
✓ .squad/team.md
✓ .squad/routing.md
✓ .copilot/skills
✓ .github/agents/squad.agent.md
✓ .squad/templates
✓ .github/workflows/squad-heartbeat.yml
✓ .github/workflows/squad-issue-assign.yml
✓ .github/workflows/squad-triage.yml
✓ .github/workflows/sync-squad-labels.yml
✓ .copilot/mcp-config.json
✓ .squad/.first-run
◆ SQUAD
📁 Team workspace
📋 Skills & ceremonies
🔧 Workflows & CI
🧠 Identity & wisdom
🤖 Copilot agent prompt
Your team is ready. Run squad to start.
✓ Personal squad detected — your personal agents will be available here.
Expected Behavior: Personal squad used. Repo squad not created.
Actual Behavior: New repo squad created even though it seems to see the personal squad is present.
Same bug on Windows + 0.9.4-insider.1 today. Adding a repro and a CLI flag that does wire it correctly, since the thread doesn't mention it yet.
Environment
OS: Windows 11
Node: 22.x
Squad: 0.9.4-insider.1 (installed via npm install -g @bradygaster/squad-cli)
Personal squad: present at %APPDATA%\squad\.squad\ (created via squad init --global, fully populated with cast)
Reproduction
cd C:\path\to\fresh\project # no prior .squad/
squad init
Output ends with the same misleading line:
✓ Personal squad detected — your personal agents will be available here.
But .squad/config.json is just:
{ "version": 1 }
No teamRoot. squad status confirms local mode: Active squad: repo … Reason: Found .squad/ in repository tree. The personal squad is not actually connected.
Workaround that actually wires teamRoot
The CLI help (squad --help) exposes a --mode remote <team-repo-path> form that the personal squad guide doesn't mention:
This is a different workaround from @PandaFoxx's manual edit + personal-squad/ subfolder rename — --mode remote works against the standard %APPDATA%\squad\.squad\ layout that squad init --global produces, with no manual edits.
Suggested fix (one of)
Fix detection: plain squad init should auto-write teamRoot when a personal squad is detected (matches the docs page wording).
Fix the message: if auto-wiring is intentionally opt-in, change the post-init line from ✓ Personal squad detected — your personal agents will be available here. to something like ℹ Personal squad detected at <path>. To connect this project, run: squad init --mode remote "<path>" — the current wording strongly implies wiring happened when it didn't.
Verified on main (v0.10.0): the else branch in packages/squad-cli/src/cli/core/init.ts (runInit()) still detects the personal squad via resolvePersonalSquadDir() but never writes teamRoot to .squad/config.json. Result: the project always stays in standalone mode; personal agents are not inherited.
Additionally, docs/src/content/docs/guide/personal-squad.md (lines 86–153, "Connect a project" / "What Just Happened?" sections) documents teamRoot being auto-written as:
Activity
[-]Bug - Personal squad fails to auto-detect[/-][+]Bug: Personal squad fails to auto-detect[/+]dat-intellis commentedon Apr 16, 2026
What version are you using? I think this is fixed in the insiders preview
ajzozakiewicz commentedon Apr 16, 2026
squad -v:0.9.1dat-intellis commentedon Apr 17, 2026
I filed a bug on this a few weeks back which has been resolved. If you switch to insiders it works.
But can't guarantee much else :D
ajzozakiewicz commentedon Apr 18, 2026
I still seem to be experiencing the bug.
I also added an agent to my personal team using
squad addNow cd to a repo and init with personal squad
Output:
Expected Behavior: Personal squad used. Repo squad not created.
Actual Behavior: New repo squad created even though it seems to see the personal squad is present.
Am I missing something here?
dat-intellis commentedon Apr 19, 2026
I think the global squad is supposed to be in squad/personal-squad
PandaFoxx commentedon May 6, 2026
I found a manual workaround. You should update
~\.squad\config.jsonto{ "version": 1, "teamRoot": "{personal squad directory}", "projectKey": null }Then change the global folder to:
~/.config/squad/personal-squad/ # Linux/macOSor
%APPDATA%/squad/personal-squad/ # Windows--
The clue is in this skill:
~\.squad\templates\skills\personal-squad\SKILL.md--
As of version 0.9.4 - you should now see
dat-intellis commentedon May 7, 2026
I suspect there might be an inconsistency between the cli expected path and the skills expected path
joniba commentedon May 17, 2026
Same bug on Windows +
0.9.4-insider.1today. Adding a repro and a CLI flag that does wire it correctly, since the thread doesn't mention it yet.Environment
0.9.4-insider.1(installed vianpm install -g @bradygaster/squad-cli)%APPDATA%\squad\.squad\(created viasquad init --global, fully populated with cast)Reproduction
cd C:\path\to\fresh\project # no prior .squad/ squad initOutput ends with the same misleading line:
But
.squad/config.jsonis just:{ "version": 1 }No
teamRoot.squad statusconfirms local mode:Active squad: repo … Reason: Found .squad/ in repository tree. The personal squad is not actually connected.Workaround that actually wires
teamRootThe CLI help (
squad --help) exposes a--mode remote <team-repo-path>form that the personal squad guide doesn't mention:After this,
config.jsoncorrectly contains:{ "version": 1, "teamRoot": "..\\..\\..\\Users\\<user>\\AppData\\Roaming\\squad", "projectKey": null }This is a different workaround from @PandaFoxx's manual edit +
personal-squad/subfolder rename —--mode remoteworks against the standard%APPDATA%\squad\.squad\layout thatsquad init --globalproduces, with no manual edits.Suggested fix (one of)
squad initshould auto-writeteamRootwhen a personal squad is detected (matches the docs page wording).✓ Personal squad detected — your personal agents will be available here.to something likeℹ Personal squad detected at <path>. To connect this project, run: squad init --mode remote "<path>"— the current wording strongly implies wiring happened when it didn't.✅ Squad initialized. .squad/config.json → teamRoot: …output that doesn't match current CLI behavior. Either update the docs to require--mode remote, or fix feat: worktree awareness, Scribe auto-commit, and decision consolidation #1.Happy to PR any of the above if it'd help.
dat-intellis commentedon Jun 5, 2026
That skill mentioned also wrongfully mentions:
Which is the path for Linux only.
According to docs in various places and the implementation the macOS path should resolve to:
dat-intellis commentedon Jun 11, 2026
BUG-2 + DOC-4 cross-reference
Verified on
main(v0.10.0): theelsebranch inpackages/squad-cli/src/cli/core/init.ts(runInit()) still detects the personal squad viaresolvePersonalSquadDir()but never writesteamRootto.squad/config.json. Result: the project always stays in standalone mode; personal agents are not inherited.Additionally,
docs/src/content/docs/guide/personal-squad.md(lines 86–153, "Connect a project" / "What Just Happened?" sections) documentsteamRootbeing auto-written as:{ "version": 1, "teamRoot": "{personal squad directory}", "projectKey": null }…which is fully inconsistent with the actual output (
{ "version": 1 }). Anyone following that guide ends up with a broken setup.Two options for resolving both:
init.tsnon-global branch to writeteamRoot(resolves BUG-2 and makes the guide accurate), orpersonal-squad.mdto document the real behaviour + manual workaround until the fix lands.The workaround (manually add
"teamRoot"to.squad/config.json) noted in this thread still applies.fix: respect SQUAD_HOME env var, implement SQUAD_PERSONAL_DIR, fix Wi…