Was macht golang-pkg-go-dev?
Abhängigkeiten: godig — go install github.com/samber/godig/cmd/godig@latest (oder stattdessen einen registrierten godig-MCP-Server / die gehostete Instanz verwenden).
godig fragt die pkg.go.dev-API ab. Verwenden Sie es, um Fragen zu Go-Paketen und -Modulen zu beantworten: Dokumentation, Symbole, Versionen, Importeure und Sicherheitslücken. Es funktioniert als CLI und als MCP-Server, und alle Operationen sind schreibgeschützt und benötigen keine Authentifizierung.
Wann dieser Skill verwendet werden sollte
Auslösen bei Fragen wie:
- „Welche Versionen von github.com/samber/lo sind verfügbar?“
- „Hat golang.org/x/text bekannte Sicherheitslücken?“
- „Zeig mir die Dokumentation / Symbole für Paket X.“
- „Welche Pakete importieren X?“
- „Suche Go-Pakete nach Y.“
Wahl zwischen godig, gopls, Context7 und govulncheck
Kurz gesagt: godig beantwortet Fragen zum veröffentlichten Ökosystem (funktioniert auch für Pakete, die noch nicht in Ihrer go.mod sind); gopls analysiert Ihren lokal aufgelösten Build (go.sum, inklusive replace-Forks); Context7 ist ein Fallback für Nicht-Go- oder nicht indizierte Dokumentationen; govulncheck ist das ganzheitliche Schwachstellen-Audit (→ samber/cc-skills-golang@golang-security). Siehe den Skill samber/cc-skills-golang@golang-gopls für die Einbindung von gopls (MCP-Server, natives LSP-Tool und CLI) mit Claude Code, sowie den Bereich „godig vs gopls vs Context7 vs govulncheck“ im Skill samber/cc-skills-golang@golang-how-to für die vollständige Aufgaben-Werkzeug-Matrix.
Einrichtung
Installation
go install github.com/samber/godig/cmd/godig@latest
MCP-Server registrieren (optional)
godig mcp läuft standardmäßig über stdio oder streamable HTTP mit --transport http. Der Befehl ist harness-agnostisch – jeder MCP-fähige Host kann darauf verweisen. Claude Code registriert es über seine eigene CLI:
stdio (der Client startet godig bei Bedarf):
claude mcp add pkg-go-dev -- godig mcp
streamable HTTP (gemeinsamer Server unter /mcp, standardmäßig :8080):
godig mcp --transport http --addr :8080
claude mcp add --transport http pkg-go-dev http://localhost:8080/mcp
Gehostete Instanz (keine Installation erforderlich) – ein öffentlicher Server läuft unter https://godig.samber.dev/mcp:
claude mcp add --transport http pkg-go-dev https://godig.samber.dev/mcp
Andere MCP-fähige Harnesses (Cursor, Windsurf und andere) haben jeweils ihre eigene MCP-Server-Registrierung – ein Eintrag in ihrer jeweiligen Konfigurationsdatei, der auf denselben godig mcp-Befehl oder die gehostete URL verweist, kein gemeinsames Konfigurationsformat.
Die CLI und der MCP-Server bieten unter übereinstimmenden Namen die gleichen Operationen an. Bevorzugen Sie die CLI, wenn godig installiert ist; die gehostete Instanz ist ein Fallback, wenn dies nicht der Fall ist.
Befehle
Globale Flags (alle Befehle): -o/--output table|json|raw|md (Standard table – -o md für Chat übergeben), --base-url (pkg.go.dev-API), --vuln-base-url (Go-Schwachstellendatenbank, die von vulns und overview verwendet wird), --timeout, --log-level debug|info|warn|error|off. Alle sind auch über Umgebungsvariablen GODIG_* konfigurierbar.
| Befehl | Argumente | Spezifische Flags | Zweck |
|---|---|---|---|
overview | <path> | --version | Kompakte Zusammenfassung (Metadaten, Versionen, Lizenzen, Schwachstellen) – hier beginnen |
search | <query> | --symbol --limit --filter | Pakete finden (optional, die ein Symbol exportieren) |
package info | <path> | --module --version | Paket-Metadaten |
package imports | <path> | --module --version | Von diesem Paket importierte Pakete (einfache Liste) |
package doc | <path> | --module --version --goos --goarch --format md|text|html|markdown | Vollständige Paketdokumentation (GROSS) |
package examples | <path> | --module --version --goos --goarch --symbol | Ausführbare Beispiele (GROSS; mit --symbol eingrenzen) |
package licenses | <path> | --module --version | Lizenzdateien, vollständiger Text (GROSS) |
symbol doc | <path> <symbol> | --module --version --goos --goarch | Signatur + Dokumentation eines einzelnen Symbols (token-effizient) |
symbol examples | <path> <symbol> | --module --version --goos --goarch | Ausführbare Beispiele eines einzelnen Symbols |
symbols | <path> | --module --version --goos --goarch --limit --filter | Exportierte Symbole auflisten |
module info | <path> | --version | Modul-Metadaten |
module licenses | <path> | --version | Modul-Lizenzdateien (GROSS) |
module readme | <path> | --version | Modul-README, vollständiges Markdown (GROSS) |
dependencies | <path> | --version | go.mod-Abhängigkeiten: requires / replaces / excludes / go-Direktive |
packages | <path> | --version --limit --filter | In einem Modul enthaltene Pakete |
versions | <path> | --limit --filter | Alle Versionen, neueste zuerst |
major-versions | <path> | --limit --filter --exclude-pseudo | Hauptversionen (v1, v2 …) als separate Module |
imported-by | <path> | --module --version --limit --filter | Pakete, die dieses importieren |
vulns | <path> | --version --limit | Bekannte Schwachstellen (aus der Go-Schwachstellendatenbank) |
mcp | — | --transport stdio|http --addr --cache-ttl --cache-size | Als MCP-Server ausführen |
version | — | — | Godig-Version / Commit / Build-Datum anzeigen |
Wenn godig als MCP-Server läuft, wird jeder Datenbefehl oben als Operation mit demselben Namen bereitgestellt.
Exit-Codes: 0 Erfolg, 1 Laufzeitfehler (Netzwerk, Paket nicht gefunden), 2 Nutzungsfehler – ein fehlendes oder ungültiges Argument oder Flag (z. B. ein nicht-positives --limit) oder eine Befehlsgruppe, die ohne Unterbefehl aufgerufen wurde (godig package). Prüfen Sie auf 2, um einen fehlerhaften Aufruf von einer fehlgeschlagenen Suche zu unterscheiden.
Vollständige -o md-Ausgabe für jeden Befehl: sample-output.md.
Tipps
- Beginnen Sie mit
overview– ein Aufruf liefert eine kompakte Zusammenfassung (Metadaten, letzte + aktuelle Versionen, Lizenztypen, Schwachstellen). Greifen Sie nur dann aufdoc/examples/module readme/licenses(GROSS) zurück, wenn der vollständige Text benötigt wird. - Übergeben Sie immer
-o md, damit Ergebnisse als Markdown (Tabellen oder rohe Dokumentation/README) im Chat dargestellt werden. Andere Formate existieren (tableStandard,json,raw), aber hiermdbevorzugen. <path>ist ein vollständiger Importpfad, z. B.github.com/samber/lo– übergeben Sie ihn als Positionsargument.--versionlegt eine bestimmte Modulversion fest (v1.5.0,latest,master,main);--moduledisambiguiert, zu welchem Modul ein Paket gehört.--filtergrenzt Listenergebnisse serverseitig mit einem Go-Booleschen-Ausdruck ein – siehe Filter-Syntax.--goos/--goarchsetzen den Build-Kontext für Dokumentation/Symbole (z. B.linux/amd64).- Bevorzugen Sie
symbol doc/symbol examplesgegenüber den paketweitenpackage doc/package examples, wenn Sie nur ein einzelnes Symbol benötigen.
Filtersyntax
Filter sind Go-Boolesche-Ausdrücke über Felder der zurückgegebenen Objekte. Die genauen verfügbaren Felder hängen vom Befehl ab.
| Befehl | Objekttyp | Beispiel |
|---|---|---|
search | Package | Name matches "lo" |
symbols | Symbol | Name matches "Must[A-Z]" |
packages | Package | Path matches "samber" |
versions | Version | Major > 1 |
imported-by | Import | Path matches "samber" |
Syntax (Go-Typen):
string-Felder:==,!=,matches(glob pattern),matches "(regexp)",in ("a", "b"),not-in ("a", "b"),has-prefix "prefix",has-suffix "suffix"int-Felder:==,!=,>,>=,<,<=,in (1, 2, 3),not-in (1, 2, 3)- Mit
&&,||,!und()kombinieren. Leerzeichen sind optional.
Beispiele
godig search samber --filter 'Name matches "lo"'
godig symbols github.com/samber/lo --filter 'Name matches "Must[A-Z]"'