[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FKH7GGAE2TE6EKABM0QVTY":3,"skill-same:01M6FKH7GGAE2TE6EKABM0QVTY":53},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":35,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6FKH7GGAE2TE6EKABM0QVTY","ui-toolkit",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fui-toolkit\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[23,24,25],"toolkit","ui","ui toolkit","2026-11-10 10:12:30",false,"# Zoom Video SDK UI Toolkit\n\nPre-built video conferencing UI powered by Zoom Video SDK. Drop-in solution for web applications.\n\n**Official Documentation**: https:\u002F\u002Fdevelopers.zoom.us\u002Fdocs\u002Fvideo-sdk\u002Fweb\u002Fui-toolkit\u002F\n**API Reference**: https:\u002F\u002Fmarketplacefront.zoom.us\u002Fsdk\u002Fuitoolkit\u002Fweb\u002F\n**NPM Package**: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@zoom\u002Fvideosdk-zoom-ui-toolkit\n**Live Demo**: https:\u002F\u002Fsdk.zoom.com\u002Fvideosdk-uitoolkit\n\n## Quick Links\n\n**New to UI Toolkit? Follow this path:**\n\n1. **Quick Start** - Get running in 5 minutes (see below)\n2. **JWT Authentication** - Server-side token generation (required)\n3. **Composite vs Components** - Choose your approach  \n4. **Framework Integration** - React, Vue, Angular, Next.js patterns\n5. **Integrated Index** - see the section below in this file\n\n**Having issues?**\n- Session not joining → Check JWT Authentication (most common issue)\n- React 18 peer dependency error → See Installation section\n- CSS not loading → See [Troubleshooting](troubleshooting\u002Fcommon-issues.md)\n- Components not showing → Check Component Lifecycle\n- Start with preflight checks → [5-Minute Runbook](RUNBOOK.md)\n\n## Overview\n\nThe Zoom Video SDK UI Toolkit is a **pre-built video UI library** that renders complete video conferencing experiences with minimal code. Unlike the raw Video SDK, the UI Toolkit provides:\n\n- ✅ **Ready-to-use UI** - Professional video interface out of the box\n- ✅ **Zero UI code** - No need to build video layouts, controls, or participant management\n- ✅ **Framework agnostic** - Works with React, Vue, Angular, Next.js, vanilla JS\n- ✅ **Highly customizable** - Choose which features to enable, customize themes\n- ✅ **Built-in features** - Chat, screen share, settings, virtual backgrounds included\n\n**When to use UI Toolkit:**\n- You want a complete video solution quickly\n- You need Zoom-like UI consistency\n- You don't want to build custom video UI\n- You need standard features (chat, share, participants)\n\n**When to use raw Video SDK instead:**\n- You need complete custom UI control\n- You're building a non-standard video experience\n- You need access to raw video\u002Faudio data\n- You want to build your own rendering pipeline\n\n## Installation\n\n```bash\nnpm install @zoom\u002Fvideosdk-zoom-ui-toolkit jsrsasign\nnpm install -D @types\u002Fjsrsasign\n```\n\n**Note**: React support depends on the UI Toolkit version. Check the package peer dependencies for your installed version (React 18 is commonly required).\n\n## Quick Start\n\n### Basic Usage (Vanilla JS)\n\n```javascript\nimport uitoolkit from \"@zoom\u002Fvideosdk-zoom-ui-toolkit\";\nimport \"@zoom\u002Fvideosdk-ui-toolkit\u002Fdist\u002Fvideosdk-zoom-ui-toolkit.css\";\n\nconst container = document.getElementById(\"sessionContainer\");\n\nconst config = {\n  videoSDKJWT: \"your_jwt_token\",\n  sessionName: \"my-session\",\n  userName: \"John Doe\",\n  sessionPasscode: \"\",\n  features: [\"video\", \"audio\", \"share\", \"chat\", \"users\", \"settings\"],\n};\n\nuitoolkit.joinSession(container, config);\n\nuitoolkit.onSessionJoined(() => {\n  console.log(\"Session joined\");\n});\n\nuitoolkit.onSessionClosed(() => {\n  console.log(\"Session closed\");\n});\n```\n\n### Next.js \u002F React Integration\n\n```typescript\n'use client';\n\nimport { useEffect, useRef } from 'react';\n\nexport default function VideoSession({ jwt, sessionName, userName }) {\n  const containerRef = useRef\u003CHTMLDivElement>(null);\n  const uitoolkitRef = useRef\u003Cany>(null);\n\n  useEffect(() => {\n    let isMounted = true;\n\n    const init = async () => {\n      const uitoolkitModule = await import('@zoom\u002Fvideosdk-zoom-ui-toolkit');\n      const uitoolkit = uitoolkitModule.default;\n      uitoolkitRef.current = uitoolkit;\n      \n      \u002F\u002F If TypeScript complains about CSS imports, configure your app to allow them\n      \u002F\u002F (for example via a global `declare module \\\"*.css\\\";`), or import the CSS from\n      \u002F\u002F a global entrypoint (Next.js layout\u002F_app) instead of inlining here.\n      await import('@zoom\u002Fvideosdk-ui-toolkit\u002Fdist\u002Fvideosdk-zoom-ui-toolkit.css');\n\n      if (!isMounted || !containerRef.current) return;\n\n      const config: any = {\n        videoSDKJWT: jwt,\n        sessionName: sessionName,\n        userName: userName,\n        sessionPasscode: '',\n        features: ['video', 'audio', 'share', 'chat', 'users', 'settings'],\n      };\n\n      uitoolkit.joinSession(containerRef.current, config);\n      uitoolkit.onSessionJoined(() => console.log('Joined'));\n      uitoolkit.onSessionClosed(() => console.log('Closed'));\n    };\n\n    init();\n\n    return () => {\n      isMounted = false;\n      if (uitoolkitRef.current && containerRef.current) {\n        try {\n          uitoolkitRef.current.closeSession(containerRef.current);\n        } catch (e) {}\n      }\n    };\n  }, [jwt, sessionName, userName]);\n\n  return \u003Cdiv ref={containerRef} style={{ width: '100%', height: '100vh' }} \u002F>;\n}\n```\n\n## Available Features\n\n| Feature | Description |\n|---------|-------------|\n| `video` | Enable video layout and send\u002Freceive video |\n| `audio` | Show audio button, send\u002Freceive audio |\n| `share` | Screen sharing |\n| `chat` | In-session messaging |\n| `users` | Participant list |\n| `settings` | Device selection, virtual background |\n| `preview` | Pre-join camera\u002Fmic preview |\n| `recording` | Cloud recording (paid plan) |\n| `leave` | Leave\u002Fend session button |\n\n## Troubleshooting\n\n- **[troubleshooting\u002Fcommon-issues.md](troubleshooting\u002Fcommon-issues.md)** - CSS, SSR, JWT\u002Fsession join, customization limits\n\n## JWT Token Generation (Server-Side)\n\n**Required**: Generate JWT tokens on your server, never expose SDK secret client-side.\n\n### Node.js \u002F Next.js API Route\n\n```typescript\nimport { NextRequest, NextResponse } from 'next\u002Fserver';\nimport { KJUR } from 'jsrsasign';\n\nconst ZOOM_VIDEO_SDK_KEY = process.env.ZOOM_VIDEO_SDK_KEY;\nconst ZOOM_VIDEO_SDK_SECRET = process.env.ZOOM_VIDEO_SDK_SECRET;\n\nexport async function POST(request: NextRequest) {\n  const { sessionName, role, userName } = await request.json();\n\n  if (!sessionName || role === undefined) {\n    return NextResponse.json({ error: 'Missing params' }, { status: 400 });\n  }\n\n  const iat = Math.floor(Date.now() \u002F 1000);\n  const exp = iat + 60 * 60 * 2; \u002F\u002F 2 hours\n\n  const oHeader = { alg: 'HS256', typ: 'JWT' };\n  const oPayload = {\n    app_key: ZOOM_VIDEO_SDK_KEY,\n    role_type: role, \u002F\u002F 0 = participant, 1 = host\n    tpc: sessionName,\n    version: 1,\n    iat,\n    exp,\n    user_identity: userName || 'User',\n  };\n\n  const signature = KJUR.jws.JWS.sign(\n    'HS256',\n    JSON.stringify(oHeader),\n    JSON.stringify(oPayload),\n    ZOOM_VIDEO_SDK_SECRET\n  );\n\n  return NextResponse.json({ signature });\n}\n```\n\n### JWT Payload Fields\n\n| Field | Required | Description |\n|-------|----------|-------------|\n| `app_key` | Yes | Your Video SDK Key |\n| `role_type` | Yes | 0 = participant, 1 = host |\n| `tpc` | Yes | Session\u002Ftopic name |\n| `version` | Yes | Always 1 |\n| `iat` | Yes | Issued at (Unix timestamp) |\n| `exp` | Yes | Expiration (Unix timestamp) |\n| `user_identity` | No | User identifier |\n\n## API Reference\n\n### Core Methods\n\n```javascript\nuitoolkit.joinSession(container, config);\nuitoolkit.closeSession(container);\n```\n\n### Event Listeners\n\n```javascript\nuitoolkit.onSessionJoined(callback);\nuitoolkit.onSessionClosed(callback);\nuitoolkit.offSessionJoined(callback);\nuitoolkit.offSessionClosed(callback);\n```\n\n### Component Methods\n\n```javascript\nuitoolkit.showChatComponent(container);\nuitoolkit.hideChatComponent(container);\nuitoolkit.showUsersComponent(container);\nuitoolkit.hideUsersComponent(container);\nuitoolkit.showControlsComponent(container);\nuitoolkit.hideControlsComponent(container);\nuitoolkit.showSettingsComponent(container);\nuitoolkit.hideSettingsComponent(container);\nuitoolkit.hideAllComponents();\n```\n\n## CDN Usage (No Build Step)\n\n```html\n\u003Clink rel=\"stylesheet\" href=\"https:\u002F\u002Fsource.zoom.us\u002Fuitoolkit\u002F2.3.5-1\u002Fvideosdk-zoom-ui-toolkit.css\" \u002F>\n\u003Cscript src=\"https:\u002F\u002Fsource.zoom.us\u002Fuitoolkit\u002F2.3.5-1\u002Fvideosdk-zoom-ui-toolkit.min.umd.js\">\u003C\u002Fscript>\n\n\u003Cdiv id=\"sessionContainer\">\u003C\u002Fdiv>\n\n\u003Cscript>\n  const uitoolkit = window.UIToolkit;\n  \n  uitoolkit.joinSession(document.getElementById('sessionContainer'), {\n    videoSDKJWT: 'your_jwt',\n    sessionName: 'my-session',\n    userName: 'User',\n    features: ['video', 'audio', 'chat']\n  });\n\u003C\u002Fscript>\n```\n\n## Next.js with basePath\n\nWhen deploying Next.js under a subpath:\n\n```typescript\n\u002F\u002F next.config.ts\nconst nextConfig = {\n  basePath: \"\u002Fyour-app-path\",\n  assetPrefix: \"\u002Fyour-app-path\",\n};\n```\n\nFetch API routes with full path:\n```typescript\nfetch('\u002Fyour-app-path\u002Fapi\u002Ftoken', { ... })\n```\n\n## Prerequisites\n\n1. **Zoom Video SDK credentials** from [Zoom Marketplace](https:\u002F\u002Fmarketplace.zoom.us\u002F)\n2. **React** version compatible with your installed UI Toolkit package (check peer deps; React 18 is common)\n3. **Server-side JWT generation** (never expose SDK secret)\n4. **Modern browser** with WebRTC support\n\n## Browser Support\n\n| Browser | Version |\n|---------|---------|\n| Chrome | 78+ |\n| Firefox | 76+ |\n| Safari | 14.1+ |\n| Edge | 79+ |\n\n## Common Issues\n\n| Issue | Solution |\n|-------|----------|\n| `peer react@\"^18.0.0\"` error | Use the React version required by the installed UI Toolkit package (check peer deps; React 18 is common) |\n| CSS import TypeScript error | Configure TS\u002FCSS handling (prefer a global `*.css` module declaration); avoid `@ts-ignore` except in throwaway demos |\n| Config type error | Type config as `any` |\n| API returns HTML not JSON | Check basePath in fetch URL |\n\n## Resources\n\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fzoom\u002Fvideosdk-zoom-ui-toolkit-web\n- **UI Toolkit Docs**: https:\u002F\u002Fdevelopers.zoom.us\u002Fdocs\u002Fvideo-sdk\u002Fweb\u002Fui-toolkit\u002F\n- **Auth Endpoint Sample**: https:\u002F\u002Fgithub.com\u002Fzoom\u002Fvideosdk-auth-endpoint-sample\n- **Marketplace**: https:\u002F\u002Fmarketplace.zoom.us\u002F\n\n---\n\n## Integrated Index\n\n_This section was migrated from `SKILL.md`._\n\nComplete navigation for all UI Toolkit documentation.\n\n## ? Start Here\n\nNew to the UI Toolkit? Follow this learning path:\n\n1. **[SKILL.md](SKILL.md)** - Main overview and quick start\n2. **[5-Minute Runbook](RUNBOOK.md)** - Preflight checks before deep debugging\n3. **Quick Start Guide** - Working code in 5 minutes (see skill.md)\n4. **JWT Authentication** - Server-side token generation (see skill.md)\n5. **Choose Your Mode** - Composite vs Components (see skill.md)\n\n## ? Core Concepts\n\nUnderstanding how UI Toolkit works:\n\n- **Composite vs Components** - Two ways to use UI Toolkit (see skill.md)\n- **UI Toolkit Architecture** - How it wraps Video SDK internally\n- **Feature Configuration** - Understanding featuresOptions structure\n- **Session Lifecycle** - Join → Active → Leave\u002FClose → Destroy flow\n\n## ? Complete Guides\n\n### Getting Started\n- **Installation** - NPM install and React 18 setup (see skill.md)\n- **Quick Start - Composite** - Full UI in one container (see skill.md)\n- **Quick Start - Components** - Individual UI pieces (see skill.md)\n- **JWT Authentication** - Server-side token generation (see skill.md)\n\n### Framework Integration\n- **React Integration** - Hooks, useEffect patterns (see skill.md)\n- **Vue.js Integration** - Composition API and Options API (see skill.md)\n- **Angular Integration** - Component lifecycle (see skill.md)\n- **Next.js Integration** - App Router, Server Components (see skill.md)\n- **Vanilla JavaScript** - No framework usage (see skill.md)\n\n### Advanced Topics\n- **Component Lifecycle** - Mount, unmount, cleanup patterns\n- **Event Listeners** - React to session events\n- **Session Management** - Programmatic control\n- **Quality Statistics** - Monitor connection quality\n- **Custom Themes** - Theme customization\n- **Virtual Backgrounds** - Custom background images\n\n## ? API Reference\n\nComplete API documentation:\n\n- **Core Methods** (see skill.md)\n  - `joinSession()` - Start a video session\n  - `closeSession()` - End session and remove UI\n  - `destroy()` - Clean up UI Toolkit instance\n  - `leaveSession()` - Leave without destroying UI\n\n- **Component Methods** (see skill.md)\n  - `showControlsComponent()` - Display control bar\n  - `showChatComponent()` - Display chat panel\n  - `showUsersComponent()` - Display participants list\n  - `showSettingsComponent()` - Display settings panel\n  - `hideAllComponents()` - Hide all components\n\n- **Event Listeners** (see skill.md)\n  - `onSessionJoined()` - Session joined successfully\n  - `onSessionClosed()` - Session ended\n  - `onSessionDestroyed()` - UI Toolkit destroyed\n  - `onViewTypeChange()` - View mode changed\n  - `on()` - Subscribe to Video SDK events\n  - `off()` - Unsubscribe from events\n\n- **Information Methods** (see skill.md)\n  - `getSessionInfo()` - Get session details\n  - `getCurrentUserInfo()` - Get current user\n  - `getAllUser()` - Get all participants\n  - `getClient()` - Get underlying Video SDK client\n  - `version()` - Get version info\n\n- **Control Methods** (see skill.md)\n  - `changeViewType()` - Switch view mode\n  - `mirrorVideo()` - Mirror self video\n  - `isSupportCustomLayout()` - Check device support\n\n- **Statistics Methods** (see skill.md)\n  - `subscribeAudioStatisticData()` - Audio quality stats\n  - `subscribeVideoStatisticData()` - Video quality stats\n  - `subscribeShareStatisticData()` - Share quality stats\n\n## ? Configuration\n\n- **Feature Configuration** (see skill.md)\n  - `featuresOptions` structure\n  - Audio\u002FVideo options\n  - Chat, Users, Settings\n  - Virtual Background\n  - Recording, Captions (paid features)\n  - Theme customization\n  - View modes\n\n- **Session Configuration** (see skill.md)\n  - Required: `videoSDKJWT`, `sessionName`, `userName`\n  - Optional: `sessionPasscode`, `sessionIdleTimeoutMins`\n  - Debug mode\n  - Web endpoint\n  - Language settings\n\n## ⚠️ Troubleshooting\n\n### Common Issues\n- React 18 peer dependency error\n- JWT token invalid\n- CSS not loading\n- Components not showing\n- Session join failures\n\nSee: **[troubleshooting\u002Fcommon-issues.md](troubleshooting\u002Fcommon-issues.md)**\n\n### Framework-Specific Issues\n- React: SSR, hydration, cleanup\n- Vue: Reactivity, lifecycle\n- Angular: Module imports, AOT\n- Next.js: App Router, basePath\n\n### Session Issues\n- Authentication failures\n- Connection problems\n- Video\u002Faudio not working\n- Screen share issues\n\n## ? Sample Applications\n\n**Official Repositories**:\n\n| Framework | Repository | Key Features |\n|-----------|------------|--------------|\n| React | [videosdk-zoom-ui-toolkit-react-sample](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fvideosdk-zoom-ui-toolkit-react-sample) | Hooks, TypeScript |\n| Vue.js | [videosdk-zoom-ui-toolkit-vuejs-sample](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fvideosdk-zoom-ui-toolkit-vuejs-sample) | Composition API |\n| Angular | [videosdk-zoom-ui-toolkit-angular-sample](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fvideosdk-zoom-ui-toolkit-angular-sample) | Services, Guards |\n| JavaScript | [videosdk-zoom-ui-toolkit-javascript-sample](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fvideosdk-zoom-ui-toolkit-javascript-sample) | Vanilla JS |\n| Auth Endpoint | [videosdk-auth-endpoint-sample](https:\u002F\u002Fgithub.com\u002Fzoom\u002Fvideosdk-auth-endpoint-sample) | Node.js JWT |\n\n## ? External Resources\n\n- **Official Documentation**: https:\u002F\u002Fdevelopers.zoom.us\u002Fdocs\u002Fvideo-sdk\u002Fweb\u002Fui-toolkit\u002F\n- **API Reference**: https:\u002F\u002Fmarketplacefront.zoom.us\u002Fsdk\u002Fuitoolkit\u002Fweb\u002F\n- **NPM Package**: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@zoom\u002Fvideosdk-zoom-ui-toolkit\n- **Marketplace**: https:\u002F\u002Fmarketplace.zoom.us\u002F\n- **Developer Forum**: https:\u002F\u002Fdevforum.zoom.us\u002F\n- **Live Demo**: https:\u002F\u002Fsdk.zoom.com\u002Fvideosdk-uitoolkit\n- **Changelog**: https:\u002F\u002Fdevelopers.zoom.us\u002Fchangelog\u002Fui-toolkit\u002Fweb\u002F\n\n## ? Learning Path\n\n### Beginner\n1. Read [SKILL.md](SKILL.md) overview\n2. Follow Quick Start - Composite\n3. Generate JWT on server\n4. Join your first session\n5. Explore available features\n\n### Intermediate\n1. Try Component Mode\n2. Add event listeners\n3. Customize theme\n4. Add virtual backgrounds\n5. Integrate with your framework\n\n### Advanced\n1. Access underlying Video SDK\n2. Subscribe to quality statistics\n3. Handle all edge cases\n4. Implement custom layouts\n5. Build production-ready app\n\n## ? Quick Reference Card\n\n### Minimal Working Example\n\n```javascript\nimport uitoolkit from \"@zoom\u002Fvideosdk-zoom-ui-toolkit\";\nimport \"@zoom\u002Fvideosdk-ui-toolkit\u002Fdist\u002Fvideosdk-zoom-ui-toolkit.css\";\n\nconst config = {\n  videoSDKJWT: \"YOUR_JWT\",\n  sessionName: \"test-session\",\n  userName: \"User\",\n  featuresOptions: {\n    video: { enable: true },\n    audio: { enable: true }\n  }\n};\n\nuitoolkit.joinSession(document.getElementById(\"container\"), config);\nuitoolkit.onSessionJoined(() => console.log(\"Joined\"));\nuitoolkit.onSessionClosed(() => uitoolkit.destroy());\n```\n\n### Must-Remember Rules\n\n1. ✅ **Always** generate JWT server-side\n2. ✅ **Always** call `destroy()` on cleanup\n3. ✅ **Always** use React 18 (not 17\u002F19)\n4. ✅ **Always** import CSS file\n5. ❌ **Never** expose SDK secret client-side\n6. ❌ **Never** skip `onSessionClosed` cleanup\n7. ❌ **Never** call components before `joinSession`\n\n## ? Support\n\n- **Developer Forum**: https:\u002F\u002Fdevforum.zoom.us\u002F\n- **Developer Support**: https:\u002F\u002Fdevelopers.zoom.us\u002Fsupport\u002F\n- **Premier Support**: https:\u002F\u002Fexplore.zoom.us\u002Fen\u002Fsupport-plans\u002Fdeveloper\u002F\n\n---\n\n**Navigation**: [← Back to SKILL.md](SKILL.md)\n\n## Environment Variables\n\n- See [references\u002Fenvironment-variables.md](references\u002Fenvironment-variables.md) for standardized `.env` keys and where to find each value.\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fzoom\u002Fskills\u002Fui-toolkit",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill ui-toolkit",{"tool":45,"command":46},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill ui-toolkit",{"tool":48,"command":49},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill ui-toolkit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fui-toolkit\u002FSKILL.md",true,[],[54,68,78,87,93,100],{"skillNo":55,"name":56,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":64,"publishedAt":26},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[59],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[65,66,67],"model","model hierarchy","model hierarchy skill",{"skillNo":69,"name":70,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":74,"publishedAt":26},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[73],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},[75,76,77],"MCP","zoom","zoom mcp",{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":26},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[84,85,86,76],"sdk","zoom apps sdk","apps",{"skillNo":88,"name":89,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":26},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[89],{"skillNo":94,"name":95,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":99,"publishedAt":26},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[98],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},[95],{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":26},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[102]]