Troubleshooting
This page covers the most common issues you’ll encounter and how to fix them.
Installation & Startup
Section titled “Installation & Startup””command not found: gee-code”
Section titled “”command not found: gee-code””The CLI isn’t on your PATH.
# Check if the binary existsls -la ~/.local/bin/gee-code
# Add to your shell profile (~/.zshrc or ~/.bashrc)export PATH="$HOME/.local/bin:$PATH"
# Reload your shellsource ~/.zshrcIf the binary doesn’t exist, reinstall:
curl -fsSL https://gee-desktop.s3.amazonaws.com/GeeCode/install.sh | bashPython version errors
Section titled “Python version errors”Gee-Code requires Python 3.10 or later.
# Check your versionpython3 --version
# macOS: install via Homebrewbrew install python@3.12
# Linux: use your package managersudo apt install python3.12If you have multiple Python versions, ensure python3 points to 3.10+.
Node.js missing
Section titled “Node.js missing”The MCP server layer requires Node.js 18+.
node --version
# macOSbrew install node
# Linuxcurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt install nodejsAuthentication
Section titled “Authentication””No API key found”
Section titled “”No API key found””Gee-Code resolves API keys in this order:
- Credentials store — scoped credentials (gee/team/endeavor)
- Credentials file —
~/.gee-code/credentials.json - Environment variable — e.g.,
ANTHROPIC_API_KEY - Gee backend — via your authenticated session
To fix:
# Option 1: Set an environment variableexport ANTHROPIC_API_KEY=sk-ant-your-key-here
# Option 2: Authenticate to the Gee platformgee-code auth login
# Option 3: Check what's configuredgee-code config show“401 Unauthorized” or “Invalid credentials”
Section titled ““401 Unauthorized” or “Invalid credentials””Your API key or session token is invalid or expired.
- Provider API key: Verify it in the provider’s dashboard (Anthropic Console, OpenAI Platform, etc.)
- Gee session: Re-authenticate with
gee-code auth login - Check for typos: Look for trailing spaces or missing characters in your key
- Key format: Anthropic keys start with
sk-ant-, OpenAI keys start withsk-
Credentials file permissions
Section titled “Credentials file permissions”The credentials file should have restricted permissions:
chmod 600 ~/.gee-code/credentials.jsonIf the file is corrupted, delete it and re-authenticate:
rm ~/.gee-code/credentials.jsongee-code auth loginModels & Providers
Section titled “Models & Providers””Model not found” or “Unknown model alias”
Section titled “”Model not found” or “Unknown model alias””Use /models to see all available models and their aliases.
Common aliases:
| Alias | Model |
|---|---|
claude or sonnet | Claude Sonnet 4.5 |
opus | Claude Opus 4.6 |
haiku | Claude Haiku 4.5 |
gpt-5 | GPT-5 |
gpt-4o | GPT-4o |
groq-llama | Llama via Groq |
Switch models with:
/model sonnet/model opusFor custom or full model IDs, use the complete identifier (e.g., claude-opus-4-6).
Rate limits (HTTP 429)
Section titled “Rate limits (HTTP 429)”You’ve hit the provider’s rate limit. Gee-Code retries automatically with exponential backoff (2s, 4s, 8s, up to 60s).
If you keep hitting limits:
- Switch providers —
/model gpt-5or/model groq-llama - Wait — check the error message for the reset time
- Reduce load — avoid rapid multi-turn loops on rate-limited providers
- Check your plan — some providers have tier-based rate limits
Groq and Cerebras enforce minimum intervals between requests (2s and 1s respectively). This is handled automatically.
Provider overloaded (HTTP 503/529)
Section titled “Provider overloaded (HTTP 503/529)”The AI provider is temporarily overloaded. Gee-Code retries automatically. If it persists, switch to a different provider with /model.
Tool Execution
Section titled “Tool Execution”File not found errors
Section titled “File not found errors”Gee-Code uses absolute paths internally. If a file operation fails:
# Verify the file existsls -la /path/to/file
# Check your working directorypwd
# Use /cwd to change the working directory/cwd /path/to/projectCommand timeouts
Section titled “Command timeouts”Bash commands timeout after 120 seconds by default. For long-running operations:
- The AI can increase the timeout per-command (up to 600s)
- Dev servers are automatically backgrounded
- Use
/statusto check running background jobs - Use
KillPortto stop a server on a specific port
”Command blocked: Overly broad search”
Section titled “”Command blocked: Overly broad search””Gee-Code blocks filesystem searches that target excessively broad paths (like / or ~/) to prevent system hangs. Narrow your search:
# Instead of searching everything:# find / -name "*.py"
# Target a specific directory:# find ./src -name "*.py"The Glob and Grep tools handle this automatically by skipping .git, node_modules, __pycache__, and other noise directories.
Context & Token Limits
Section titled “Context & Token Limits””Token limit exceeded” or context too large
Section titled “”Token limit exceeded” or context too large”Gee-Code manages context automatically. When context approaches the limit (~180k tokens), it compacts older messages down to ~40k tokens. Tool outputs are the first to be trimmed.
If you’re hitting limits frequently:
- Start a fresh conversation —
/clear - Be selective with context — use
/addfor specific files rather than entire directories - Use named sessions — keep different tasks in separate sessions to avoid context bloat
Large file handling
Section titled “Large file handling”Files over 100k characters are truncated when read into context. For large files:
- Read specific line ranges: the AI can use
offsetandlimitparameters - Search within files using Grep instead of reading the whole file
- Break large operations into smaller, focused tasks
MCP Server
Section titled “MCP Server”MCP server fails to start
Section titled “MCP server fails to start”The MCP server is the tool execution layer. If it fails:
# Check if the port is already in uselsof -i :8090
# Kill the existing processkill -9 <PID>If dependencies are missing, reinstall:
pip install -r requirements.txtTools unavailable in MCP context
Section titled “Tools unavailable in MCP context”Some tools are excluded from MCP for safety:
- Task / TaskOutput / TaskList / TaskCancel — prevents recursive agent spawning
- AskUserQuestion — requires terminal interaction (uses file-based IPC in MCP mode)
If a tool isn’t available, use it directly in the terminal session instead.
Skills & Agents
Section titled “Skills & Agents””Skill not found”
Section titled “”Skill not found””# List available skills/skills
# Check local skill directoriesls -la .gee/skills/ls -la ~/.gee-code/skills/If a skill exists locally but isn’t recognized, sync it:
# Validate first/validate .gee/skills/my-skill
# Then sync to server# (use SyncSkill tool or gee-code sync-skill)Skill creation limits (autonomous mode)
Section titled “Skill creation limits (autonomous mode)”Autonomous agents have skill creation limits to prevent runaway behavior:
| Limit | Default |
|---|---|
| Per activation | 1 |
| Per day | 3 |
| Total self-created | 20 |
| Max active | 5 |
| Max instruction tokens | 2,000 |
| Auto-disable after failures | 3 consecutive |
These can be adjusted in your configuration if needed.
Agent approval prompts
Section titled “Agent approval prompts”Certain actions require explicit approval, even in autonomous mode:
- Destructive git operations (force push, hard reset)
- Creating or deleting skills
- Bead plan approval
- File operations outside the working directory
Review the action in the approval prompt before accepting.
Memory & Continuity
Section titled “Memory & Continuity”Memory not persisting
Section titled “Memory not persisting”Check that the memory system is enabled:
gee-code config show# Look for: memory_enabled: trueEnable it if disabled:
gee-code config set memory_enabled trueCorrupted continuity ledger
Section titled “Corrupted continuity ledger”If your session state seems wrong or the ledger file is corrupted:
# Back up the current ledgercp .gee/continuity.md .gee/continuity.md.bak
# Delete and let it regeneraterm .gee/continuity.mdThe ledger will be recreated on the next session.
Sessions not resuming
Section titled “Sessions not resuming”Named sessions are stored per-project. To resume:
/resumeThis shows recent sessions. If a session doesn’t appear:
- Verify you’re in the correct project directory
- Check that
.gee/exists in the project root - Sessions from other projects won’t appear
Configuration
Section titled “Configuration”Config file syntax errors
Section titled “Config file syntax errors”If Gee-Code fails to start with a JSON error:
# Validate the config filepython3 -m json.tool ~/.gee-code/config.json
# If corrupted, reset to defaultsrm ~/.gee-code/config.jsonGee-Code recreates config files with defaults when they’re missing.
Project not initialized
Section titled “Project not initialized”If project-specific features aren’t working:
# Initialize the project/init
# This creates .gee/ with:# - gee.md (project guidance)# - config.json (project settings)# - continuity.md (session state)Getting More Help
Section titled “Getting More Help”If your issue isn’t covered here:
- Check the logs — Gee-Code outputs diagnostic information to the terminal
- Use
/status— shows current state, running tasks, and potential issues - File an issue — github.com/mj12ep/gee-code/issues
- Join the community — ask in the Gee community forums