# cable > Contract-first procedures and durable typed channels for actor runtimes. ## Get started - [cable](https://www.cablejs.dev/): Define procedures and durable typed channels once, then use them from your server and TypeScript client. - [Installation](https://www.cablejs.dev/installation): Choose the smallest cable package set for your runtime and application. - [Get started](https://www.cablejs.dev/getting-started): Define one procedure, implement it with request context, and call it from a typed client. - [Agent setup](https://www.cablejs.dev/agent-setup): Give Claude or Codex a bounded prompt for making safe cable changes. - [Examples](https://www.cablejs.dev/examples): Follow the runnable Cloudflare chat application from shared contract to server host and React client. - [Acknowledgements](https://www.cablejs.dev/acknowledgements): The projects and ideas that shaped cable's contract and runtime design. ## Build your API - [Define a contract](https://www.cablejs.dev/contracts): Declare global procedures and channel families with Standard Schema validators in one shared API. - [Implement procedures](https://www.cablejs.dev/procedures): Attach global procedure handlers to a cable contract with typed context, boundary validation, and declared errors. - [Authorize procedures](https://www.cablejs.dev/authorization): Build request context at the adapter boundary, then refine it with reusable application middleware. - [Organize procedures across files](https://www.cablejs.dev/organizing-procedures): Share one contract and one implementation builder while keeping procedure handlers in focused modules. ## Use in your app - [Use the client](https://www.cablejs.dev/client): Call cable procedures and manage typed channels with batched HTTP, reconnecting sockets, presence, durable replay, and explicit resource ownership. - [React channels](https://www.cablejs.dev/react): Subscribe React components to cable channels, typed server events, connection state, and presence without owning socket cleanup yourself. - [TanStack Query](https://www.cablejs.dev/tanstack-query): Use cable procedures with native TanStack Query options, typed keys, mutations, cache invalidation, and server-side prefetching. ## Realtime channels - [Build channels](https://www.cablejs.dev/channels): Define one durable channel family, implement its server behavior, and use typed events, presence, history, and lifecycle hooks. - [Call channel procedures](https://www.cablejs.dev/channel-procedures): Put per-channel operations beside their channel, then call them over its socket or the authenticated HTTP fallback. - [Channel delivery and recovery](https://www.cablejs.dev/reliability): Know what cable orders, replays, acknowledges, and asks the application to refetch. ## Integrations - [Cloudflare Durable Objects](https://www.cablejs.dev/adapters/cloudflare): Run each cable channel host in a Cloudflare Durable Object with hibernatable WebSockets, durable storage, edge authentication, and signed private grants. - [Node and Bun](https://www.cablejs.dev/adapters/node): Run cable's in-memory Node host behind a Node HTTP server and native WebSocket upgrades. - [Effect](https://www.cablejs.dev/integrations/effect): Use cable procedures, channel handlers, and channel streams as Effect values while the runtime adapter retains ownership. ## Agent resources - [llms-full.txt](https://www.cablejs.dev/llms-full.txt): The full Markdown of every page in one file. - [Page Markdown](https://www.cablejs.dev/index.md): Append `.md` to any page URL to fetch that page as raw Markdown. - [JSON API](https://www.cablejs.dev/api/docs/pages.json): Page index of the JSON docs API; each entry links the page's JSON and Markdown forms. Described by the OpenAPI document at https://www.cablejs.dev/openapi.json. - [API catalog](https://www.cablejs.dev/.well-known/api-catalog): RFC 9727 linkset of the APIs documented here. - [agent-readability.json](https://www.cablejs.dev/agent-readability.json): Manifest of every agent-facing artifact on this site. - [Sitemap](https://www.cablejs.dev/sitemap.xml): Every indexable page URL with its last-modified date.