| name | zoom-plugin-sdk |
| description | Zoom Plugin SDK guidance for native macOS and Windows applications that control an installed Zoom Workplace desktop client over IPC. Use for desktop companion apps that start or join meetings, control meeting audio/video/share/UI, inspect participants, or manage supported meeting features without embedding a Zoom client. Route platform-specific implementation to the macOS or Windows child skill. |
Zoom Plugin SDK
Build native desktop companion applications that control the user's installed Zoom Workplace client through inter-process communication (IPC).
Hard Routing Guardrail
- Use Plugin SDK when a separate native macOS or Windows app must control the installed Zoom Workplace desktop client.
- Use Meeting SDK when Zoom meeting functionality must be embedded inside the application's own process or UI.
- Use Zoom Apps SDK when the app runs as a web application inside Zoom Workplace.
- Use REST API for server-side meeting resources, account administration, reporting, or workflows that do not control the local client.
- Do not describe Plugin SDK as a headless meeting bot or a replacement Zoom client. Zoom Workplace must be installed and compatible.
Platform Router
| Target | Child skill |
|---|
| Swift, Objective-C, AppKit, Xcode, macOS | macOS |
| Native C++, Win32, MFC, Visual Studio, Windows | Windows |
Choose one child skill before writing integration code.
Core Architecture
Native companion app
-> user OAuth access token
-> Plugin SDK runtime
-> local IPC connection
-> installed Zoom Workplace client
-> meeting/webinar UI and supported controls
The application does not render or transport meeting media itself. It sends supported control requests to Zoom Workplace and observes asynchronous auth, IPC, meeting, participant, media-control, sharing, and UI events.
Common Lifecycle
- Create a General app in Zoom App Marketplace.
- Enable Plugin SDK under Features > Access.
- Configure an OAuth redirect URL and request user authorization with
plugin_sdk:read:connection_meta plus scopes needed by any REST API calls.
- Install and sign the platform SDK libraries with the application.
- Register and retain the platform event listener.
- Receive the authorization
code at the redirect URL and exchange it for an access token.
- Initialize the Plugin SDK with the OAuth access token and
https://zoom.us domain.
- Wait for successful authentication and an IPC connected event.
- Start or join a meeting, then wait for the in-meeting status before using meeting toolkits.
- Treat immediate Boolean returns as request-submission results and completion callbacks as operation results.
- Uninitialize the SDK during orderly application shutdown.
Need to create/configure the General App first? Use
Marketplace app management for manifest
validation, plugin_sdk feature shape, PKCE/public-client settings, redirect URL rules,
and credential response shapes before wiring Plugin SDK auth. Start from the
Plugin SDK template.
OAuth Token Exchange
For Plugin SDK, do not invent or manually paste an access token. Use the OAuth authorization-code flow. For native desktop apps, prefer Authorization Code with PKCE:
- Register the redirect URL in the Marketplace app.
- Generate a high-entropy
code_verifier and store it only for the current auth attempt.
- Derive
code_challenge = BASE64URL(SHA256(code_verifier)).
- Send the user to Zoom's OAuth authorize URL with
code_challenge and code_challenge_method=S256.
- Receive
?code=... on the redirect URL.
- POST the code to
https://zoom.us/oauth/token.
- Include
grant_type=authorization_code, the same redirect_uri, the authorization code, and code_verifier.
- Use the returned
access_token when initializing Plugin SDK.
If the app registration requires a confidential client secret, perform token exchange and refresh on a trusted backend instead of shipping the secret in the desktop app. The redirect_uri in the token exchange must exactly match the redirect URL used during authorization and configured for the Marketplace app. Do not persist tokens in plaintext files; use secure OS storage or backend-managed storage.
Feature Surface
The 7.1.0 packages expose platform-equivalent toolkits for:
- start/join, meeting status, meeting properties, leave/end, and statistics
- participants, roles, host/co-host controls, waiting room, and permissions
- audio/video devices and in-meeting audio/video controls
- application, monitor, camera, file, audio, frame, and whiteboard sharing
- recording, chat, reactions, closed captions/live transcription, Q&A, and webinars
- annotation, Zoom Workplace view/UI actions, and settings
Feature availability still depends on client version, meeting type, account settings, role, and host policy. Call capability checks where the SDK provides them.
Read Capabilities for a grouped inventory of what Plugin SDK can get or do through the official Zoom Workplace client.
Read FAQ when comparing Plugin SDK with Meeting SDK for Windows or macOS.
Skill Chaining
| Need | Chain to |
|---|
| Create/select Marketplace app, validate manifest, or inspect credential shapes | Marketplace app management |
| User OAuth, PKCE, token refresh, and scopes | zoom-oauth |
| Create or manage meetings before local client control | zoom-rest-api |
| React to server-side lifecycle events when the desktop app is offline | zoom-webhooks |
| Embed a meeting instead of controlling Zoom Workplace | zoom-meeting-sdk |
| Compare official-client control versus embedded Meeting SDK | FAQ |
Use Native Zoom Workplace Companion for the complete cross-platform workflow.
Version and Source Policy
- Public docs used for this skill: macOS and Windows.
- The public product changelog currently labels both platforms as Plugin SDK
1.0.0 (initial
launch); this product release label is separate from the bundled package/build versions below.
- Package review baseline: macOS
7.1.0.595 and Windows 7.1.0.2020.
- Verify exact names and signatures against the headers and sample bundled with the downloaded package.
- Prefer package headers over examples when generated docs and the selected package disagree.
- Do not place machine-local extraction paths in implementation guidance.