
Golang Pkg Go Dev
- 2.4k installs
- 2.8k repo stars
- Updated July 27, 2026
- samber/cc-skills-golang
Looks up Go package documentation from pkg.go.dev so an agent can find the right library, API signatures, and usage while writing Go code.
About
golang-pkg-go-dev is a skill that fetches and reads Go package documentation from pkg.go.dev, giving a coding agent accurate signatures, exported symbols, and usage examples for the standard library and third-party modules. A solo builder reaches for it while writing Go so the agent picks real APIs from the current docs instead of guessing.
- Queries pkg.go.dev for Go package docs
- Surfaces correct API signatures
- Speeds up choosing Go libraries
- Reduces hallucinated Go APIs
Golang Pkg Go Dev by the numbers
- 2,412 all-time installs (skills.sh)
- +435 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #20 of 99 Go skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/samber/cc-skills-golang --skill golang-pkg-go-devAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2.4k |
|---|---|
| repo stars | ★ 2.8k |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 27, 2026 |
| Repository | samber/cc-skills-golang ↗ |
What it does
Looks up Go package documentation from pkg.go.dev so an agent can find the right library, API signatures, and usage while writing Go code.
Who is it for?
Resolving accurate Go package APIs while coding
Skip if: Non-Go languages
Files
golang-pkg-go-dev
Dependencies: godig — go install github.com/samber/godig/cmd/godig@latest (or use a registered godig MCP server / the hosted instance instead).
godig queries the pkg.go.dev API. Use it to answer questions about Go packages and modules: docs, symbols, versions, importers and vulnerabilities. It works as a CLI and as an MCP server. All operations are read-only and need no authentication.
When to use this skill
Trigger on questions like:
- "What versions of github.com/samber/lo are available?"
- "Does golang.org/x/text have known vulnerabilities?"
- "Show me the docs / symbols for package X."
- "Which packages import X?"
- "Search Go packages for Y."
Setup
Install
go install github.com/samber/godig/cmd/godig@latestRegister the MCP server (optional)
godig mcp runs over stdio by default, or streamable HTTP with --transport http.
stdio (the client launches godig on demand):
claude mcp add pkg-go-dev -- godig mcpstreamable HTTP (shared server at /mcp, default :8080):
godig mcp --transport http --addr :8080
claude mcp add --transport http pkg-go-dev http://localhost:8080/mcpHosted instance (no install needed) — a public server runs at https://godig.samber.dev/mcp:
claude mcp add --transport http pkg-go-dev https://godig.samber.dev/mcpThe CLI and the MCP server expose the same operations under matching names. Prefer the CLI when godig is installed; the hosted instance is a fallback when it is not.
Commands
Global flags (all commands): -o/--output table|json|raw|md (default table — pass -o md for chat), --base-url (pkg.go.dev API), --vuln-base-url (Go vulnerability database, consulted by vulns and overview), --timeout, --log-level debug|info|warn|error|off. All are also settable via GODIG_* env vars.
| Command | Args | Specific flags | Purpose |
|---|---|---|---|
overview | <path> | --version | Compact summary (metadata, versions, licenses, vulns) — start here |
search | <query> | --symbol --limit --filter | Find packages (optionally exporting a symbol) |
package info | <path> | --module --version | Package metadata |
package imports | <path> | --module --version | Packages this package imports (plain list) |
package doc | <path> | `--module --version --goos --goarch --format md\ | text\ |
package examples | <path> | --module --version --goos --goarch --symbol | Runnable examples (LARGE; scope with --symbol) |
package licenses | <path> | --module --version | License files, full text (LARGE) |
symbol doc | <path> <symbol> | --module --version --goos --goarch | One symbol's signature + doc (token-efficient) |
symbol examples | <path> <symbol> | --module --version --goos --goarch | One symbol's runnable examples |
symbols | <path> | --module --version --goos --goarch --limit --filter | List exported symbols |
module info | <path> | --version | Module metadata |
module licenses | <path> | --version | Module license files (LARGE) |
module readme | <path> | --version | Module README, full Markdown (LARGE) |
dependencies | <path> | --version | go.mod deps: requires / replaces / excludes / go directive |
packages | <path> | --version --limit --filter | Packages contained in a module |
versions | <path> | --limit --filter | All versions, newest first |
major-versions | <path> | --limit --filter --exclude-pseudo | Major versions (v1, v2 …) living as separate modules |
imported-by | <path> | --module --version --limit --filter | Packages that import this one |
vulns | <path> | --version --limit | Known vulnerabilities (from the Go vuln DB) |
mcp | — | `--transport stdio\ | http --addr --cache-ttl --cache-size` |
version | — | — | Print godig version / commit / build date |
When godig runs as an MCP server, each data command above is exposed as an operation of the same name.
Exit codes: 0 success, 1 runtime error (network, package not found), 2 usage error — a missing/invalid argument or flag (e.g. a non-positive --limit), or a command group invoked with no subcommand (godig package). Check for 2 to tell a malformed call apart from a failed lookup.
Full -o md output for every command: sample-output.md.
Tips
- Start with `overview` — one call returns a compact summary (metadata, latest + recent versions, license types, vulnerabilities). Reach for
doc/examples/module readme/licenses(LARGE) only when the full text is needed. - Always pass `-o md` so results render as Markdown (tables, or raw doc/README) in the chat. Other formats exist (
tabledefault,json,raw) but prefermdhere. <path>is a full import path, e.g.github.com/samber/lo— pass it as the positional argument.--versionpins a specific module version (v1.5.0,latest,master,main);--moduledisambiguates which module a package belongs to.--filternarrows list results server-side with a Go boolean expression — see Filter syntax.--goos/--goarchset the documentation/symbols build context (e.g.linux/amd64).- Prefer
symbol doc/symbol examplesover the package-widepackage doc/package exampleswhen you only need one symbol — far fewer tokens. - Parallelize independent lookups — every command is a self-contained, read-only HTTP query, so calls never depend on each other. When a task needs docs, examples, versions, or vulns for several symbols, packages, or modules, issue all the calls at once (multiple
godiginvocations in a single turn) rather than one after another — wall-clock drops from sum-of-latencies to slowest-single-call. For a large fan-out (documenting many symbols, comparing many candidate libraries, auditing CVEs across a dependency set), dispatch parallel sub-agents (up to 5) via the Agent tool, each running its owngodigcalls and returning a compact summary, so the raw LARGE output never lands in the main context. - Listing commands auto-paginate (return all results); use
--limitto cap.
Filter syntax
--filter (on search, versions, major-versions, packages, imported-by, symbols) takes a Go boolean expression evaluated server-side, once per result item. It is not a regex — wrap the whole expression in single quotes for the shell.
- Identifiers are the item's fields, which differ per command — a field valid for one list is rejected by another (e.g.
searchexposespackagePath, notpath). An unknown field fails withundefined identifier: <name>(HTTP 400), which names the offending field. Fields use the item's lowercase JSON key; the exception is enum-like values such askind, which are capitalized (Function, notfunc). - Operators:
==!=<<=>>=, boolean&&||!, parentheses for grouping. - String functions:
contains(s, sub),hasPrefix(s, pre),hasSuffix(s, suf). - Literals: double-quoted strings (
"Function"),true/false, numbers.
Filterable fields per command (string unless noted):
| Command | Fields |
|---|---|
search | modulePath, packagePath, synopsis, version |
versions | version, modulePath, deprecated (bool), retracted (bool), hasGoMod (bool), commitTime |
packages | path, name, synopsis, isRedistributable (bool) |
imported-by | path (the importing package path) |
symbols | name, kind (Function/Method/Type/Variable/Constant), synopsis, parent |
major-versions | modulePath, major, version, isLatest (bool) |
godig symbols github.com/samber/lo --filter 'kind=="Function"' -o md
godig symbols github.com/samber/lo --filter 'kind=="Function" && hasPrefix(name,"Map")' -o md
godig versions github.com/samber/lo --filter 'hasPrefix(version,"v1.5")' -o md
godig versions github.com/samber/lo --filter 'deprecated==false && retracted==false' -o md
godig search "result option" --filter 'hasPrefix(packagePath,"github.com/samber/")' -o mdExamples
Always request Markdown output (-o md):
# Overview — start here (compact, one call)
godig overview github.com/samber/ro -o md
# Search
godig search "result option monad" --limit 5 -o md
# Package facets
godig package info github.com/samber/ro -o md
godig package imports github.com/samber/ro -o md
godig package doc github.com/samber/ro --format md -o md
godig package examples github.com/samber/ro --symbol Map -o md
godig package licenses github.com/samber/ro -o md
# Single symbol (token-efficient vs package-wide doc/examples)
godig symbol doc github.com/samber/lo Map -o md
godig symbol examples github.com/samber/oops OopsError.Error -o md
# Module facets
godig module info github.com/samber/ro -o md
godig module readme github.com/samber/ro -o raw
godig dependencies github.com/samber/ro -o md
# Lists (auto-paginated; --limit to cap)
godig versions github.com/samber/ro -o md
godig major-versions github.com/samber/lo -o md
godig packages github.com/samber/ro -o md
godig imported-by github.com/samber/ro --limit 20 -o md
godig symbols github.com/samber/ro --filter 'kind=="Function"' -o md
# Pin a version / set the build context
godig versions github.com/samber/ro --filter 'hasPrefix(version,"v0.3")' -o md
godig package doc github.com/samber/lo --version v1.50.0 -o md
godig symbols github.com/samber/ro --goos linux --goarch amd64 -o md
# Vulnerabilities
godig vulns github.com/samber/ro -o md---
This skill is not exhaustive. godig --help and each sub-command's --help list current flags and output formats; the data mirrors what pkg.go.dev exposes.
If you encounter a bug or unexpected behavior in godig, open an issue at <https://github.com/samber/godig/issues>.
godig sample output
Representative -o md output for each command, captured against godig v0.2.0. Empty cells are shown as —. Field sets mirror the underlying APIs — pkg.go.dev for most commands, the Go vulnerability database (vuln.go.dev, OSV) for vulns — and may grow over time.
overview
godig overview github.com/samber/ro -o md
| field | value |
|---|---|
| isStandardLibrary | false |
| latestVersion | v0.3.0 |
| licenses | ["Apache-2.0"] |
| modulePath | github.com/samber/ro |
| name | ro |
| path | github.com/samber/ro |
| recentVersions | ["v0.3.0","v0.2.0","v0.1.0"] |
| repoUrl | <https://github.com/samber/ro> |
search
godig search ro --limit 3 -o md
| modulePath | packagePath | synopsis | version |
|---|---|---|---|
| github.com/samber/ro | github.com/samber/ro | — | v0.3.0 |
| github.com/blevesearch/bleve | github.com/blevesearch/bleve/analysis/lang/ro | — | v1.0.14 |
| github.com/blevesearch/bleve/v2 | github.com/blevesearch/bleve/v2/analysis/lang/ro | — | v2.6.0 |
package info
godig package info github.com/samber/ro -o md
| field | value |
|---|---|
| goarch | all |
| goos | all |
| isLatest | true |
| isRedistributable | true |
| isStandardLibrary | false |
| modulePath | github.com/samber/ro |
| name | ro |
| path | github.com/samber/ro |
| version | v0.3.0 |
package imports
godig package imports github.com/samber/ro -o md — a plain list (no --limit):
- context
- errors
- fmt
- ...versions
godig versions github.com/samber/ro --limit 3 -o md
| commitTime | deprecated | deprecationReason | hasGoMod | isRedistributable | latestVersion | modulePath | retracted | retractionReason | version |
|---|---|---|---|---|---|---|---|---|---|
| 2026-03-02T15:16:08Z | false | — | true | true | v0.3.0 | github.com/samber/ro | false | — | v0.3.0 |
| 2025-10-25T22:20:38Z | false | — | true | false | v0.3.0 | github.com/samber/ro | false | — | v0.2.0 |
| 2025-10-14T12:21:03Z | false | — | true | false | v0.3.0 | github.com/samber/ro | false | — | v0.1.0 |
major-versions
godig major-versions github.com/samber/lo -o md
| isLatest | major | modulePath | version |
|---|---|---|---|
| true | v1 | github.com/samber/lo | v1.53.0 |
imported-by
godig imported-by github.com/samber/ro --limit 3 -o md
| package |
|---|
| github.com/CooperCorona/websocket |
| github.com/CooperCorona/websocket/test |
| github.com/samber/ro/ee/plugins/otel |
vulns
godig vulns github.com/dgrijalva/jwt-go -o md
Since v0.2.0 vulns reads the Go vulnerability database (vuln.go.dev, OSV) directly, so summary and per-range fix versions are populated (they were empty when sourced from pkg.go.dev). fixedVersion is gone — fixed/introduced versions now live in ranges; new aliases, packages and references fields are also returned.
| aliases | details | id | ranges | summary |
|---|---|---|---|---|
| ["CVE-2020-26160","GHSA-w73w-5m7g-f7qc"] | If a JWT contains an audience claim with an array of strings ... | GO-2020-0017 | [{"introduced":"0.0.0-20150717181359-44718f8a89b0"}] | Authorization bypass in github.com/dgrijalva/jwt-go |
vulns returns an empty list when a module has no known vulnerabilities. --filter and --module no longer apply to vulns; only --version and --limit do.
dependencies
godig dependencies github.com/samber/ro -o md — one section per go.mod block (requires, replaces, excludes, go directive):
## requires
| path | version | indirect |
| -------------------------- | ------- | -------- |
| github.com/samber/lo | v1.52.0 | — |
| github.com/davecgh/go-spew | v1.1.1 | true |module info
godig module info github.com/samber/ro -o md
| field | value |
|---|---|
| commitTime | 2026-03-02T15:16:08Z |
| goVersion | 1.18 |
| hasGoMod | true |
| isLatest | true |
| isRedistributable | true |
| isStandardLibrary | false |
| path | github.com/samber/ro |
| repoUrl | <https://github.com/samber/ro> |
| size | 137530 |
| version | v0.3.0 |
packages
godig packages github.com/samber/ro --limit 4 -o md
| isRedistributable | name | path | synopsis |
|---|---|---|---|
| true | ro | github.com/samber/ro | — |
| true | constraints | github.com/samber/ro/internal/constraints | — |
| true | xatomic | github.com/samber/ro/internal/xatomic | — |
| true | xerrors | github.com/samber/ro/internal/xerrors | — |
symbols
godig symbols github.com/samber/ro --limit 4 -o md
| kind | name | parent | synopsis |
|---|---|---|---|
| Type | Backpressure | Backpressure | type Backpressure int8 |
| Constant | BackpressureBlock | Backpressure | const BackpressureBlock |
| Constant | BackpressureDrop | Backpressure | const BackpressureDrop |
| Type | ConcurrencyMode | ConcurrencyMode | type ConcurrencyMode int8 |
symbol doc
godig symbol doc github.com/samber/lo Map -o md — token-efficient vs package doc:
| field | value |
|---|---|
| goarch | all |
| goos | all |
| kind | Function |
| name | Map |
| path | github.com/samber/lo |
| signature | func Map[T, R any](collection []T, transform func(item T, index int) R) []R |
| synopsis | Map manipulates a slice and transforms it to a slice of another type. |
| version | v1.53.0 |
Raw / large output
package doc, package examples, symbol examples and module readme return raw Markdown (use -o md or -o raw), e.g.:
# package ro
## Constants
...package licenses and module licenses return the full license text.
Related skills
FAQ
Is Golang Pkg Go Dev safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.