OpenAPI-generated Worker binding catalog
Each capability is a deployable Worker wrapper around one API:
- A generated
WorkerEntrypointwith namespaced methods you can bind from another Worker. - A
capa.manifest.jsonwith the source spec, upstream URL, auth style, and operation count. - One upstream HTTP request per method call, with a structured receipt returned alongside the result.
Install direction
Section titled “Install direction”The catalog is moving toward one boring, useful command:
npx @acoyfellow/capa add <capability>It should drop a hello-world Worker scaffold with the service binding already filled in. No registry theater; just a fast path from “I want Stripe/GitHub/Twitch” to a runnable Worker. Projects.dev can provision provider services and credentials; capa’s install path should make those APIs feel native inside Workers.
| Capability | Ops | NS | Auth | Body | Entrypoint | Actions |
|---|---|---|---|---|---|---|
| githubRepos, issues, pull requests, Actions, releases, and org workflows. | 1,183 | 36 | Bearer | JSON | GithubCapability | Deploy |
| kubernetesCore Kubernetes resources and cluster APIs exposed through one generated binding. | 1,111 | 6 | Bearer | JSON | KubernetesCapability | Deploy |
| gitlabProjects, MRs, pipelines — across the entire GitLab API. | 1,047 | 51 | Private-Token | JSON | GitlabCapability | Deploy |
| jiraIssues, boards, sprints — JSRPC over Jira Cloud REST v3. | 601 | 76 | Basic | JSON | JiraCapability | Deploy |
| stripeCharges, customers, and subscriptions without hand-writing a Stripe wrapper. | 534 | 73 | Bearer | Form | StripeCapability | Deploy |
| boxFiles, folders, collaboration, and metadata from the Box Platform API. | 294 | 56 | Bearer | JSON | BoxCapability | Deploy |
| discordApplications, guilds, channels, messages, and webhooks from Discord HTTP API v10. | 233 | 16 | Bearer | JSON | DiscordCapability | Deploy |
| sentryOrganizations, projects, issues, events, releases, and alerts from Sentry. | 210 | 6 | Bearer | JSON | SentryCapability | Deploy |
| twilioAccounts, phone numbers, calls, messages, recordings, and Twilio REST resources. | 197 | 2 | Basic | Form | TwilioCapability | Deploy |
| slackChannels, chat, users, files, admin endpoints, and Slack Web API workflows. | 174 | 174 | Bearer | Form | SlackCapability | Deploy |
| zoomMeetings, webinars, recordings, users, reports, and Zoom account operations. | 155 | 14 | Bearer | JSON | ZoomCapability | Deploy |
| twitchTwitch Helix channels, streams, clips, chat, moderation, and creator workflows. | 144 | 30 | Bearer | JSON | TwitchCapability | Deploy |
| twilio-messagingMessaging Services, senders, compliance registrations, and delivery controls. | 58 | 5 | Basic | Form | TwilioMessagingCapability | Deploy |
| twilio-verifyVerification services, factors, templates, rate limits, and fraud-safe flows. | 57 | 5 | Basic | Form | TwilioVerifyCapability | Deploy |
Adding a new capability
Section titled “Adding a new capability”The catalog above is rendered from capabilities/*/capa.manifest.json at build time. You have two good options:
- Generate a capability locally and use it only in your own account.
- Send a capability to this repo if the API is broadly useful.
For a repo contribution:
- Run the codegen CLI against an OpenAPI/Swagger spec.
- Codegen writes
capa.manifest.jsonalongside the generated source. - Follow the contribution guide and run
bun run check. - Open a PR. The catalog picks it up automatically on the next build.
Invariants every capability honours
Section titled “Invariants every capability honours”| Property | Value |
|---|---|
| Public HTTP route | fetch() returns 404 |
| Side effects per method | One upstream HTTP request |
| Return shape | { result, evidence } |
| Returned receipt | Plain JSON, no streams or handles |
| Auth | wrangler secret put |
| Billing | Caller-pays |
See Reference for the full return shape, codegen flags, and per-capability secret names.