Zum Inhalt springen
claudemods

cc-pr-tracker: Der Claude Code PR-Status direkt über deinem Prompt

Eine Zeile pro GitHub-PR über dem Claude Code Prompt: Merge-Status, Review, Pflicht-Checks, Alarm bei Änderung.

Berechtigungen

  • Liest DateienKann Dateien lesen und Verzeichnisse auf deinem Rechner auflisten ($.fs.read / list / stat / exists).
  • Führt Befehle ausKann Shell-Programme auf deinem Rechner ausführen ($.process.run / spawn). Im Quellcode siehst du, welche genau.
  • Fängt Tool-Aufrufe abSieht jeden Tool-Aufruf von Claude (tool.call / tool.check) und könnte ihn blockieren oder verändern.
  • Liest deine PromptsKann sehen, was du eingibst, und den Gesprächsverlauf lesen (prompt.* / session.append / session.messages).
  • Verändert die OberflächeZeichnet in die Oberfläche von Claude Code: Leisten, Bereiche, Statustext, Toasts (ui.render / $.ui.*).
  • Fügt Befehle/Tools hinzuRegistriert neue Slash-Befehle oder Tools, die du oder Claude aufrufen können ($.command.register / $.tool.register).
  • Speichert DatenBehält Daten zwischen Sitzungen im privaten Speicher des Plugins ($.store.*).
getestet mit
v2.1.296
zuletzt getestet
erfordert
Claude Code ≥ 2.1.287
Oberflächen
über dem Prompt, Toast

In Claude Code installieren:

/plugin install cc-pr-tracker --marketplace sezaakgun/cc-pr-tracker
Alle Installationswege ↓

Was macht diese Mod?

cc-pr-tracker ist eine Community-Mod von Seza Akgün (sezaakgun), die den Claude Code PR-Status im Blick behält, während du arbeitest. Füge die URL eines GitHub-Pull-Requests ein oder lass Claude einen öffnen, und der PR bekommt eine Zeile über dem Prompt: seinen Merge-Status, die Review-Entscheidung, die Anzahl der Pflicht-Checks, die bestanden haben, fehlgeschlagen sind oder noch laufen, und den Titel. Standardmäßig wird sie jede Minute aktualisiert.

Wenn sich ein Pflicht-Check ändert oder der Merge-Status wechselt, bekommst du einen Toast, einen einsekündigen Streifen über dem Prompt und unter macOS einen Systemton. Claude erhält in seinem nächsten Turn außerdem eine kurze automatische Notiz mit dem Log-Link des fehlgeschlagenen Checks. Fährst du mit der Maus über eine Zeile, erscheinen Schaltflächen, um den PR zu öffnen, seine URL zu kopieren, ihn stummzuschalten, ein Detailfenster anzuzeigen oder die Beobachtung zu beenden. Claude kann den Status über ein Tool pr_status selbst abfragen, und /prs gibt die beobachteten PRs überall als Text aus.

Die Mod ähnelt Git-Branch über dem Prompt, das den lokalen Branch zeigt, schaut aber auf GitHub statt auf dein Arbeitsverzeichnis. Für einen einfachen „Turn fertig“-Toast siehe Fertig-Toast. Laut README des Autors ist für den vollen Funktionsumfang Claude Code 2.1.289 oder neuer nötig; ältere Versionen halten die Liste nur im Speicher.

Demo

Die Aufnahme nutzt das eigene Ersatzskript gh des Autors (docs/record/gh im Repo), das den GraphQL-Aufruf der Mod mit vorgefertigtem JSON beantwortet, sodass kein echtes GitHub-Repository abgefragt wird. Sie startet Claude Code mit geladener Mod im kleinen Demo-Projekt und fügt dann zwei PR-URLs als einen Prompt ein: acme/api#87 und acme/storefront#418. Es läuft kein Modell-Turn. Claude Code zeigt „Prompt dropped by a hook: watching acme/api#87, watching acme/storefront#418“, und über dem Prompt erscheinen zwei Zeilen, jeweils mit Repo und Nummer, blocked in Rot, approved in Grün, einer grünen Check-Zahl, einer gelben Zahl laufender Checks und dem PR-Titel.

