Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Mit Google anmelden, um Bewertungen zu schreiben.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

github-twin

von ChristopherDavenportVersion 0.0.17i★ 0iLäuft auf deinem Computer
Name in der Registryio.github.ChristopherDavenport/github-twin

So installierst du es

What it does

Personal RAG over your GitHub history (commits, code, reviews), served to Claude Code over MCP.

  • Connects Läuft auf deinem Computer
  • Account or key Needs GITHUB_TOKEN, ANTHROPIC_API_KEY, GEMINI_API_KEY
  • Category Entwicklertools

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

3/3 Prüfungen bestanden · Läuft auf deinem Computer

Zuerst: Welche KI nutzt du?

Wähle deine App, dann erscheinen die Schritte unten.

Klappt mit Claude, aber erst etwas vorbereiten

Du brauchst einen Schlüssel von github-twin (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy

  1. Python (uv) installieren

    Nur einmal; gilt für alle Server, die Python (uv) brauchen

    Download-Seite von Python (uv) öffnen ↗

  2. Bei github-twin registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Wie du einen Schlüssel bekommst, steht unten im README des Anbieters

  3. Einstellungsdatei der Claude-Desktop-App öffnen

    SettingsDeveloperEdit Config

  4. Diese Einstellungen einfügen und speichern

    {
      "mcpServers": {
        "github-twin": {
          "command": "uvx",
          "args": [
            "github-twin"
          ],
          "env": {
            "GITHUB_TOKEN": "your-value",
            "ANTHROPIC_API_KEY": "your-value",
            "GEMINI_API_KEY": "your-value",
            "GT_PATHS__DATA_DIR": "your-value"
          }
        }
      }
    }

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  5. Claude beenden und neu öffnen

  6. Ausprobieren

    Nutze github-twin und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude sagt, dass es github-twin nutzt, oder ein Werkzeug von github-twin in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

ChatGPT kann github-twin noch nicht verbinden

github-twin läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen

Das kannst du stattdessen tun

A · Eine App nutzen, die github-twin verbinden kann

  • Du brauchst einen Schlüssel von github-twin (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
  • Du brauchst einen Schlüssel von github-twin (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
  • Du brauchst einen Schlüssel von github-twin (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
  • Du brauchst einen Schlüssel von github-twin (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)

B · Andere in Entwicklertools, die mit ChatGPT funktionieren

Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden

Klappt mit Claude Code, aber erst etwas vorbereiten

Du brauchst einen Schlüssel von github-twin (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)

  1. Python (uv) installieren

    Nur einmal; gilt für alle Server, die Python (uv) brauchen

    Download-Seite von Python (uv) öffnen ↗

  2. Bei github-twin registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Wie du einen Schlüssel bekommst, steht unten im README des Anbieters

  3. Terminal öffnen

    Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen

  4. Diesen Befehl einfügen und Enter drücken

    claude mcp add --scope user github-twin --env GITHUB_TOKEN=your-value --env ANTHROPIC_API_KEY=your-value --env GEMINI_API_KEY=your-value --env GT_PATHS__DATA_DIR=your-value -- uvx github-twin

    Ersetze „your-value“ vor dem Enter durch deinen Schlüssel

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  5. /mcp in Claude Code eingeben

    github-twin sollte in der Liste als verbunden erscheinen

  6. Ausprobieren

    Nutze github-twin und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude Code sagt, dass es github-twin nutzt, oder ein Werkzeug von github-twin in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit Cursor, aber erst etwas vorbereiten

Du brauchst einen Schlüssel von github-twin (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)

  1. Python (uv) installieren

    Nur einmal; gilt für alle Server, die Python (uv) brauchen

    Download-Seite von Python (uv) öffnen ↗

  2. Bei github-twin registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Wie du einen Schlüssel bekommst, steht unten im README des Anbieters

  3. Mit diesem Button Cursor öffnen

    In Cursor öffnen

    Cursor fragt nach einer Bestätigung; klicke Install

  4. Schlüssel eintragen

    In den Einstellungen von github-twin ist GITHUB_TOKEN, ANTHROPIC_API_KEY, GEMINI_API_KEY, GT_PATHS__DATA_DIR leer; trag deinen Schlüssel ein und speichere

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  5. KI-Chat in Cursor im Agent-Modus öffnen

  6. Ausprobieren

    Nutze github-twin und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Cursor sagt, dass es github-twin nutzt, oder ein Werkzeug von github-twin in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit VS Code, aber erst etwas vorbereiten

Du brauchst einen Schlüssel von github-twin (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)

  1. Python (uv) installieren

    Nur einmal; gilt für alle Server, die Python (uv) brauchen

    Download-Seite von Python (uv) öffnen ↗

  2. Bei github-twin registrieren und Schlüssel erstellen

    Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.

    Wie du einen Schlüssel bekommst, steht unten im README des Anbieters

  3. Mit diesem Button VS Code öffnen

    In VS Code öffnen

    VS Code fragt nach einer Bestätigung; klicke Install

  4. Schlüssel eintragen

    In den Einstellungen von github-twin ist GITHUB_TOKEN, ANTHROPIC_API_KEY, GEMINI_API_KEY, GT_PATHS__DATA_DIR leer; trag deinen Schlüssel ein und speichere

    Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem

  5. KI-Chat in VS Code im Agent-Modus öffnen

  6. Ausprobieren

    Nutze github-twin und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn VS Code sagt, dass es github-twin nutzt, oder ein Werkzeug von github-twin in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach

Alle Apps mit MCP ansehen →

JSON-Einstellungen stehen unten unter „Für Entwickler“

Hängst du fest? Frag Leute, die github-twin nutzen💬 Diskussion →
Für Entwickler: Terminal-Befehle und JSON-Einstellungen

Auf deinem Computer installiert

Claude Code

claude mcp add --scope user github-twin --env GITHUB_TOKEN=your-value --env ANTHROPIC_API_KEY=your-value --env GEMINI_API_KEY=your-value --env GT_PATHS__DATA_DIR=your-value -- uvx github-twin

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "github-twin": {
      "command": "uvx",
      "args": [
        "github-twin"
      ],
      "env": {
        "GITHUB_TOKEN": "your-value",
        "ANTHROPIC_API_KEY": "your-value",
        "GEMINI_API_KEY": "your-value",
        "GT_PATHS__DATA_DIR": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "github-twin": {
      "command": "uvx",
      "args": [
        "github-twin"
      ],
      "env": {
        "GITHUB_TOKEN": "your-value",
        "ANTHROPIC_API_KEY": "your-value",
        "GEMINI_API_KEY": "your-value",
        "GT_PATHS__DATA_DIR": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "github-twin": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "github-twin"
      ],
      "env": {
        "GITHUB_TOKEN": "your-value",
        "ANTHROPIC_API_KEY": "your-value",
        "GEMINI_API_KEY": "your-value",
        "GT_PATHS__DATA_DIR": "your-value"
      }
    }
  }
}

Werte, die du selbst einträgst

  • GITHUB_TOKEN geheim env
    GitHub personal access token. Optional: github-twin can also pick the token up from `gh auth token` or from its own OAuth device-flow login (`gt auth login`).
  • ANTHROPIC_API_KEY geheim env
    Optional. Enables the Claude backend for `gt summarize`, `gt distill`, and `gt eval`. Defaults to local Ollama when unset.
  • GEMINI_API_KEY geheim env
    Optional. Enables the Gemini backend for embedding and the LLM seam. Vertex AI ADC via `GT_GEMINI_PROJECT` is also supported.
  • GT_PATHS__DATA_DIR env
    Optional. Override the on-disk data directory holding the SQLite index, embeddings, and cached GitHub responses. Defaults to `$XDG_DATA_HOME/github-twin`.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Auf einen Blick

Downloads pro Wochei
38/Wo.
Verbindung
Läuft auf deinem Computer
Neueste Versioni
0.0.17
In der Registry veröffentlichti
30. Mai 2026
Code zuletzt geänderti
2. Juli 2026
Entwickler
ChristopherDavenport
Pakete
pypi: github-twin
Registry-Status
Aktiv

Welche Apps ihn nutzen können

Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.

Laufen auf deinem Computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

Alle Apps, mit Vor- und Nachteilen →

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 12. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto ChristopherDavenport bestätigt, dem das Repo gehört

  • ✓ Bestanden

    Wird noch gepflegt

    Code zuletzt geändert: vor 4 Monaten

  • ✓ Bestanden

    Hat eine Lizenz

    Nutzt MIT

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Diskussion

Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.

Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.

Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.

Mit Google anmelden, um zu posten

Nutzerbewertungen

Noch keine Bewertungen

Mit Google anmelden, um zu bewerten

Im Vergleich mit anderen in Entwicklertoolsi

  • Mehr Sterne als 0 % der anderen 5811 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 15 % der anderen 5811 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 5811 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist github-twin sicher?

Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: GITHUB_TOKEN, ANTHROPIC_API_KEY, GEMINI_API_KEY

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt vor 4 Monaten geändert, und die neueste Version (0.0.17) kam vor 6 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: REA, GitHub, Serena MCP: the IDE for your agent

Andere in derselben Kategorie

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

REA

Reverse engineer anything from your terminal or agent with one CLI and MCP server.

von morlutoWeit verbreitet↓ 388.706/Wo.★ 453.274Aktualisiert heute

Läuft auf deinem Computer

GitHub

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

von githubWeit verbreitet★ 34.396Aktualisiert vor 9 Tagen

Computer oder Cloud

Serena MCP: the IDE for your agent

A powerful toolkit for coding, providing semantic retrieval and editing capabilities.

von oraiosWeit verbreitet↓ 35.170/Wo.★ 31.309Aktualisiert vor 6 Monaten

Läuft auf deinem Computer

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

github-twin

You reviewed a permission check six months ago. Claude doesn't remember

it. github-twin does — it indexes your commits and review comments,

and surfaces them as retrieval hits whenever an agent writes or reviews

new code in your style.

Try it now from Claude Code — drop this into ~/.claude.json and reload:

{

"mcpServers": { "github-twin": { "command": "uvx", "args": ["github-twin", "serve"] } } }

Your code stays on your box. Embeddings are computed locally

(Ollama or sentence-transformers); only the LLM seam (gt summarize,

gt distill, gt eval) optionally calls a hosted provider, and even

that's swappable to local Ollama. The gemini embedder is the one

exception — opt-in only.


A personal RAG over your GitHub history, served to Claude Code (or any MCP client) as a stdio server. Two scopes, one codebase:

  • User mode — index your own commits + review comments. Surfaces your past code as style examples and your past comments as review hints when an agent is writing or reviewing new code.
  • Org mode — index a whole GitHub org's files-at-HEAD, commits, and PR reviews across every member. Queries scope by repo, language, or reviewer login.

Retrieval is hybrid (BM25 + vector via RRF), AST-aware via tree-sitter for python/scala/javascript/typescript/go/rust, and contextually enriched at embed time with per-chunk headers + optional LLM-generated summaries.

Install

The fastest path is uvx — no virtualenv to manage, isolated per-tool:

# One-shot

uvx github-twin --help

Pinned version

uvx github-twin@0.1.0 --help

With sentence-transformers for the alt embedder

uvx --with 'github-twin[st]' github-twin --help

If you prefer a project-local install:

uv add github-twin            # or: pip install github-twin

gt --help

gt and github-twin are the same Typer app — use whichever fits your muscle memory.

Authenticate

Pick whichever is least friction — github-twin tries them in this order:

  1. OAuth device flow (no `gh` install needed):
   uvx github-twin auth login        # opens browser, persists token

uvx github-twin auth status # show which source is active

   Token persists in the OS keyring (macOS Keychain / Linux Secret

Service / Windows Credential Manager) or, when unavailable, a 0600 file under your data dir.

  1. Existing `gh` CLI: if you've already run gh auth login, gt picks up the token via gh auth token — nothing to do.
  2. `GITHUB_TOKEN` env var: a classic PAT works too; useful for CI / headless / docker. Required scopes: repo, read:org, user:email.

Wire into Claude Code

The MCP server runs over stdio via github-twin serve (or gt serve). Run uvx github-twin auth login once on the box that will host the server.

Option A — via the Claude Code plugin marketplace (lowest-friction):

/plugin marketplace add ChristopherDavenport/christopherdavenport-marketplace

/plugin install github-twin@christopherdavenport

This registers the MCP server entry automatically; set GT_PATHS__DATA_DIR in your environment (or in ~/.claude.json's env block for this server) to point at the DB directory.

Option B — manual wiring: add an entry to ~/.claude.json (or your mcp_servers.json):

{

"mcpServers": { "github-twin": { "command": "uvx", "args": ["github-twin", "serve"], "env": { "GT_PATHS__DATA_DIR": "/path/to/your/github-twin-data" } } } }

If you'd rather not persist a token and instead supply it inline (CI, ephemeral container), add "GITHUB_TOKEN": "ghp_..." to that env block; it acts as the lowest-priority fallback.

Restart Claude Code; the find_*, predict_review_outcome, summarize_review_patterns, and sync tools will be available.

Quickstart

Pick a directory to hold the SQLite DB, config, and ingested cache — everything per-data-dir lives under this one root:

export GT_PATHS__DATA_DIR=~/github-twin-data

uvx github-twin auth login # one-time OAuth (or set GITHUB_TOKEN)

user mode (your own GitHub history)

uvx github-twin init # discover identity via /user uvx github-twin sync # ingest + summarize + embed uvx github-twin serve # MCP server over stdio

layer an org into the SAME DB

uvx github-twin init --kind org --org http4s uvx github-twin sync

OR keep the org in its own DB by switching data dirs

GT_PATHS__DATA_DIR=~/twin-http4s \ uvx github-twin init --kind org --org http4s GT_PATHS__DATA_DIR=~/twin-http4s uvx github-twin sync

gt sync is incremental on subsequent runs.

config.toml lives next to the DB at /config.toml and is created on the first gt init --embed-backend ... call. Default is $XDG_DATA_HOME/github-twin (or ~/.local/share/github-twin) when GT_PATHS__DATA_DIR is unset.

LLM provider matrix

The retrieval surface (find_*, predict_review_outcome) always runs locally on the SQLite index — no API call. LLM calls only happen in three places:

  • gt distill — clusters review comments / commits into rules.
  • gt summarize — generates per-chunk NL summaries used by the embed-time prefix.
  • gt eval reviews / eval predictions — held-out RAG-vs-baseline scoring.

Each picks a backend by precedence Claude → Gemini → Ollama (whichever API key is set), or you can force one explicitly.

ProviderEnv varWhat it covers
Anthropic (Claude)ANTHROPIC_API_KEYDistill / summarize / eval LLM. Best quality.
Google (Gemini, API key)GEMINI_API_KEY or GOOGLE_API_KEYDistill / summarize / eval LLM. Free tier is generous.
Google (Gemini, Vertex / ADC)GT_GEMINI_PROJECT (+ optional GT_GEMINI_LOCATION, default us-central1)Same backends, but auth via gcloud auth application-default login — no key in your shell. API key wins if both are set.
Ollama (local)OLLAMA_HOST (default http://127.0.0.1:11434)Distill / summarize / eval LLM. Fully offline.

The Vertex / ADC path needs the aiplatform.googleapis.com API enabled on your project, and billing applies even for "free" Gemini models — the AI Studio free tier does not extend to Vertex. Project IDs are not secrets; the credential itself lives at ~/.config/gcloud/application_default_credentials.json and is refreshed by gcloud.

Embedder backends

We keep the embedder backend separate from the LLM backend. Choose one:

  • Default — Ollama (nomic-embed-text, 768-dim, ~50ms/chunk). Requires a running Ollama daemon. Zero cost, fully local.
  • Alternative — sentence-transformers (uv add 'github-twin[st]', pulls torch). Useful when an Ollama daemon isn't available or you want a specific HuggingFace model. Local.
  • Alternative — Gemini (gemini-embedding-001 at 3072-dim by default). Uses the google-genai dep that's already installed; auth via GEMINI_API_KEY / GOOGLE_API_KEY, or via GT_GEMINI_PROJECT
  • ADC (gcloud auth application-default login) to route through Vertex AI without managing a key. Remote — this is the only embedder that sends chunk text off-box. Pick it when you have Gemini auth but no Ollama / [st] install, and your corpus is okay to share with Google.

The embedder is a per-DB commitment — sqlite-vec bakes the vector dimension into the table at first creation. Stamp the choice into /config.toml at init time so every subsequent command picks it up:

gt init --embed-backend gemini                              # gemini-embedding-001, 3072

gt init --embed-backend gemini --embed-dim 1536 # request shorter output gt init --embed-backend sentence_transformers \ --embed-model BAAI/bge-small-en-v1.5 --embed-dim 384

Re-running with the same values is a no-op; running with different values against an existing config.toml fails loud rather than silently changing the corpus. GT_EMBED__* env vars still work for one-off overrides and CI.

A "cloud-LLM only" setup either needs an embedder process (Ollama / [st]) or has to opt into the remote Gemini embedder.

Required GitHub token scopes

When you gt init, the GH client needs:

  • repo — private repos and PR comments on them
  • user:email — verified email addresses for the user-mode identity sweep
  • read:org — org member listing and private org repo discovery

A fine-grained PAT works; classic tokens too.

Retrieval

Hybrid search by default: BM25 (SQLite FTS5) and vector similarity run in parallel, then fuse via Reciprocal Rank Fusion (k=60). The vector leg matches semantic intent; the BM25 leg catches exact identifiers (getUserById, SQLITE_OPEN_READWRITE) that vector search routinely misses. Design reference: Anthropic — Contextual Retrieval.

At embed time, each chunk gets a deterministic header prepended: # path :: symbol_name (node_kind), plus the function's leading docstring/comment when present, plus an optional LLM-generated summary (see gt summarize). The header lets vector queries land on chunks whose bodies only contain identifiers (e.g. natural-language queries against a VaultSecretEq function).

BM25 query expansion is on by default (cfg.retrieval.query_expansion = "rule"), with rule-based code-shaped synonyms applied only to the BM25 leg — embeddings already capture synonymy, so expansion never touches the vector query. Switch to "ollama" to add LLM-generated alternates on top, cached on disk per-token.

predict_review_outcome stays on pure vector retrieval because its inverse-distance vote weighting depends on calibrated L2 distance.

MCP tools

All retrieval tools accept optional repo= and author_login= filters.

ToolReturns
find_review_comments(diff_hunk, language?, repo?, author_login?, k=5)Past review comments on diffs similar to the input.
find_style_examples(query, language?, repo?, author_login?, k=5)Past code chunks matching a description.
find_code(query, language?, repo?, path_glob?, node_kind?, k=5)Source snippets from files at HEAD (org mode).
find_applicable_rules(query, language?, repo?, author_login?, k=5)Distilled code-pattern rules relevant to a coding task.
predict_review_outcome(diff_or_summary, language?, repo?, author_login?, k=20)Weighted prediction over nearest past PRs: {approved, changes_requested, commented}.
summarize_review_patterns(language?, limit=20)Distilled rules from clustered review comments (run gt distill first).
sync(since?)Incremental ingest + summarize + embed.

CLI

gt init [--kind user|org|repo] [--org N] [--repo owner/name]

gt repos # list discovered org repos gt ingest # backfill gt summarize [--limit N] [--backend ...] # LLM NL summaries per chunk gt embed

Nur der Anfang wird gezeigt; den Rest findest du im Repo