Skip to main content

Demo: Meeting Attendance

V2 only — invite-only edition. This is part of AI Partner V2 and is not in the open-source V1 you self-host from the Quick Start. V2 is available now, by invite. See V1 vs V2.

What you'll see

You paste a meeting URL into the chat. AI Partner:

  1. Boots a containerized virtual desktop
  2. Opens a browser, navigates to the meeting URL, and joins
  3. Listens to the audio using Whisper speech-to-text
  4. Generates contextual responses aligned with your goals
  5. Speaks using your cloned voice (via your configured TTS provider)
  6. Extracts action items and sends them to you for approval
  7. Delivers a full transcript and summary when the meeting ends

Prerequisites

Meeting attendance requires the T3 container tier. Make sure Docker is running and the container service has started successfully (docker compose up shows no errors).

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.md filled in with your name and role (the agent introduces itself with this)
  • GOALS.md with your current goals (drives what the agent says in meetings)
  • A TTS voice provider configured in USER.md:
    voice_profile: elevenlabs:your-voice-id
    Supported: ElevenLabs, MiniMax, OpenAI TTS

Optional:

  • Telegram configured to receive action item approvals after the meeting

Step-by-step

  1. 1
    Start 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=...
  2. 2
    Send 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-hij

    Join as "Alex". The goal of this meeting is to get a commitment from the client
    on the Q2 project timeline. Focus on unblocking any concerns they have.
  3. 3
    Watch 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...
  4. 4
    Watch 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?"
  5. 5
    Receive the summary

    When the meeting ends (or someone clicks Leave meeting in the UI), AI Partner sends:

    In chat:

    Meeting ended — 38 minutes
    Participants: Sarah (client), Mike (client), AI Partner (as Alex)
    Transcript: workspace/meetings/session_20260513_140300/transcript.md
    Summary: workspace/meetings/session_20260513_140300/summary.md

    Via Telegram (if configured) — action item approvals:

    Meeting Action Items — 2026-05-13

    1. 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:

FileWhat it controls
SOUL.mdCommunication style — direct vs. diplomatic, formal vs. casual
USER.mdYour identity, role, company context injected into every response
GOALS.mdThe 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:

ButtonWhat it does
Leave meetingGracefully exits the meeting and triggers the post-summary
MuteStops the agent from speaking (still listens)
Force respondTriggers an immediate response from the agent
View transcriptOpens 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 timestamps
  • summary.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

PlatformStatusNotes
Google Meet✅ SupportedStandard browser join
Microsoft Teams✅ SupportedBrowser-based Teams (teams.live.com)
Zoom✅ SupportedWeb client (zoom.us/j/) — no app install needed
Webex⚠️ ExperimentalMay 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.