
Rivet Sdk
Wire a Zoom Rivet app with module clients, webhooks, and typed REST wrappers instead of hand-rolling Zoom API glue.
Overview
rivet-sdk is an agent skill for the Build phase that explains Zoom Rivet module clients, webhooks, and typed REST integration architecture for Node/TypeScript apps.
Install
npx skills add https://github.com/anthropics/knowledge-work-plugins --skill rivet-sdkWhat is this skill?
- Single module client covering auth/token orchestration
- Webhook receiver and event dispatch for Zoom Marketplace apps
- Typed REST wrappers across Chatbot, Team Chat, Meetings, Users, Phone, Video SDK clients
- Architecture map from Zoom Marketplace config to your Node/TypeScript Rivet app
- Clear split between OAuth install, token exchange, and POST /zoom/events handling
Adoption & trust: 840 installs on skills.sh; 19.6k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You are building a Zoom app but juggling separate auth, webhook, and API client code without a shared Rivet mental model.
Who is it for?
Solo builders implementing Zoom Team Chat, Meetings, or related APIs behind a Rivet module client in TypeScript.
Skip if: Teams only needing a one-off REST call with no webhooks or marketplace lifecycle.
When should I use this skill?
User is implementing a Zoom Rivet or Marketplace app with module clients, webhooks, or typed Zoom REST wrappers.
What do I get? / Deliverables
Your agent structures a Rivet-based app layout with module clients and event dispatch aligned to Zoom Marketplace configuration.
- Rivet app architecture diagram and module client boundaries
- Webhook route and event dispatch plan for /zoom/events
Recommended Skills
Journey fit
How it compares
Architecture guide for Zoom Rivet apps, not a generic REST cheat sheet or unrelated OAuth-only doc.
Common Questions / FAQ
Who is rivet-sdk for?
Solo and indie developers shipping Zoom Marketplace integrations who want Rivet's combined auth, webhook, and typed client pattern in Node/TypeScript.
When should I use rivet-sdk?
During Build integrations when scaffolding Zoom webhooks, module clients, and REST wrappers after you have chosen an OAuth flow.
Is rivet-sdk safe to install?
It is documentation-style skill content; confirm marketplace credentials handling in your repo and review Security Audits on this Prism page before broad agent filesystem access.
Workflow Chain
Requires first: zoom oauth
SKILL.md
READMESKILL.md - Rivet Sdk
# Rivet Architecture and Lifecycle ## What Rivet Provides Rivet wraps three concerns into one module client: - Auth/token orchestration - Webhook receiver + event dispatch - Typed REST API endpoint wrappers ## Architecture Model ```text +--------------------+ +------------------------------+ | Zoom Marketplace | | Your Rivet App | | App Config | | (Node.js/TypeScript) | +----------+---------+ +---------------+--------------+ | | | OAuth install / token exchange | |--------------------------------->| | | | Webhooks (POST /zoom/events) | |--------------------------------->| | v | +------------------------+ | | Rivet Module Clients | | | - ChatbotClient | | | - TeamChatClient | | | - Meetings*Client | | | - Users*Client | | | - Phone*Client | | | - VideoSdkClient | | +-----+------------+-----+ | | | | | +--> webEventConsumer | | | +--> endpoints.* (REST wrappers) | | | v | +------------------+ +--------------------------------> | Zoom APIs | +------------------+ ``` ## Lifecycle Workflow 1. Select module(s): - Example: `ChatbotClient` + `TeamChatClient` for bot + channel lookup. - Example: `UsersS2SAuthClient` + `MeetingsS2SAuthClient` for admin automation. 2. Pick auth model by module: - Chatbot: Client Credentials - Team Chat/Meetings/Phone/Accounts/Users: User OAuth or S2S OAuth - Video SDK: JWT auth for Video SDK API 3. Configure client options: - Required: `clientId`, `clientSecret` - Often required: `webhooksSecretToken` - Conditional: `accountId`, `installerOptions`, `receiver`, `port`, `tokenStore` 4. Register listeners: - Generic: `webEventConsumer.event("event_name", handler)` - Shortcuts where available: `onSlashCommand`, `onButtonClick`, `onChannelMessagePosted` 5. Start server(s): - `await client.start()` returns server handler/address - For multi-module apps, assign unique ports 6. Wire Marketplace subscriptions: - Endpoint URL must target each module's receiver port - Endpoint path should include `/zoom/events` 7. Process API + events: - API calls via `client.endpoints.*` - Event-driven actions via callback handlers 8. Operate and upgrade: - Persist OAuth tokens/state for stable restarts - Use changelog + TypeDoc workflow for version upgrades ## Why Multi-Client Port Strategy Matters In sample patterns, each module runs its own receiver port. If multiple modules share one port by mistake, webhook routing and verification behavior can break in non-obvious ways. # Getting Started Pattern (Single Module) This pattern shows a minimal Rivet bootstrap for Team Chat with OAuth installation support. ```javascript import { TeamChatClient } from "@zoom/rivet/teamchat"; (async () => { const teamchatClient = new TeamChatClient({ clientId: process.env.RIVET_CLIENT_ID, clientSecret: process.env.RIVET_CLIENT_SECRET, webhooksSecretToken: process.env.RIVET_WEBHOOK_SECRET_TOKEN, installerOptions: { redirectUri: process.env.RIVET_REDIRECT_URI, stateStore: process.env.RIVET_STATE_STORE_SECRET, }, port: Number(p