Demo: Meeting Attendance
V2 and above. Part of the invite-only hosted editions, not the free self-hosted V1. See the editions.
What you'll see
You paste a meeting URL into the chat. AI Partner:
- Boots a containerized virtual desktop
- Opens a browser, navigates to the meeting URL, and joins
- Listens to the audio using Whisper speech-to-text
- Generates contextual responses aligned with your goals
- Speaks using your cloned voice (via your configured TTS provider)
- Extracts action items and sends them to you for approval
- Delivers a full transcript and summary when the meeting ends
Prerequisites
Meeting attendance runs on a cloud desktop. If one can't be started, AI Partner tells you so before joining rather than failing silently in the meeting.
Required:
- Docker Desktop running
- A live meeting URL (Google Meet, Microsoft Teams, or Zoom)
- At least one LLM provider configured
Recommended for the full experience:
USER.mdfilled in with your name and role (the agent introduces itself with this)GOALS.mdwith your current goals (drives what the agent says in meetings)- A TTS voice provider configured in
USER.md:Supported: ElevenLabs, MiniMax, OpenAI TTSvoice_profile: elevenlabs:your-voice-id
Optional:
- Telegram configured to receive action item approvals after the meeting
Step-by-step
- 1Start the meeting in your video platform
Start or open the meeting in Google Meet, Teams, or Zoom. Get the join URL — something like:
- Google Meet:
https://meet.google.com/abc-defg-hij - Teams:
https://teams.live.com/meet/9876543210 - Zoom:
https://zoom.us/j/12345678901?pwd=...
- Google Meet:
- 2Send the URL to AI Partner
Paste the meeting URL directly into the AI Partner chat input and press Enter. AI Partner detects that it's a meeting URL and automatically starts the meeting proxy pipeline — no goal mode needed.
You can optionally add context:
https://meet.google.com/abc-defg-hijJoin as "Alex". The goal of this meeting is to get a commitment from the clienton the Q2 project timeline. Focus on unblocking any concerns they have. - 3Watch the status panel
The Meeting Status panel appears on the right side of the screen showing:
⏳ Booting container...⏳ Launching browser...⏳ Navigating to meeting URL...✅ Joined meeting — 3 participants detected🎤 Listening... - 4Watch the live transcript
As participants speak, the transcript streams in real time:
[14:03:22] Sarah (client): "So the main concern we have is the timeline..."[14:03:45] AI Partner (as Alex): "I understand the timeline concern, Sarah.Let me walk you through the milestones we've locked in..."[14:04:10] Mike (client): "That's helpful. What about the integration piece?" - 5Receive the summary
When the meeting ends (or someone clicks Leave meeting in the UI), AI Partner sends:
In chat:
Meeting ended — 38 minutesParticipants: Sarah (client), Mike (client), AI Partner (as Alex)Transcript: workspace/meetings/session_20260513_140300/transcript.mdSummary: workspace/meetings/session_20260513_140300/summary.mdVia Telegram (if configured) — action item approvals:
Meeting Action Items — 2026-05-131. Send revised project timeline by Friday[✅ Approve] [✏️ Edit] [⏭ Skip]2. Schedule integration review call for next week[✅ Approve] [✏️ Edit] [⏭ Skip]
What the agent does in the meeting
The agent's behavior in meetings is driven by three files:
| File | What it controls |
|---|---|
SOUL.md | Communication style — direct vs. diplomatic, formal vs. casual |
USER.md | Your identity, role, company context injected into every response |
GOALS.md | The objective the agent tries to advance in every meeting |
Example: if your GOALS.md says:
### Close Series A
- Success: Term sheet signed by June 30, 2026
- Context: In conversations with 3 VCs
...and the meeting is with a VC, the agent will naturally steer the conversation toward investment terms, address objections, and push for a next step — because it understands what you're trying to achieve.
AI disclosure
On the first response in each meeting, the agent prepends a disclosure preamble:
"Just to be transparent — I'm an AI assistant joining on Alex's behalf. Alex will review this conversation. Please continue as you normally would."
This is gated by AUTHORITY.md. You can opt out for specific counterparty classes:
## Auto
- action: skip_ai_disclosure + counterparty: colleague
Real-time controls
While the meeting is active, the Meeting Status panel has buttons:
| Button | What it does |
|---|---|
| Leave meeting | Gracefully exits the meeting and triggers the post-summary |
| Mute | Stops the agent from speaking (still listens) |
| Force respond | Triggers an immediate response from the agent |
| View transcript | Opens the live transcript in a scrollable panel |
Post-meeting files
After every meeting, two files are saved to workspace/meetings/<sessionId>/:
transcript.md— full verbatim transcript with speaker labels and timestampssummary.md— LLM-generated summary: key decisions, action items, unresolved questions, and goal progress assessment
Both files are also listed in the Files panel for download.
Supported platforms
| Platform | Status | Notes |
|---|---|---|
| Google Meet | ✅ Supported | Standard browser join |
| Microsoft Teams | ✅ Supported | Browser-based Teams (teams.live.com) |
| Zoom | ✅ Supported | Web client (zoom.us/j/) — no app install needed |
| Webex | ⚠️ Experimental | May require manual CAPTCHA on first join |
The agent joins via a headless browser inside a Docker container. It appears in the meeting as a regular browser participant. Platform-specific in-meeting UI differences (roster detection, mute button selectors) are handled by the platform adapter layer.