LiveKit live operations console for room moderation
Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.
Build me a live operations console for LiveKit that my support and event ops team keeps open on a second monitor while sessions are running, so they can see and fix problems without anyone opening a terminal. The audience is support staff, event ops and live class moderators, not engineers.
The main view is an auto refreshing grid of every active room, loaded with LiveKit List Rooms. Each row shows the room name, the participant count, how long the room has been up based on its creation time, whether a recording is currently running based on List Egress for that room, and whether an agent worker is attached based on List Agent Dispatches. Refresh the whole grid on a short interval of about ten seconds. LiveKit list endpoints return the full result set with no pagination, so one refresh is a single call per resource and the grid can safely reload everything each time.
Sort so the rooms that need attention come first: rooms with zero participants and rooms whose most recent egress record is in a failed state go to the top, then the rest ordered by longest running. Give each row a clear status chip for recording state and for agent state so a moderator can scan the grid at a glance from a few feet away.
Expanding a row lists everyone in the room using List Participants, showing identity, display name, join time, what they are currently publishing such as audio, video or screen share, and their connection quality. When the operator opens a single participant detail panel, load that person with Get Participant.
From each room row, and from each participant inside an expanded row, the operator can act immediately. Remove Participant disconnects a disruptive participant. Update Participant changes what someone is allowed to publish. Update Subscriptions changes which tracks a participant is subscribed to. Update Room Metadata posts a notice to everyone in the room. Start Room Composite Egress begins a recording and Stop Egress ends one. Create Agent Dispatch attaches an agent worker to the room. Delete Room ends a stuck session and disconnects everyone.
Every one of these actions is either destructive or immediately visible to people in a live session, so each one opens a confirmation dialog naming the room and the affected participant before it fires. Nothing acts on a single click.
LiveKit keeps no audit trail of its own, so log every moderator action to the General Input Database: the action taken, the room name, the participant identity where one applies, the arguments used, the result returned, the signed in app viewer who did it, and the timestamp. Add a second view in the app that shows this log newest first and lets the team filter it by room, so they can answer questions like who ended that session after the fact.
Each room row also has a Diagnose this room button that kicks off a background agent. The agent reads the room with List Rooms, its participants with List Participants, its recordings with List Egress and its agent dispatches with List Agent Dispatches, then writes a plain language health note back into the app saying things like nobody is publishing audio, the recording failed to start, or no agent ever joined. Store each note in the database with its room and timestamp so the app can show the latest diagnosis on the room row and keep the history. When the diagnosis reads as broken rather than healthy, the agent also posts the note to a Slack channel using Slack Bot Send a Message, naming the room and what looks wrong.
Favour density and readability over decoration throughout. This screen is watched in real time while sessions are live, so problem rows need to be visually obvious and the moderator controls need to be reachable in one or two clicks from the grid.
What does this prompt do?
- Shows every live room on one auto refreshing screen with how many people are in it, how long it has been running, whether it is being recorded and whether an AI agent worker has joined.
- Lets moderators act on the spot: remove a disruptive guest, change what someone is allowed to share, post a notice to the whole room, start or stop a recording, bring in an agent, or end a session that is stuck.
- Pushes the rooms that need attention to the top, so empty rooms and failed recordings are the first thing anyone sees.
- Adds a Diagnose button that has an assistant read the room and write a plain language explanation of what looks wrong, then post it to Slack when the room is broken.
- Keeps a permanent record of every moderator action, including who did it and when, which LiveKit itself does not store.
What do I need to use this?
- A LiveKit account with API access to the project your rooms run in
- A Slack workspace where the app can post problem reports to a channel
- A General Input database to hold the action log and diagnosis notes, which gets created for you
- The names of any agent workers you want moderators to be able to attach to a room
How can I customize it?
- How often the grid refreshes and which columns show on each room row
- Which Slack channel receives diagnosis reports, and whether healthy rooms get reported too
- What counts as a problem room for sorting, such as flagging any room that has sat empty for more than a few minutes
- Which actions live on the room row versus inside the participant detail panel
FAQs
Do moderators need to be technical to use this?
Will it show rooms created by my own app or voice agents?
Does LiveKit already keep a record of who removed a participant?
Can I start a recording for a room that was not set up to record in advance?
What does the Diagnose button actually do?
Can someone end a live session by accident?
Related templates
Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.
Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.
Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.
One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.
Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.
Score last week's finished live chats against one rubric, let an AI grader draft the notes with quotes, and send coaching straight to the agent.
Stop moderating live rooms from a terminal.
Give your support and event ops team one screen where they can see every session and fix it while it is still running.