Troubleshooting
Common issues and how to fix them. If something here doesn’t help, open an issue on GitHub or ask in Discord .
Setup
command not found: shep
Either Shep isn’t installed, or your global npm bin isn’t on PATH.
npm i -g @shepai/cli
which shep
npm bin -g # path that should be in your PATHIf you used npx (npx @shepai/cli), there’s no globally installed binary — you have to keep using npx.
Node.js 22+ required
Update Node.js. The easiest way is nvm:
nvm install 22
nvm use 22Verify with node --version.
gh: command not found
Install GitHub CLI. See cli.github.com .
gh auth login # follow prompts
gh auth status # confirmAgent not detected (claude / cursor / gemini)
Make sure the binary is on your PATH:
which claude
which cursor
which geminiIf one of those returns “not found,” install the agent. Then re-run shep settings agent to make Shep pick it up.
Daemon
Port 4050 already in use
Another process is using the port. Either stop it or run Shep on a different port:
SHEP_PORT=4051 shep
shep ui --port 4051shep status says “not running”
Start the daemon:
shep startIf shep start errors, check the logs:
ls ~/.shep/logs
tail -n 100 ~/.shep/logs/daemon.logshep stop doesn’t actually stop it
Sometimes the process gets stuck. Force kill:
ps aux | grep shep
kill -9 <pid>Then shep start again.
Authentication
Agent says “not authenticated”
Shep doesn’t store agent credentials. The agent must work standalone first:
claude --version # or cursor / geminiIf that fails, re-authenticate the agent itself, then re-try Shep.
gh says you’re authenticated but pushes fail
Check that you’re authenticated for the right account and have push access to the repo:
gh auth status
gh repo view --json viewerPermissionIf permission is READ you can’t push. Either fork the repo or get push access.
Features
Feature stuck in “Started” phase
Usually the daemon couldn’t launch the agent. Check the feature logs:
shep feat logs <id>Look for errors like “agent not found,” “permission denied,” or “out of context.”
Agent gets stuck in a loop
Stop it and provide feedback:
shep agent stop <id>
shep feat reject <id> --feedback "the agent kept reformatting the same file — can you focus only on the controller?"
shep feat resume <id>Worktree directory missing
If you rm -rf a worktree by accident, Shep can’t recreate it. Delete the feature and start over:
shep feat del <id>The branch on the remote (if you pushed) is preserved.
”Branch already exists”
You probably already have a branch with the same name. Either delete it or use a different feature description (which generates a different slug).
git branch -D feat/your-feature-slug # locally
git push origin --delete feat/your-feature-slug # remotely if neededCI
CI never starts
Make sure your repo has GitHub Actions configured and that gh has the right permissions. Manually trigger a run from the PR to confirm.
Auto-fix loops without converging
After 3 retries (configurable), Shep pauses the feature. Read the agent’s last commit and the failing CI logs together — usually the agent is misunderstanding the error. Provide a more specific prompt:
shep feat reject <id> --feedback "the failing test is testing X — the issue is likely Y, please look at file Z"
shep feat resume <id>Analysis
Repo analysis is slow
Large repos take longer on first run. Limit scope in .shep/config.json:
{
"analysis": {
"additionalExcludes": ["**/large-folder/**", "**/generated/**"],
"maxFileSize": 524288,
"maxFiles": 5000
}
}Re-run analysis manually
Delete the cached analysis and re-run:
rm -rf .shep/analysis
shep # re-runs analysis on next startDashboard
Dashboard won’t open
shep statusIf the daemon is running, open localhost:4050 directly in your browser.
If the daemon isn’t running:
shep startDashboard loads but is blank
Hard-refresh (Cmd/Ctrl + Shift + R) to bypass cached assets. If still blank:
shep stop
shep startResetting everything
If Shep is in a state you can’t fix, nuke it:
shep stop
rm -rf ~/.shep
npm uninstall -g @shepai/cli
npm i -g @shepai/cli
shep # re-runs first-time setupWorktrees and branches not under ~/.shep/ (i.e., real branches on remote) are preserved.