Dial your agent into your next meeting.
Self-hostable video meetings where agents are participants, not bots. Share a link, talk face to face — and the agent listens, speaks, takes interruptions, and streams its tool calls into the room as it works.
Open-source · Apache 2.0 · Powered by LiveKit and looped-af
Tool activity
- web_search("livekit turn detection")
- read_url(docs.livekit.io/agents)
- write_doc("Rollout plan")
Turn policies
Meeting etiquette, built in.
An agent that talks over everyone gets uninvited fast. Every agent joins with a turn policy the host can change mid-call — and if you start talking while it speaks, it stops, the way a person would. Mute it and it knows: it replies into chat instead, until unmuted.
- Barge-in: start talking and the agent yields
- Muted agents answer in chat, not out loud
- Realtime speech-to-speech mode answers in ~500ms
open
Speak freely
Joins the conversation like anyone else at the table.
on-mention
Only when addressed
Stays quiet until someone says its name.
raise-hand
Raise a hand
Signals it has something, waits to be called on.
Hosts switch policies mid-call — or zap an agent to wake it up for a while.
Live · Scout is working
The room watches every tool call stream in while the agent works.
In the room
It sees, writes, and shows its work.
Share your screen and the agent reads it — “what's this error?” gets answered from the screen, not guessed. Ask it to write the plan up and it types into the shared doc the whole room edits. And every tool call it makes streams into the meeting, so nobody wonders what it's doing.
- Screenshare vision — sharers see which agents can look
- A shared markdown doc the agent writes into
- Live transcript and chat with @AgentName mentions
Powered by looped-af
Bring the agent you already run.
Meet has no meeting-specific agent code. The agent you invite into a room is a stock Looped agent-framework agent — the same agent.yaml you run in a terminal, on a cron schedule, over email, Slack, or Discord. Meet just gives it a voice, a face, and a seat at the table.
- Tools, permissions, memory, and audit trail come along unchanged
- Connects over the TTY trigger — streaming, tool feed, cancellation
- OpenAI or ElevenLabs voice per agent
agents:- id: scoutname: Scoutbrain:kind: ttyurl: ws://demo-agent:8300/ttytoken_env: SCOUT_TTY_TOKENtts:provider: openaivoice: alloy
Or skip the registry: paste an agent's TTY URL and token into the Agents panel and it joins on the spot.
Self-hosted
Your meetings, your servers.
One docker compose up brings up the web app, the LiveKit SFU, the voice bridge, and a demo agent named Scout. No accounts, no identity provider — create a room, share the link. DaisyUI theming makes it whitelabel-friendly.
- Runs entirely on your infrastructure
- Prebuilt images on GHCR, or build from source
- Swap two theme blocks to make it yours
$ git clone git@github.com:loopedautomation/meet.git$ cd meet && cp .env.example .env$ docker compose up
Prebuilt images from GHCR. Add your API keys, open localhost:3000, create a meeting, invite Scout.