dev-tools 5 min read

Sourcebot – Self-Hosted Codebase Search and Navigation

Sourcebot is an open-source, self-hosted tool that gives teams natural-language code search, navigation, and Q&A across their entire codebase — deployable via Docker in minutes.

By
Share: X in
Sourcebot product thumbnail

TL;DR

TL;DR: Sourcebot is an open-source, self-hosted code intelligence platform that lets you ask natural-language questions about your codebase, search across repos and branches, and navigate code with IDE-level goto-definition and find-references — all deployed via Docker in minutes.

Source and Accuracy Notes

⚠️ This section is MANDATORY. All links must be verified from actual source, not guessed.

What Is Sourcebot?

Sourcebot is a self-hosted tool that helps humans and agents search, navigate, and understand complex enterprise codebases. It indexes your repositories locally and provides two primary interfaces:

  1. Ask Sourcebot — ask natural-language questions about your codebase and get answers grounded with inline code citations
  2. Code Search — search across all repos and branches with regex, boolean logic, repo/language filters, and syntax highlighting

Sourcebot supports GitHub, GitLab, and other Git hosts via configurable connections. A public demo is available at app.sourcebot.dev so you can try it before self-hosting.

Setup Workflow

Prerequisites

  • Docker and Docker Compose
  • A Linux/macOS host (or any system that runs Docker)
  • GitHub personal access token (for private repo access)

Step 1: Download Docker Compose file

curl -o docker-compose.yml https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/docker-compose.yml

Step 2: Create configuration file

In the same directory as docker-compose.yml, create a config.json file:

echo '{
    "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
    "connections": {
        "starter-connection": {
            "type": "github",
            "repos": [
                "sourcebot-dev/sourcebot"
            ]
        }
    }
}' > config.json

The configuration file defines which repositories to index, language model providers, and authentication settings. See the official config docs for the full schema.

Step 3: Start Sourcebot

docker compose up

Step 4: Access the UI

Open http://localhost:3000 after the containers start. You will see the Ask Sourcebot interface and code search ready to use.

Deeper Analysis

Architecture

Sourcebot runs entirely on your own infrastructure. It consists of:

  • Web UI — React frontend for asking questions and browsing code
  • Backend API — handles search, code navigation, and LLM integration
  • Indexer — crawls repositories via the configured connections and builds a searchable index
  • LLM integration — connects to OpenAI, Anthropic, or local models for the Ask Sourcebot feature

Connection types

Beyond the GitHub connection shown in the quick-start, Sourcebot supports additional connection types for enterprise codebases. The config schema (schemas/v3/index.json) defines the supported connection types and their options.

Code navigation

Sourcebot provides IDE-level navigation:

  • Goto definition — jump to where a symbol is defined across all indexed repos
  • Find references — locate every usage of a symbol

This works across repos and branches, which is harder to achieve with traditional IDE setups that are scoped to a single repository.

Telemetry

Sourcebot collects anonymous usage data by default. Disable it by setting SOURCEBOT_TELEMENTRY_DISABLED=true in your environment or SOURCEBOT_TELEMETRY_DISABLED=true in the docker-compose environment section.

Practical Evaluation Checklist

  • [ ] Clone and run via Docker Compose on a local machine
  • [ ] Connect one private GitHub repo using a personal access token
  • [ ] Ask a natural-language question via Ask Sourcebot
  • [ ] Run a regex search across multiple branches
  • [ ] Test goto-definition across two different repos
  • [ ] Verify telemetry can be disabled
  • [ ] Check resource usage with 5+ indexed repos

Security Notes

  • All code stays on your infrastructure — no data leaves your network
  • GitHub tokens are stored in the docker-compose.yml secrets section, not in the config file
  • Anonymous telemetry can be disabled; no sensitive code content is collected
  • The fair-source license means the source is open but the usage terms are defined by the project

FAQ

Q: Does Sourcebot work with GitLab or Bitbucket? A: The quick-start config shown in the README uses GitHub as the example connection type. Check the official config docs for the full list of supported connection types.

Q: What models does Ask Sourcebot use? A: Ask Sourcebot integrates with OpenAI and Anthropic models (and compatible providers). The model is configured in the config.json file under the LLM provider section.

Q: How does it compare to GitHub Copilot Workspace or Cursor? A: Sourcebot is self-hosted and focused purely on code search and navigation. It does not provide inline code completion or IDE integration — it is a web-based interface for exploring and questioning an existing codebase.

Q: Is there a hosted/cloud version? A: There is no officially hosted cloud version. Sourcebot is designed to be self-hosted only, which is why it qualifies as a dev-tool for runany.dev’s coverage scope.

Q: How many repos can it index? A: Performance depends on your Docker host resources. The public demo at app.sourcebot.dev runs the Sourcebot team’s own deployment. For large-scale enterprise use, the project recommends allocating sufficient CPU and memory to the Docker containers.

Conclusion

Sourcebot fills a specific gap in the self-hosted dev-tool landscape: a web-based, team-accessible interface for codebase-wide search and natural-language Q&A that runs entirely on your own infrastructure. With a Docker Compose deployment, sub-5-minute setup, and no cloud dependency, it is a practical option for teams that want GitHub Copilot-style code intelligence without sending code to third parties. The fair-source license keeps the code open while allowing the maintainers to define usage terms.

Try the public demo at app.sourcebot.dev before committing to a self-hosted deployment.