Installation

Nutze eine beliebige Methode aus dem Installationsblock; alle installieren direkt aus dem eigenen Marketplace des Autors. Außerdem muss gh installiert und angemeldet sein (gh auth status). Um die Mod für eine Sitzung aus einem Klon auszuprobieren, führe im Repo claude --plugin-dir . aus. Mit /plugin prüfst du, ob die Mod aktiv ist.

$ install cc-pr-tracker

Erfordert Claude Code ≥ 2.1.287

Wird aus dem Marketplace des Autors installiert: sezaakgun/cc-pr-tracker

  1. 1.Eine Zeile, direkt in Claude Code

    /plugin install cc-pr-tracker --marketplace sezaakgun/cc-pr-tracker

    In eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.

  2. 2.Aus deiner Shell

    claude plugin marketplace add sezaakgun/cc-pr-tracker
    claude plugin install cc-pr-tracker@cc-pr-tracker

    Führe danach in jeder bereits geöffneten Sitzung /reload-plugins aus.

  3. 3.Ohne Installation ausprobieren

    git clone https://github.com/sezaakgun/cc-pr-tracker
    claude --plugin-dir ./cc-pr-tracker

    Lädt die Mod nur für eine Sitzung. An deinen Einstellungen wird nichts geändert.

So funktioniert es

Das Plugin besteht aus einem einzigen Hooks-Modul. prompt.submit liest PR-URLs aus deinem Prompt, turn.complete und ein tool.call-Hook auf Bash fangen URLs in Claudes Antwort und in der Ausgabe von gh pr create ab, und ui.render auf AbovePrompt zeichnet die Zeilen. Ein in session.start gestarteter Timer fragt jeden beobachteten PR über gh ab. Der Aufruf aus hooks/register.tsx:

const gh = async (args: string[]) => {
  const { stdout, stderr, exitCode } = await $.process.run(['gh', ...args], { timeoutMs: 30_000 })
  if (exitCode) throw new Error(stderr.trim() || `gh exited ${exitCode}`)
  return JSON.parse(stdout)
}

Jede Abfrage ist eine einzige lesende gh api graphql-Query nach Titel, Zustand, Merge-Status und Review-Entscheidung des PRs sowie den Checks auf seinem Head-Commit, mit GitHubs eigenem Flag isRequired. Von jedem Check wird nur der letzte Lauf behalten, eingeteilt in dieselben Gruppen wie bei gh pr checks. Verweigert GitHub GraphQL (wie bei claude.ai/code), wechselt die Mod zu vier bis sechs REST-Aufrufen pro Abfrage. Eine fehlgeschlagene Abfrage behält die alten Werte und markiert die Zeile mit refresh failed, sodass ein kurzer Netzwerkaussetzer nicht als Änderung gemeldet wird. Das erste Laden eines PRs und Wechsel in den oder aus dem vorübergehenden Merge-Status unknown lösen nie einen Alarm aus.

Anpassen

Öffne /config und suche die Zeilen von cc-pr-tracker; jede lässt sich auch mit /config cc-pr-tracker.<field>=<value> setzen und greift sofort. Die zwölf Optionen sind: Mute all PR alerts (alle PR-Alarme stummschalten), Alert on (bei jeder Änderung, bei Fehlschlägen und Merge-Bereitschaft oder nur bei Fehlschlägen), Tell Claude about changes (Claude über Änderungen informieren), Alert sound (Alarmton), Poll every (Abfrageintervall in Sekunden), Auto-watch PRs (PRs automatisch beobachten), Remember watched PRs (beobachtete PRs für diese Sitzung oder dieses Projekt merken), Stop watching merged or closed PRs (gemergte oder geschlossene PRs nicht mehr beobachten), Count all checks (alle Checks zählen), Alert on review changes (Alarm bei Review-Änderungen), Flash strip (Blinkstreifen) und Show PRs in the transcript (PRs im Transkript zeigen). Die Hover-Schaltflächen einer Zeile schalten einen einzelnen PR stumm oder beenden seine Beobachtung.

