build-zoom-meeting-sdk-app
This skill provides reference guidance for implementing Zoom Meeting SDK across web, mobile, desktop, and Linux platforms.
Identity proven by GitHub's verified organisation badge (zoom)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
- License
- MIT (permissive)
- Pin
- 86e2592pinned Oct 9, 2026
- Context cost
- about 2,700 tokenswhen the skill loads
- GitHub stars
- 7on zoom/zoom-plugin-claude
- Scripts
- None found
What it does
“Reference skill for Zoom Meeting SDK. Use after routing to a meeting-embed workflow when implementing real Zoom meeting joins, platform-specific SDK behavior, auth and join flows, waiting room issues, or meeting bot patterns.”
Generated summary from the skill's own text
This skill provides reference guidance for implementing Zoom Meeting SDK across web, mobile, desktop, and Linux platforms. It covers SDK initialization, signature generation, platform-specific setup, and UI customization for embedding live Zoom meetings into applications.
When to use it
- Building web, Android, iOS, or desktop apps that embed Zoom meetings
- Implementing JWT signature generation for SDK authentication
- Integrating Zoom's meeting UI into custom application layouts
- Developing meeting bots or headless meeting participants
When not to
- Managing meeting resources via REST API only without SDK embedding
- Creating simple meeting join links without programmatic meeting control
- Troubleshooting basic Zoom account or meeting configuration issues
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add zoom/zoom-plugin-claude --skill build-zoom-meeting-sdk-appInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install zoom/zoom-plugin-claude build-zoom-meeting-sdk-app@86e2592334f5fb563ed273e26035844004e66165Installs the commit we checked (86e2592).
Copy by hand
Download the folder at 86e2592 and put it in .claude/skills/build-zoom-meeting-sdk-app for Claude Code and in .agents/skills/build-zoom-meeting-sdk-app for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Claude Code plugin
/plugin install zoom-plugin@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "build-zoom-meeting-sdk-app" by Zoom. Source, pinned to commit 86e2592334f5fb563ed273e26035844004e66165: https://github.com/zoom/zoom-plugin-claude/tree/86e2592334f5fb563ed273e26035844004e66165/skills/meeting-sdk 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/build-zoom-meeting-sdk-app/ for Claude Code and .agents/skills/build-zoom-meeting-sdk-app/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/zoom/build-zoom-meeting-sdk-app
SKILL.md at the pin
---
name: build-zoom-meeting-sdk-app
description: Reference skill for Zoom Meeting SDK. Use after routing to a meeting-embed workflow when implementing real Zoom meeting joins, platform-specific SDK behavior, auth and join flows, waiting room issues, or meeting bot patterns.
triggers:
- "embed meeting"
- "embed zoom meeting"
- "integrate meeting"
- "meeting in web app"
- "meeting in website"
- "add zoom to website"
- "meeting sdk"
- "join meeting programmatically"
- "meeting bot"
- "bot joins meeting"
- "joining meeting timeout"
- "join meeting failed"
- "waiting room"
- "hide meeting info"
- "hide meeting password"
---
# /build-zoom-meeting-sdk-app
Background reference for embedded Zoom meetings across web, mobile, desktop, and Linux bot environments. Prefer `build-zoom-meeting-app` or `build-zoom-bot` first, then route here for platform detail.
# Zoom Meeting SDK
Embed the full Zoom meeting experience into web, mobile, desktop, and headless integrations.
## Hard Routing Guardrail (Read First)
- If the user asks to embed/join meetings inside their app UI, route to Meeting SDK implementation.
- Do not switch to REST-only meeting link flow unless the user explicitly asks for meeting resource management or browser `join_url` links.
- Meeting SDK join path requires SDK signature + SDK join call; REST `join_url` is not a Meeting SDK join payload.
## Prerequisites
- Zoom app with Meeting SDK credentials
- SDK Key and Secret from Marketplace
- Platform-specific development environment (Web, Android, iOS, macOS, Unreal, Electron, Linux, or Windows)
> **Need to create the SDK app first?** Use
> [Marketplace app management](../rest-api/references/marketplace-apps.md) for app creation,
> manifest validation, app-type quirks, and credential response shapes before generating
> Meeting SDK signatures. Start from the
> [Meeting SDK create template](../rest-api/assets/marketplace-apps/marketplace-app-creation-template-for-meeting-sdk.json).
> **Need help with OAuth or signatures?** See the **[zoom-oauth](../oauth/SKILL.md)** skill for authentication flows.
> **Need pre-join diagnostics on web?** Use **[probe-sdk](../probe-sdk/SKILL.md)** before Meeting SDK init/join to gate low-readiness devices/networks.
> **Start troubleshooting fast:** Use the **[5-Minute Runbook](RUNBOOK.md)** before deep debugging.
## Quick Start (Web - Client View via CDN)
```html
<script src="https://source.zoom.us/6.0.0/lib/vendor/react.min.js"></script>
<script src="https://source.zoom.us/6.0.0/lib/vendor/react-dom.min.js"></script>
<script src="https://source.zoom.us/6.0.0/lib/vendor/redux.min.js"></script>
<script src="https://source.zoom.us/6.0.0/lib/vendor/redux-thunk.min.js"></script>
<script src="https://source.zoom.us/6.0.0/lib/vendor/lodash.min.js"></script>
<script src="https://source.zoom.us/6.0.0/zoom-meeting-6.0.0.min.js"></script>
<script>
// CDN provides ZoomMtg (Client View - full page)
// For ZoomMtgEmbedded (Component View), use npm instead
ZoomMtg.preLoadWasm();
ZoomMtg.prepareWebSDK();
ZoomMtg.init({
leaveUrl: window.location.href,
patchJsMedia: true,
disableCORP: !window.crossOriginIsolated,
success: function() {
ZoomMtg.join({
sdkKey: 'YOUR_SDK_KEY',
signature: 'YOUR_SIGNATURE', // Generate server-side!
meetingNumber: 'MEETING_NUMBER',
userName: 'User Name',
passWord: '', // Note: camelCase with capital W
success: function(res) { console.log('Joined'); },
error: function(err) { console.error(err); }
});
},
error: function(err) { console.error(err); }
});
</script>
```
## Critical Notes (Web)
### 1. CDN vs npm - Different APIs!
| Distribution | Global Object | View Type | API Style |
|--------------|---------------|-----------|-----------|
| CDN (`zoom-meeting-{ver}.min.js`) | `ZoomMtg` | Client View (full-page) | Callbacks |
| npm (`@zoom/meetingsdk`) | `ZoomMtgEmbedded` | Component View (embeddable) | Promises |
### 2. Backend Required for Production
**Never expose SDK Secret in client code.** Generate signatures server-side:
```javascript
// server.js (Node.js example)
const KJUR = require('jsrsasign');
app.post('/api/signature', (req, res) => {
const { meetingNumber, role } = req.body;
const iat = Math.floor(Date.now() / 1000) - 30;
const exp = iat + 60 * 60 * 2;
const header = { alg: 'HS256', typ: 'JWT' };
const payload = {
sdkKey: process.env.ZOOM_SDK_KEY,
mn: String(meetingNumber).replace(/\D/g, ''),
role: parseInt(role, 10),
iat, exp, tokenExp: exp
};
const signature = KJUR.jws.JWS.sign('HS256',
JSON.stringify(header),
JSON.stringify(payload),
process.env.ZOOM_SDK_SECRET
);
res.json({ signature, sdkKey: process.env.ZOOM_SDK_KEY });
});
```
### 3. CSS Conflicts - Avoid Global Resets
Global `* { margin: 0; }` breaks Zoom's UI. Scope your styles:
```css
/* BAD */
* { margin: 0; padding: 0; }
/* GOOD */
.your-app, .your-app * { box-sizing: border-box; }
```
### 4. Client View Toolbar Cropping Fix
If toolbar falls off screen, scale down the Zoom UI:
```css
#zmmtg-root {
position: fixed !important;
top: 0 !important;
left: 0 !important;
right: 0 !important;
bottom: 0 !important;
width: 100vw !important;
height: 100vh !important;
/* Critical for SPAs (React/Next/etc): ensure Zoom UI isn't behind your app shell/overlays. */
z-index: 9999 !important;
transform: scale(0.95) !important;
transform-origin: top center !important;
}
```
### 5. Hide Your App When Meeting Starts
Client View takes over full page. Hide your UI:
```javascript
// In ZoomMtg.init success callback:
document.documentElement.classList.add('meeting-active');
document.body.classList.add('meeting-active');
```
```css
body.meeting-active .your-app { display: none !important; }
body.meeting-active { background: #000 !important; }
```
## UI Options (Web)
Meeting SDK provides **Zoom's UI with customization options**:
| View | Description |
|------|-------------|
| **Component View** | Extractable, customizable UI - embed meeting in a div |
| **Client View** | Full-page Zoom UI experience |
**Note**: Unlike Video SDK where you build the UI from scratch, Meeting SDK uses Zoom's UI as the base with customization on top.
## Key Concepts
| Concept | Description |
|---------|-------------|
| SDK Key/Secret | Credentials from Marketplace |
| Signature | JWT signed with SDK Secret |
| Component View | Extractable, customizable UI (Web) |
| Client View | Full-page Zoom UI (Web) |
## Detailed References
### Platform Guides
- **[android/SKILL.md](android/SKILL.md)** - Android SDK (default/custom UI, join/start/auth lifecycle, mobile integration)
- **[android/references/android-reference-map.md](android/references/android-reference-map.md)** - Android API surface map and drift watchpoints
- **[ios/SKILL.md](ios/SKILL.md)** - iOS SDK (default/custom UI, join/start/auth lifecycle, mobile integration)
- **[ios/references/ios-reference-map.md](ios/references/ios-reference-map.md)** - iOS API surface map and drift watchpoints
- **[macos/SKILL.md](macos/SKILL.md)** - macOS SDK (desktop default/custom UI, service controllers, host flows)
- **[macos/references/macos-reference-map.md](macos/references/macos-reference-map.md)** - macOS API surface map and drift watchpoints
- **[unreal/SKILL.md](unreal/SKILL.md)** - Unreal Engine wrapper (C++/Blueprint wrapper behavior and SDK mapping)
- **[unreal/references/unreal-reference-map.md](unreal/references/unreal-reference-map.md)** - Unreal wrapper reference map and version-lag notes
- **[references/android.md](references/android.md)** - Android pointer doc for fast routing from broad Meeting SDK queries
- **[references/ios.md](references/ios.md)** - iOS pointer doc for fast routing from broad Meeting SDK queries
- **[references/macos.md](references/macos.md)** - macOS pointer doc for fast routing from broad Meeting SDK queries
- **[references/unreal.md](references/unreal.md)** - Unreal pointer doc for fast routing from broad Meeting SDK queries
- **[linux/SKILL.md](linux/SKILL.md)** - Linux SDK headless bot skill entrypoint
- **[linux/linux.md](linux/linux.md)** - Linux SDK (C++ headless bots, raw media access)
- **[linux/references/linux-reference.md](linux/references/linux-reference.md)** - Linux dependencies, Docker, troubleshooting
- **[react-native/SKILL.md](react-native/SKILL.md)** - React Native SDK (iOS/Android wrapper, join/start flows, bridge setup)
- **[react-native/SKILL.md](react-native/SKILL.md)** - React Native complete navigation
- **[electron/SKILL.md](electron/SKILL.md)** - Electron SDK (desktop wrapper, auth/join flows, module controllers, raw data)
- **[electron/SKILL.md](electron/SKILL.md)** - Electron complete navigation
- **[windows/SKILL.md](windows/SKILL.md)** - Windows SDK (C++ desktop applications, raw media access)
- **[windows/references/windows-reference.md](windows/references/windows-reference.md)** - Windows dependencies, Visual Studio setup, troubleshooting
- **[web/references/web.md](web/references/web.md)** - Web SDK (Component + Client View)
- **[web/references/web-tracking-id.md](web/references/web-tracking-id.md)** - Tracking ID configuration
### Features
- **[references/authorization.md](references/authorization.md)** - SDK JWT generation
- **[references/bot-authentication.md](references/bot-authentication.md)** - ZAK vs OBF vs JWT tokens for bots
- **[references/breakout-rooms.md](references/breakout-rooms.md)** - Programmatic breakout room management
- **[references/ai-companion.md](references/ai-companion.md)** - AI Companion controls in meetings
- **[references/webinars.md](references/webinars.md)** - Webinar SDK features
- **[references/forum-top-questions.md](references/forum-top-questions.md)** - Common forum question patterns (what to cover)
- **[references/triage-intake.md](references/triage-intake.md)** - What to ask first (turn vague reports into answers)
- **[references/signature-playbook.md](references/signature-playbook.md)** - Signature/root-cause playbook
- **[references/multiple-meetings.md](references/multiple-meetings.md)** - Joining multiple meetings / multiple instances
- **[references/troubleshooting.md](references/troubleshooting.md)** - Common issues and solutions
## Sample Repositories
### Official (by Zoom)
| Type | Repository | Stars |
|------|------------|-------|
| Linux Headless | [meetingsdk-headless-linux-sample](https://github.com/zoom/meetingsdk-headless-linux-sample) | 4 |
| Linux Raw Data | [meetingsdk-linux-raw-recording-sample](https://github.com/zoom/meetingsdk-linux-raw-recording-sample) | 0 |
| Web | [meetingsdk-web-sample](https://github.com/zoom/meetingsdk-web-sample) | 643 |
| Web NPM | [meetingsdk-web](https://github.com/zoom/meetingsdk-web) | 324 |
| React | [meetingsdk-react-sample](https://github.com/zoom/meetingsdk-react-sample) | 177 |
| Auth | [meetingsdk-auth-endpoint-sample](https://github.com/zoom/meetingsdk-auth-endpoint-sample) | 124 |
| Angular | [meetingsdk-angular-sample](https://github.com/zoom/meetingsdk-angular-sample) | 60 |
| Vue.js | [meetingsdk-vuejs-sample](https://github.com/zoom/meetingsdk-vuejs-sample) | 42 |
**Full list**: See [general/references/community-repos.md](../general/references/community-repos.md)
## Resources
- **Official docs**: https://developers.zoom.us/docs/meeting-sdk/
- **Developer forum**: https://devforum.zoom.us/
## Environment Variables
- See [references/environment-variables.md](references/environment-variables.md) for standardized `.env` keys and where to find each value.
From zoom/zoom-plugin-claude at 86e2592, shown as plain text under its license: MIT (permissive). The license text is in LICENSE.
View SKILL.md on GitHub at 86e2592Files
- SKILL.md12 KB · dd6d4435949a
- RUNBOOK.md2.7 KB · 9b9e5e2aa7b0
- references/
- ai-companion.md6.6 KB · 1f2f797869ff
- android.md754 B · 7f933de527c9
- authorization.md2.4 KB · 36d5cd10da7a
- bot-authentication.md11 KB · dc3904db77a5
- breakout-rooms.md12 KB · 8e6ec9afc3b0
- environment-variables.md1.4 KB · 2c7c59ccad0c
- forum-top-questions.md4.0 KB · aa5f28cc495a
- ios.md919 B · 4986a9e5df62
- macos.md599 B · 79179982b7cc
- multiple-meetings.md965 B · 1af20a6dbb4c
- signature-playbook.md1.4 KB · e74bc293556a
- triage-intake.md1.9 KB · f4f514b6f396
- troubleshooting.md4.2 KB · 095f347951f5
- unreal.md732 B · e421c9b6d29d
- webinars.md8.0 KB · 5f4bc5291b34
17 files, 71 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 86e2592More from Zoom
build-zoom-bot
This skill guides building Zoom bots that join meetings, capture media, or process live transcripts using Meeting SDK and RTMS.
Claude Code, Codex, Cursor +4 · about 300 tokens · pinned 6 days ago
build-zoom-contact-center-app
This skill provides implementation guidance for Zoom Contact Center integrations across desktop apps, web embeds, and native mobile platforms.
Claude Code, Codex, Cursor +3 · about 1.2K tokens · pinned 6 days ago
build-zoom-meeting-app
This skill guides agents in building embedded Zoom meeting applications by helping select appropriate SDKs, plan authentication flows, and route to Meeting…
Claude Code, Codex, Cursor +4 · about 310 tokens · pinned 6 days ago
build-zoom-phone-integration
This skill provides reference guidance for implementing Zoom Phone integrations using OAuth, REST APIs, webhooks, Smart Embed iframe components, URI schemes…
Claude Code, Codex, Cursor +3 · about 1.1K tokens · pinned 6 days ago
build-zoom-rest-api-app
This skill provides comprehensive reference documentation and examples for building server-side integrations with the Zoom REST API, covering 600+ endpoints…
Claude Code, Codex, Cursor +3 · about 6.7K tokens · pinned 6 days ago
build-zoom-team-chat-app
This skill provides reference documentation and implementation guidance for building integrations with Zoom Team Chat and Chatbot APIs.
Claude Code, Codex, Cursor +3 · about 6.2K tokens · pinned 6 days ago
Related in Frontend and design
next-bundle-optimizer
Audits Next.js applications to identify and reduce browser bundle size and initial-load work by analyzing routes, dependencies and client outputs.
by VercelOfficial publisher
Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago
next-cache-components-optimizer
Optimize Next.js routes to display meaningful UI instantly on initial load or client navigation by encoding the optimization goal as a failing…
by VercelOfficial publisher
Claude Code, Codex, Cursor +4 · about 5.6K tokens · pinned 6 days ago
next-partial-prefetching-adoption
Enables Partial Prefetching in Next.js 16.3+ apps and guides adoption through auditing Link prefetch behavior, preserving UI in tests or manually, and…
by VercelOfficial publisher
Claude Code, Codex, Cursor +4 · about 6.7K tokens · pinned 6 days ago
remotion-interactivity
This skill teaches how to structure Remotion code so the Studio IDE recognizes and makes it interactive.
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.4K tokens · pinned 6 days ago
remotion-interactivity
This skill teaches how to structure Remotion video components to unlock Studio interactivity features like click selection, drag-and-drop, resizing, rotation…
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 4.8K tokens · pinned 6 days ago
remotion-maps
This skill enables creating map-based animations with Remotion using four different mapping libraries: Mapbox, MapLibre, MapTiler, or CesiumJS.
by RemotionOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 240 tokens · pinned 6 days ago