{
  "markdown": "<div align=\"center\">\n\n<img src=\"docs/assets/readme-home.png\" alt=\"releases.sh — the latest product releases, indexed for agents\" width=\"760\">\n\n<h1>Releases</h1>\n\n**The latest product releases, indexed for agents.**\n\nA registry of release notes from across the web — pulled from vendor changelogs,\nnormalized into one schema, summarized, and queryable from your terminal, your\ncode, or any MCP client. Readable by you and your agent.\n\n<p>\n  <a href=\"https://releases.sh\"><b>releases.sh</b></a> &nbsp;·&nbsp;\n  <a href=\"https://releases.sh/docs\"><b>Docs</b></a> &nbsp;·&nbsp;\n  <a href=\"https://github.com/buildinternet/releases-cli\"><b>CLI repo →</b></a> &nbsp;·&nbsp;\n  <a href=\"#use-it\">Use it</a> &nbsp;·&nbsp;\n  <a href=\"#whats-in-this-repo\">What's in this repo</a> &nbsp;·&nbsp;\n  <a href=\"#local-development\">Develop</a>\n</p>\n\n<p>\n  <a href=\"https://github.com/buildinternet/releases/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://github.com/buildinternet/releases/actions/workflows/ci.yml/badge.svg\"></a>\n  <a href=\"https://github.com/buildinternet/releases-cli\"><img alt=\"CLI repo\" src=\"https://img.shields.io/badge/CLI-buildinternet%2Freleases--cli-24292e?logo=github\"></a>\n  <a href=\"https://www.npmjs.com/package/@buildinternet/releases\"><img alt=\"npm (CLI)\" src=\"https://img.shields.io/npm/v/@buildinternet/releases?color=cb3837&label=%40buildinternet%2Freleases&logo=npm\"></a>\n  <a href=\"https://registry.modelcontextprotocol.io/v0.1/servers?search=sh.releases/mcp\"><img alt=\"MCP server\" src=\"https://img.shields.io/badge/exposes-MCP_server-000\"></a>\n  <a href=\"https://deepwiki.com/buildinternet/releases\"><img alt=\"Ask DeepWiki\" src=\"https://deepwiki.com/badge.svg\"></a>\n  <a href=\"LICENSE\"><img alt=\"License: Apache-2.0\" src=\"https://img.shields.io/badge/license-Apache--2.0-blue\"></a>\n</p>\n\n<p><sub>\n  This repo is the <b>backend</b> for <a href=\"https://releases.sh\">releases.sh</a> (API · MCP · web · ingest).\n  The user-facing command-line tool lives in its own repo →\n  <a href=\"https://github.com/buildinternet/releases-cli\"><b>buildinternet/releases-cli</b></a>.\n</sub></p>\n\n</div>\n\n---\n\n## What is this?\n\n\"What changed?\" is a question agents and developers ask constantly — before an\nupgrade, after an incident, when a tool suddenly behaves differently. The answer\nis scattered across GitHub releases, RSS feeds, changelog pages, and blog posts\nin a hundred different formats.\n\n**Releases** collects those into one registry. It watches hundreds of sources\nacross the vendors developers actually depend on, and for every release stores\nthe original content plus an AI-generated title, summary, and breaking-change\nclassification. Each organization gets a maintained overview of what it shipped\nrecently. The web page a human reads and the JSON an agent fetches are the same\ncontent.\n\nThis repo is the source of the canonical deployment at\n[releases.sh](https://releases.sh): the API worker (the authoritative data\nplane), the MCP server, the web frontend, and the ingest pipeline + agent\nharness that keep the registry fresh. The user-facing CLI ships separately from\n[buildinternet/releases-cli](https://github.com/buildinternet/releases-cli)\n(npm + Homebrew).\n\n## Use it\n\nNo account or API key needed for reads — all four surfaces are public.\n\n**MCP** — hosted at `mcp.releases.sh`, listed in the\n[MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=sh.releases/mcp)\nas `sh.releases/mcp`:\n\n```bash\nclaude mcp add --transport http releases https://mcp.releases.sh/mcp   # Claude Code\ncodex mcp add releases --url https://mcp.releases.sh/mcp               # Codex\nnpx -y mcp-remote https://mcp.releases.sh/mcp                          # stdio bridge (VS Code, Zed, …)\n```\n\n**CLI** — one-off via npx, or `brew install buildinternet/tap/releases`:\n\n```bash\nnpx @buildinternet/releases get anthropic     # what did Anthropic ship lately?\nnpx @buildinternet/releases search \"MCP\"      # search across every vendor\n```\n\n**REST API** — public GET endpoints on `api.releases.sh`, spec at\n[/v1/openapi.json](https://api.releases.sh/v1/openapi.json):\n\n```bash\ncurl \"https://api.releases.sh/v1/releases/latest?limit=5\"\n```\n\n**Agent skills** — auto-triggering playbooks, installable into any agent (Claude\nCode / Codex / Cursor / OpenCode) without checking out anything. Start with the\nreader skills — search, MCP lookups, and release analysis — which is what almost\neveryone wants:\n\n```bash\nnpx skills add buildinternet/releases-cli   # reader skills — search, MCP, release analysis\n\n# just the skill that writes a releases.json manifest for your own product\nnpx skills add buildinternet/releases --skill creating-releases-json\n```\n\nOn Claude Code, the CLI repo also installs as a plugin — the reader skills plus\na bundled MCP connection and a `/releases` command:\n\n```\n/plugin marketplace add buildinternet/releases-cli\n/plugin install releases@releases\n```\n\n<sub>Running or maintaining the registry itself? This repo also ships\n**operator skills** (source onboarding, parsing, bulk maintenance) — most need\nan admin key: `npx skills add buildinternet/releases`. See\n[releases.sh/docs/skills](https://releases.sh/docs/skills).</sub>\n\n**Docs** — user-facing documentation is served from the web app at\n[releases.sh/docs](https://releases.sh/docs) (source in\n[`web/src/content/docs/`](web/src/content/docs)):\n[installation](https://releases.sh/docs/installation) ·\n[skills](https://releases.sh/docs/skills) ·\n[REST API](https://releases.sh/docs/api/rest) ·\n[MCP](https://releases.sh/docs/api/mcp) ·\n[webhooks](https://releases.sh/docs/api/webhooks) ·\n[listing your product](https://releases.sh/docs/listing).\n\nAgents consuming the product start from\n[releases.sh/llms.txt](https://releases.sh/llms.txt); the MCP tool catalog and\nauth model are also covered in\n[docs/architecture/mcp.md](docs/architecture/mcp.md). Creating a\n[free account](https://releases.sh/signup) unlocks higher rate limits (mint an\nAPI key at [releases.sh/account](https://releases.sh/account)), plus follows,\npersonalized feeds, webhooks, and email digests.\n\n<div align=\"center\">\n  <img src=\"docs/assets/readme-org.png\" alt=\"An organization page: AI-maintained overview of recent releases, source list, and JSON/Markdown/Atom export\" width=\"700\">\n  <br>\n  <sub>Every org page carries an AI-maintained overview and exports as JSON, Markdown, or Atom.</sub>\n</div>\n\n## What's in this repo\n\n| Path                 | What                                                                                          |\n| -------------------- | --------------------------------------------------------------------------------------------- |\n| `workers/api/`       | Hono API on Cloudflare D1 — the authoritative data plane                                      |\n| `workers/mcp/`       | Remote MCP server at `mcp.releases.sh`                                                        |\n| `workers/discovery/` | Durable-Object agent-session orchestrator                                                     |\n| `workers/webhooks/`  | Signs + delivers `release.created` events (HMAC-SHA256, retry/DLQ) — [docs](docs/webhooks.md) |\n| `web/`               | Next.js frontend, deploys on Vercel                                                           |\n| `packages/`          | Shared code — `core` + `api-types` publish to npm; the rest are private workspaces            |\n| `src/agent/`         | Managed-agents discovery + worker harness (prompt builder + shared types)                     |\n| `.claude/`           | Claude Code config — `skills/` (canonical skill home), `agents/`, `commands/`, `workflows/`   |\n\nHow it fits together:\n\n- **Storage** — Cloudflare D1 (FTS5 + Vectorize). The API worker is the sole data plane.\n- **Ingest** — adapters for GitHub Releases, RSS/Atom/JSON feeds, and a browser-rendering fallback for feed-less pages (`packages/adapters/`). The crawler signs outbound fetches (RFC 9421) as a Cloudflare Verified Bot.\n- **AI** — changelog parsing, summarization, grouping, and org overviews run in the API worker as direct Anthropic SDK calls.\n- **Agents** — discovery + worker run as Anthropic-hosted managed agents; definitions auto-deploy on merge when their source changes.\n\n## Contributor mental model\n\nThis repo has four kinds of code:\n\n| Area               | Paths                                                                            | What to know                                                                                                                 |\n| ------------------ | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| Product surfaces   | `workers/api/`, `workers/mcp/`, `workers/webhooks/`, `web/`                      | The API worker is the data plane. Web, MCP, CLI, and webhooks read from or route through it.                                 |\n| Shared packages    | `packages/core/`, `packages/api-types/`, private `packages/*`                    | `core` owns schema and pure helpers; `api-types` owns wire shapes. Change these first when shared contracts move.            |\n| Hosted operations  | `workers/discovery/`, `managed-agents/`, `.claude/skills/`, `.claude/workflows/` | These power the canonical releases.sh ingest and operator loop. Some paths need hosted credentials, but local work does not. |\n| Historical context | `docs/architecture/`, `docs/plans/`, `docs/superpowers/`                         | Architecture docs are maintained references. Plans and specs are point-in-time design history.                               |\n\nFor normal contributions, start with `bun run bootstrap`, `bun run check`, and\n`bun test`. You do not need production Cloudflare, Anthropic, Vercel, email, or\nFirecrawl access to work on the core loop. If you are trying to fork or\nself-host the full service, read\n[deploy-coupling.md](docs/architecture/deploy-coupling.md).\n\nPer-package detail and project conventions live in [AGENTS.md](AGENTS.md) — the\nagent entry point for working in this repo. Architecture deep-dives are in\n[docs/architecture/](docs/architecture/), with a reader's guide at\n[docs/README.md](docs/README.md).\n\n## Local development\n\n**Prerequisites:** [Bun](https://bun.sh). No external accounts needed for the\ncore loop:\n\n```bash\nbun run bootstrap        # one-command setup: tooling, deps, env files, local D1\nbun run doctor           # diagnose the setup — reports what's missing and how to fix it\n\nbun run check            # lint + type-check + format (the CI gate)\nbun test                 # full test suite, secret-free\nbun run dev:api          # API worker on local D1\nbun run dev:web          # Next.js frontend\n```\n\n`bootstrap` is idempotent (safe to re-run; never overwrites your env files or\nwipes the local DB) and `doctor` is read-only. Prefer the manual steps? They're\n`bun install`, copy each `*.example` env file, then `bun run db:reset:local`.\n\nAI passes, scrape fetches, and semantic search take your own keys\n(`ANTHROPIC_API_KEY`, Cloudflare Browser Rendering, `VOYAGE_API_KEY`) and\ndegrade gracefully without them. Setup detail, environment variables, testing,\ndeployment, and the full no-accounts / bring-your-own-keys / hosted-only\nbreakdown live in [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\n[Apache-2.0](LICENSE). The published npm packages\n([`releases-core`](packages/core), [`api-types`](packages/api-types)) are\ndeliberately MIT for maximum reuse.\n",
  "bytes": 11519,
  "sha": "2044ea92f37688e54512a3aea339a3ac0a662bb955f3329e247b8e0c0b82097c",
  "repo_slug": "buildinternet/releases",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_sh_releases_mcp_ecf3c853/readme"
}