grove
Self-hosted code search

Search every repository in your organization.

Grove indexes your GitHub, GitLab and Bitbucket repositories and makes them searchable in milliseconds, for your engineers, their browsers and their AI assistants.

Grove search results for a query across repositoriesGrove search results for a query across repositories

Query language

Say exactly what you’re looking for.

Combine free text or regular expressions with filters for repository, path, language, revision and more. Filters show up as chips while you type, just like here.

Search syntax reference →
  • repo:payments/lang:go"retry budget"
    Exact string in every Go repo of an org
  • file:\.proto$-repo:legacymessage User
    Regex path filter, excluding a repo
  • repo:api@v2.4.0handleRefund
    Search a release tag, even if it isn’t indexed
  • type:diffrepo:apifeatureFlag
    Commits that added or removed a line
  • select:repolog4j
    Which repositories still use it?
  • context:frontenduseLegacyRouter
    A saved set of repositories

Features

Everything you need to find your way around a large codebase.

In action

A closer look.

Regex search results in one repository, filterable by languageRegex search results in one repository, filterable by language

For AI assistants

Your codebase, one tool call away.

Grove serves the Model Context Protocol at /mcp. Assistants can search code and commits, list repositories and read files using the same query syntax as the web app, and the in-app “Set me up” dialog writes the configuration for you.

  • searchcode, commits and diffs, with every filter
  • list_reposthe indexed repositories
  • get_filea file’s full content
Connect an assistant →
.mcp.json
{
  "mcpServers": {
    "grove": {
      "type": "http",
      "url": "https://grove.example.com/mcp",
      "headers": {
        "Authorization": "Bearer grove_…"
      }
    }
  }
}

Browser extension

Code navigation on your code host.

Ctrl/⌘+click any identifier on a GitHub, GitLab or Bitbucket file page to see its definition and references from Grove, without leaving the page. Typegrove in the address bar to jump to any repository.

Install the extension →
The Grove extension panel listing references of a symbol on a code host file pageThe Grove extension panel listing references of a symbol on a code host file page
The extension settings popup with server URL, API key and shortcutsThe extension settings popup with server URL, API key and shortcuts

Deployment

One container. Your network.

Grove runs as a single process with an embedded web app. Point it at a data directory, connect your code hosts in the settings, and it clones, indexes and keeps everything up to date on its own.

Deployment guide →
.env
DATA_DIR=/data
SECRET_KEY=…            # openssl rand -base64 32
PUBLIC_URL=https://grove.example.com
OIDC_PROVIDER_URL=https://accounts.google.com
OIDC_CLIENT_ID=…
OIDC_CLIENT_SECRET=…

Want Grove for your team?

Tell us about your setup and we’ll help you get it running.