Berechtigungen & Sicherheit

Wir lesen jede Datei, die das Plugin lädt: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.tsx (etwa 740 Zeilen lesbares TypeScript), die Typdeklarationen, beide Testdateien sowie die Hilfsskripte und den Workflow des Repos. Es gibt keine package.json, kein Installationsskript, keinen gebündelten oder minifizierten Code, keinen nachgeladenen Code und kein dynamisches import(). Die Skripte in docs/record/ erzeugen nur die README-Bilder und werden vom Plugin nicht geladen.

Die Befunde, alle im Einklang mit dem README:

  • Netzwerk: Die Mod stellt selbst keine Anfragen. Sie führt für die beobachteten PRs gh api graphql (oder gh api repos/... über REST) aus, sodass Owner, Repo und PR-Nummer unter deiner gh-Anmeldung an github.com gehen.
  • Prozesse: gh für die Abfragen; open oder xdg-open für die Öffnen-Schaltfläche; afplay mit einem macOS-Systemton bei einem Alarm; und nur im Terminal cmux dessen eigene CLI aus CMUX_BUNDLED_CLI_PATH, um den Bereich aufblinken zu lassen und eine Benachrichtigung zu senden. Argumente werden als Arrays übergeben, nicht als Shell-Strings.
  • Umgebung: Sie liest nur CMUX_BUNDLED_CLI_PATH und CMUX_SURFACE_ID. Sie schreibt nie Umgebungsvariablen.
  • Dateien: Sie schreibt keine Dateien. Die Beobachtungsliste liegt im eigenen $.store und $.state des Plugins, nach Sitzung oder Projekt geschlüsselt; Listen, die 30 Tage lang nicht abgefragt wurden, werden entfernt.
  • Einfluss auf den Prompt: Nach einem Alarm hängt sie eine Notiz mit der Rolle „user“ an das Gespräch an. Die Notiz sagt, dass sie ein automatischer Hinweis ist, der nicht von dir stammt, und zitiert Check-Namen von GitHub als Daten, begrenzt auf 100 Zeichen. Steuerzeichen in GitHub-Texten werden vor der Anzeige entfernt. Mit „Tell Claude about changes“ kannst du die Notiz abschalten. Außerdem registriert sie ein Tool pr_status für Claude.
  • Blockierende Hooks: Ein Prompt, der nur aus PR-URLs besteht, wird verworfen (kein Modell-Turn); das ist das dokumentierte Verhalten. Ein längerer Prompt läuft unverändert durch. Der Bash-Hook liest nur die Ausgabe von gh pr create.
  • Daemons und Telemetrie: keine. Der Abfrage-Timer lebt in Claude Code und endet mit ihm. Keine Analytik.
  • Voraussetzungen: gh, angemeldet. macOS für Töne; cmux ist optional.
  • Lizenz: MIT, mit LICENSE-Datei.

claude plugin validate meldete keine Fehler oder Warnungen; die Hinweise nennen vier Hooks ohne .catch (config.set, prompt.submit und die beiden tool.call-Hooks), was nur informativ ist. Die 70 Tests des Autors liefen unter Claude Code 2.1.296 durch.

Liest Dateien
Kann Dateien lesen und Verzeichnisse auf deinem Rechner auflisten ($.fs.read / list / stat / exists).
Führt Befehle aus
Kann Shell-Programme auf deinem Rechner ausführen ($.process.run / spawn). Im Quellcode siehst du, welche genau.
Fängt Tool-Aufrufe ab
Sieht jeden Tool-Aufruf von Claude (tool.call / tool.check) und könnte ihn blockieren oder verändern.
Liest deine Prompts
Kann sehen, was du eingibst, und den Gesprächsverlauf lesen (prompt.* / session.append / session.messages).
Verändert die Oberfläche
Zeichnet in die Oberfläche von Claude Code: Leisten, Bereiche, Statustext, Toasts (ui.render / $.ui.*).
Fügt Befehle/Tools hinzu
Registriert neue Slash-Befehle oder Tools, die du oder Claude aufrufen können ($.command.register / $.tool.register).
Speichert Daten
Behält Daten zwischen Sitzungen im privaten Speicher des Plugins ($.store.*).

