A Go CLI tool that uses GitHub Copilot to generate detailed Backstage catalog documentation for your projects.
- 🤖 AI-Powered: Leverages GitHub Copilot SDK to intelligently analyze your project
- 📝 Backstage Integration: Generates compliant
catalog-info.yamlfiles - 🔍 Smart Analysis: Automatically detects project type, language, and structure
- ⚡ Fast: Built with Go for high performance
brew tap grahambrooks/bsdoc https://github.com/grahambrooks/bsdoc
brew install bsdocTo upgrade to the latest release:
brew update && brew upgrade bsdocgo install github.com/grahambrooks/bsdoc/cmd/bsdoc@latestDownload a release archive for your OS/arch from
the releases page and place
the bsdoc binary on your PATH.
Generate a catalog-info.yaml file for your current project:
bsdoc generateSpecify a custom output path:
bsdoc generate --output /path/to/catalog-info.yamlGenerate documentation for a specific project:
bsdoc generate --path /path/to/projectbsdoc versiongo build -o bin/bsdoc ./cmd/bsdocgo run ./cmd/bsdocgo test ./...Releases are produced automatically by
.github/workflows/release.yml on every push
to main (and on manual workflow_dispatch). The workflow:
- Runs
go test ./.... - Computes a CalVer version of the form
YYYY.M.D, appending.Nwhen more than one release is cut on the same day (e.g.2026.5.8,2026.5.8.1,2026.5.8.2). - Cross-compiles
bsdocforlinux/amd64,linux/arm64,darwin/amd64, anddarwin/arm64, stamping the version into the binary via-ldflags "-X main.version=$VERSION". - Tags the commit
vYYYY.M.D[.N], publishes a GitHub Release with the tarballs and aSHA256SUMSfile. - Regenerates
Formula/bsdoc.rbwith the new version and per-platform SHA256s and commits it back tomainwith[skip ci].
To cut a release with a specific version, run the workflow manually from the
Actions tab and provide an override (e.g. 2026.5.8.3).