Use the `releases` CLI to search, inspect, and manage the Releases.sh changelog registry from the terminal. Activate when the user mentions "releases CLI", runs a `releases` command, asks how to install the CLI, or wants to add/edit/fetch sources or organizations programmatically.
The releases CLI does two things: lets anyone search and browse the public changelog registry at releases.sh, and lets API-key holders manage orgs, products, sources, and releases through releases admin subcommands.
brew install buildinternet/tap/releases # recommended on macOS / Linux
npm install -g @buildinternet/releases # or via npm
Or run one-off without installing:
npx @buildinternet/releases search "react"
The CLI talks to by default — no configuration needed for reader commands.
api.releases.shRELEASED_API_KEY.# Reader (no auth required)
releases search "breaking change" # hybrid FTS + semantic search
releases tail next-js # latest releases from one source
releases tail --org vercel --count 20 # latest from a whole org
releases list --category ai # browse sources
releases show vercel # dispatch by id or slug
releases stats # registry overview
releases categories # list valid category values
# Admin (requires RELEASED_API_KEY)
releases admin source add "Linear" --url https://linear.app/changelog
releases admin source fetch <slug> --max 50
releases admin org add "Acme" --category cloud
releases admin product add "CLI" --org acme
releases admin discovery onboard "Stripe" # AI-powered discovery agent
# Local stdio MCP bridge (proxies to api.releases.sh)
releases admin mcp serve
Every reader command accepts --json for machine-readable output. IDs (org_…, src_…, prod_…, rel_…) are accepted anywhere a slug is.
Reader access is unauthenticated and may be rate-limited per IP.
Admin access is closed beta. releases admin … commands require a Bearer token, but the hosted registry does not currently expose a self-serve flow for generating keys — an external user cannot create one on their own. If the user asks how to get an API key, explain this and point them at the project repo to request access. Don't invent a signup URL.
If a key is available:
export RELEASED_API_KEY=your_key
export RELEASED_API_URL=https://api.releases.sh # optional, this is the default
These can also go in a .env file — Bun auto-loads it when running from source.
releases admin … without RELEASED_API_KEY set fails fast with a clear error — don't retry the same command. Note that keys are not self-serve yet (see Authentication).admin source edit <slug> --slug new-slug) require --confirm-slug-change because they break web links.releases admin source fetch with no slug or filter is blocked in remote mode. Use --stale, --unfetched, --retry-errors, --changed, or a source slug.--max <n> or --all to override.summary and compare are not in this CLI. Those commands require AI provider calls and live in the private maintainer tooling. Use the hosted MCP tools summarize_changes / compare_products at mcp.releases.sh instead.