[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75655":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":14,"starSnapshotCount":14,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},75655,"openai-realtime-meeting-assistant","openai\u002Fopenai-realtime-meeting-assistant","openai","Example of using Realtime API as a meeting assistant to manage a Kanban Board",null,"Go",241,39,1,0,7,11,218,21,4.81,"MIT License",false,"main",true,[],"2026-06-12 02:03:35","# Realtime Meeting Assistant Demo\n\n[![MIT License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-green.svg)](LICENSE)\n![Go](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBuilt_with-Go-blue)\n![WebRTC](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FUses-WebRTC-blueviolet)\n![OpenAI API](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPowered_by-OpenAI_API-orange)\n\nThis demo showcases how to use the [OpenAI Realtime API](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Frealtime) to interact through voice with a Kanban board during a standup. Multiple users can join the same WebRTC room and update the shared board with natural voice.\n\nIt is implemented as a Go application using Pion WebRTC, Gorilla WebSocket, Opus audio encoding\u002Fdecoding, and the [Realtime + WebRTC integration](https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Frealtime-webrtc\u002F). The server mixes participant audio, sends it to an OpenAI Realtime peer, and uses [function calling](https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Frealtime-conversations\u002F) to trigger board updates.\n\n![screenshot](.\u002Fpublic\u002Fscreenshot.png)\n\n> [!IMPORTANT]\n> This demo does not include built-in authentication or access control. While the server is running, anyone who can reach the app URL can join and access the meeting room.\n\n## How to use\n\n### Running the application\n\n1. **Set up the OpenAI API:**\n\n   - If you're new to the OpenAI API, [sign up for an account](https:\u002F\u002Fplatform.openai.com\u002Fsignup).\n   - Follow the [Quickstart](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fquickstart) to retrieve your API key.\n\n2. **Clone the Repository:**\n\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-realtime-meeting-assistant.git\n   ```\n\n3. **Set your API key:**\n\n   Export `OPENAI_API_KEY` in the shell where you start the server:\n\n   ```bash\n   export OPENAI_API_KEY=\u003Cyour_api_key>\n   ```\n\n   The server reads environment variables directly. A `.env` file is not loaded automatically.\n\n4. **Install dependencies:**\n\n   You need Go 1.24 or newer and the Opus library available through `pkg-config`.\n\n   ```bash\n   brew install opus pkg-config\n   ```\n\n5. **Run the app:**\n\n   ```bash\n   go run .\n   ```\n\n   The app will be available at [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000).\n\n   To use another port:\n\n   ```bash\n   go run . -addr :8080\n   ```\n\n### Start a session\n\nWhen the server starts, it creates the OpenAI Realtime peer if `OPENAI_API_KEY` is configured. If the key is missing or the Realtime connection fails, the browser room still loads, but the Kanban assistant will not listen or update cards.\n\n1. Open [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000).\n2. Click **Join room**.\n3. Allow camera and microphone access.\n4. Speak naturally about the work on the board. The mixed room audio is sent to the Realtime assistant, and board changes are broadcast to everyone in the room.\n5. Open the same URL in another browser tab or on another device to join as another participant.\n6. Click **Leave** to disconnect that browser from the room and stop its local media tracks.\n\n## Demo flow\n\n**Use headphones or keep speaker volume low to avoid echo. Background audio can be picked up by the meeting mix and interpreted as board updates.**\n\nThe demo starts with a few WebRTC-related Kanban cards in the Backlog column. Try saying:\n\n1. \"I started the ICE restart handling ticket.\"\n2. \"The DTLS cleanup work is blocked on a transport shutdown issue.\"\n3. \"We shipped the RTP HEVC packetizer.\"\n4. \"Create a ticket to add subscription controls for simulcast forwarding.\"\n5. \"Add the bandwidth tag to the simulcast card.\"\n6. \"Delete the packet retransmission buffer ticket.\"\n\nThe board should update in place. Card moves animate, completed work triggers confetti, and note updates can show a short comment preview.\n\n### Configured interactions\n\nThe assistant is configured as a voice-operated Kanban board operator. It can:\n\n- Create tickets from explicit requests or concrete standup updates.\n- Move existing tickets between **Backlog**, **In Progress**, **Blocked**, and **Done**.\n- Add tags without replacing existing tags.\n- Update ticket titles or notes when follow-up context arrives.\n- Delete tickets by request.\n- Ignore filler, handoffs, or wrap-up phrases when no board operation is needed.\n\nFor more details about the instructions and tools used by the model, see `kanban.go`.\n\n## Customization\n\nYou can update:\n\n- The initial cards in `initialKanbanBoardCards` in `kanban.go`.\n- The Realtime instructions in `sessionInstructions` in `kanban.go`.\n- The tools exposed to the model in `kanbanTools` in `kanban.go`.\n- The default Realtime model by setting `OPENAI_REALTIME_MODEL`; otherwise the app uses `gpt-realtime-2`.\n- The browser UI in `index.html`.\n- The HTTP bind address with the `-addr` flag in `main.go`.\n\n## License\n\nThis project is licensed under the MIT License. See the LICENSE file for details.\n","该项目是一个利用OpenAI实时API作为会议助手来管理看板的示例。其核心功能包括通过语音与看板交互，支持多用户在同一WebRTC房间内使用自然语言更新共享看板。技术上，该应用采用Go语言开发，集成了Pion WebRTC、Gorilla WebSocket和Opus音频编码解码等技术，并且实现了与OpenAI实时API及WebRTC的集成。适用于团队站立会议或远程协作场景中，帮助参与者更高效地讨论并更新项目进度。注意此示例不包含内置的身份验证或访问控制机制，在运行时需确保安全性。",2,"2026-06-11 03:53:03","CREATED_QUERY"]