Kompatibilität & Fehlerbehebung

Geprüft mit Claude Code 2.1.296 unter macOS (validate, Tests und die Aufnahme). Wenn etwas nicht funktioniert:

  • Die URL wird an das Modell geschickt. Die Mod wurde nicht geladen. Prüfe, ob claude --version 2.1.287 oder neuer ist und ob /plugin cc-pr-tracker unter den aktiven Mods zeigt.
  • gh failed: … in einer Zeile. Führe gh pr view <url> in einem Terminal aus; meist ist gh nicht angemeldet oder kann das Repo nicht sehen.
  • Keine Hover-Schaltflächen. Dein Terminal meldet keine Mausereignisse; füge die URL erneut ein, um die Beobachtung zu beenden, oder nutze /prs.
  • Kein Ton. Töne spielt nur macOS mit /System/Library/Sounds ab.
  • Nur github.com-URLs werden erkannt; Hosts von GitHub Enterprise nicht.

FAQ

Braucht cc-pr-tracker ein GitHub-Token oder einen API-Schlüssel?
Die Mod braucht die GitHub CLI (gh), angemeldet mit Zugriff auf die Repos, die du beobachtest. Die Mod selbst hält kein Token; sie führt bei jeder Abfrage gh aus, also entscheidet die Anmeldung von gh, was sie sehen kann.
Wie oft fragt sie ab, und verbraucht sie Modell-Tokens?
Standardmäßig alle 60 Sekunden, ein GraphQL-Aufruf pro PR über gh; das Intervall lässt sich in /config zwischen 30 und 3600 Sekunden einstellen. Die Abfragen rufen das Modell nicht auf. Nur ein Alarm fügt eine kurze Notiz hinzu, die Claude in seinem nächsten Turn liest.
Warum ist mein Prompt verschwunden, als ich eine PR-URL eingefügt habe?
Ein Prompt, der nur aus PR-URLs besteht, wird von der Mod verworfen und startet (oder beendet) deren Beobachtung, ohne Modell-Turn. Claude Code zeigt „Prompt dropped by a hook: watching owner/repo#N“. Eine URL in einem längeren Prompt wird beobachtet, und der Prompt läuft trotzdem.
Kann Claude den PR-Status sehen?
Ja. Die Mod registriert ein Tool pr_status, sodass Claude Zustand, Merge-Status, Review und Checks der beobachteten PRs abfragen kann, statt gh aufzurufen. Nach einem Alarm fügt sie außerdem eine automatische Notiz hinzu, als nicht von dir geschrieben gekennzeichnet, mit den Log-Links der fehlgeschlagenen Checks.
Wie schalte ich die Alarme ab?
Fahre mit der Maus über eine Zeile und drücke Mute für einen PR, oder aktiviere „Mute all PR alerts“ in /config. Die Zeilen werden weiter aktualisiert, aber es gibt keinen Toast, kein Aufblinken, keinen Ton und keine Nachricht an Claude. „Alert sound“, „Flash strip“ und „Tell Claude about changes“ schalten einzelne Teile ab.
Git-Branch über dem Prompt in Claude CodeEmpfohlen

Git-Branch über dem Prompt

Zeigt Git-Branch, geänderte Dateien und Ahead/Behind-Status in einer Zeile über dem Prompt von Claude Code.

  • über dem Prompt
  • Führt Befehle aus
  • Fängt Tool-Aufrufe ab
  • Verändert die Oberfläche

getestet mit v2.1.310

Fertig-Toast in Claude CodeEmpfohlen

Fertig-Toast

Toast „Done in 2m 14s“ und kurzer Klang, wenn ein langer Claude-Turn endet, optional mit Desktop-Benachrichtigung.

  • Toast
  • Führt Befehle aus
  • Verändert die Oberfläche
  • Spielt Ton ab

getestet mit v2.1.310

Mehr in Git & GitHub, Toasts & Benachrichtigungen.