Troubleshooting

Common issues and how to resolve them.

“Daemon not running” / “Connection refused”

The daemon isn’t running or the socket file is stale.

# Check daemon status
git-kb daemon status

# Start manually
git-kb daemon start

# If the socket file is stale, stop and restart
git-kb daemon stop
git-kb daemon start

The daemon auto-starts when needed by MCP and CLI commands, so this usually means something prevented startup. Check logs:

git-kb daemon start --log-level debug

“No documents found”

The KB is empty or you’re in the wrong directory.

# Verify you're in a KB root (should show .kb/ info)
git-kb info

# Check if documents exist
git-kb list

# If empty, initialize context
git-kb create --type context --slug context/active --title "Active Context"

GitKB discovers the KB by searching upward for a .kb/ directory. Use the GITKB_ROOT environment variable to override discovery if needed.

MCP tools not appearing in editor

The editor can’t find or connect to the MCP server.

  1. Verify config file location:

    • Claude Code: .mcp.json in project root
    • Cursor: .cursor/mcp.json in project root
    • Cline: Cline extension MCP settings
    • Windsurf: ~/.codeium/windsurf/mcp_config.json
  2. Verify the binary is on PATH:

    which git-kb
  3. Restart the editor after adding MCP configuration.

  4. Cursor note: MCP tools only appear in Agent mode, not normal chat.

  5. Test MCP locally:

    echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | git-kb mcp

Stale workspace

The workspace has old checkouts or uncommitted changes from a previous session.

# See what's in the workspace
git-kb status

# Review uncommitted changes
git-kb diff

# If changes are valuable, commit them
git-kb commit -m "Save previous work"

# If changes are stale, discard them
git-kb reset
git-kb clear

To reset a single document without affecting others:

git-kb reset tasks/my-task
git-kb clear tasks/my-task

Semantic search not working

Semantic search requires embeddings to be enabled and the daemon to be running.

  1. Enable embeddings in config:

    # .kb/config.toml
    [embeddings]
    enabled = true
  2. Restart the daemon to pick up config changes:

    git-kb daemon stop
    git-kb daemon start
  3. Check embedding state — the daemon initializes embeddings lazily on first request. The state progresses: Idle → Initializing → Ready. If it shows “Unavailable”, check logs for errors.

  4. Generate embeddings for existing documents:

    git-kb ai embed

Sync conflicts during push/pull

When two nodes modify the same document, GitKB detects the conflict during pull.

# List conflicts
git-kb conflict list

# View a specific conflict
git-kb conflict show <slug>

# Resolve — choose local, remote, or edit manually
git-kb conflict resolve <slug> --strategy local
git-kb conflict resolve <slug> --strategy remote

After resolving all conflicts, commit and push:

git-kb commit -m "Resolve sync conflicts"
git-kb push

Code intelligence returning empty results

The source files haven’t been indexed yet.

# Index a directory
git-kb code index src/

# Verify symbols were indexed
git-kb code symbols --file src/main.rs

After initial indexing, the daemon’s file watcher keeps the index current automatically (500ms debounce on file save). If the daemon isn’t running, changes won’t be re-indexed until it starts.

“Permission denied” on socket

The daemon socket at .kb/cache/gitkb.sock has incorrect permissions, or another user’s daemon owns it.

# Check socket ownership
ls -la .kb/cache/gitkb.sock

# Remove stale socket and restart
rm .kb/cache/gitkb.sock
git-kb daemon start

Each KB instance gets its own daemon and socket — make sure you’re not accidentally sharing a .kb/ directory across users.

Diagnostic commands

CommandWhat it checks
git-kb doctorConfiguration, daemon, database integrity, file store
git-kb infoKB statistics — document count, storage size, index state
git-kb daemon statusWhether the daemon is running, PID, socket path
git-kb verifyFile store integrity — detects missing or corrupt files

Run git-kb doctor first — it checks everything and reports problems with suggested fixes.

Reporting issues

If you can’t resolve an issue, open a GitHub issue with:

  1. Output of git-kb doctor
  2. Output of git-kb info
  3. Your .kb/config.toml (redact API keys)
  4. Steps to reproduce

File issues at: github.com/nicholasgasior/gitkb

Next steps