Agent Academy

Agent Academy is a free, source-linked library of skills, prompts, MCP servers and bot templates, organised into courses by profession, for people who hand real work to AI agents: 1,467 live resources, each with its original link, license and safety tags.

Skill

build-zoom-meeting-sdk-app

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.

No credentialsDoes not send

https://github.com/anthropics/knowledge-work-plugins/blob/main/partner-built/zoom-plugin/skills/meeting-sdk/SKILL.md

Install
npx skills add anthropics/knowledge-work-plugins --skill meeting-sdk

Original content

Full originalMITSource

Republished in full under its license, with attribution. The source is authoritative.

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 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)

<script src="https://source.zoom.us/3.1.6/lib/vendor/react.min.js"></script>
<script src="https://source.zoom.us/3.1.6/lib/vendor/react-dom.min.js"></script>
<script src="https://source.zoom.us/3.1.6/lib/vendor/redux.min.js"></script>
<script src="https://source.zoom.us/3.1.6/lib/vendor/redux-thunk.min.js"></script>
<script src="https://source.zoom.us/3.1.6/lib/vendor/lodash.min.js"></script>
<script src="https://source.zoom.us/3.1.6/zoom-meeting-3.1.6.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!

DistributionGlobal ObjectView TypeAPI Style
CDN (zoom-meeting-{ver}.min.js)ZoomMtgClient View (full-page)Callbacks
npm (@zoom/meetingsdk)ZoomMtgEmbeddedComponent View (embeddable)Promises

2. Backend Required for Production

Never expose SDK Secret in client code. Generate signatures server-side:

// 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:

/* 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:

#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:

// In ZoomMtg.init success callback:
document.documentElement.classList.add('meeting-active');
document.body.classList.add('meeting-active');
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:

ViewDescription
Component ViewExtractable, customizable UI - embed meeting in a div
Client ViewFull-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

ConceptDescription
SDK Key/SecretCredentials from Marketplace
SignatureJWT signed with SDK Secret
Component ViewExtractable, customizable UI (Web)
Client ViewFull-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)

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.

Related

SkillSoftware engineering

claude-api

Reference for the Claude API / Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration. TRIGGER — read BEFORE opening the target file; don't skip because it "looks like a one-liner" — whenever: the prompt names Claude/Anthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`,…

Sourcegithub.com/anthropics/skills/blob/main/skills/claude-api/SKILL.md

No credentialsDoes not sendApache-2.0
SkillSoftware engineering

doc-coauthoring

Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar…

Sourcegithub.com/anthropics/skills/blob/main/skills/doc-coauthoring/SKILL.md

No credentialsDoes not sendnot stated
SkillSoftware engineering

mcp-builder

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

Sourcegithub.com/anthropics/skills/blob/main/skills/mcp-builder/SKILL.md

No credentialsDoes not sendApache-2.0
SkillSoftware engineering

skill-creator

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

Sourcegithub.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md

No credentialsDoes not sendApache-2.0
SkillSoftware engineering

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

Sourcegithub.com/anthropics/skills/blob/main/skills/webapp-testing/SKILL.md

No credentialsDoes not sendApache-2.0
SkillSoftware engineering

ai-debt-detector

Use after generating code, after accepting AI suggestions, or when reviewing AI-written modules. Also use when code works but feels brittle, when error handling seems thin, when orphaned resources or missing cleanup are suspected, or when the agent claims done but hidden debt may exist. Catches the specific failure patterns AI agents produce that humans would not.

Sourcegithub.com/wshobson/agents/blob/main/plugins/skill-forge-essentials/skills/ai-debt-detector/SKILL.md

No credentialsDoes not sendMIT