join-meeting
AgentCall (agentcall.dev) — Join a video meeting (Google Meet, Teams, Zoom) as an AI bot with voice and visual presence.
Skill by pattern-ai-labs
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/pattern-ai-labs-join-meeting
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/join-meeting
What's inside
- Skill name
join-meeting- Description
- AgentCall (agentcall.dev) — Join a video meeting (Google Meet, Teams, Zoom) as an AI bot with voice and visual presence. Supports audio-only mode with voice intelligence (barge-in, interruptions), text-to-speech mode, and webpage modes for custom UI. Use when asked to join a call, attend a meeting, or participate in a video conference.
- License
- MIT
- Instructions
- 1,950 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions call the network
Agent Skills spec issues
- name: "join-meeting" does not match folder "agentcall"
- body: 1950 lines (spec recommends under 500)
Files (69)
- marketplace.json · .claude-plugin/
- plugin.json · .claude-plugin/
- .gitignore
- plugin.json · .grok-plugin/
- CHANGELOG.md
- LICENSE
- README.md
- SKILL.md
- README.md · examples/coding-companion/
- SKILL-FRAGMENT.md · examples/coding-companion/
- bridge.py · examples/coding-companion/
- README.md · examples/elevenlabs-voice/
- agent.js · examples/elevenlabs-voice/
- agent.py · examples/elevenlabs-voice/
- README.md · examples/meeting-assistant-smart/
- assistant.py · examples/meeting-assistant-smart/
- tools.py · examples/meeting-assistant-smart/
- README.md · examples/meeting-assistant/
- assistant.py · examples/meeting-assistant/
- README.md · examples/notetaker-multilingual/
- notetaker.py · examples/notetaker-multilingual/
- README.md · examples/notetaker-simple/
- notetaker.js · examples/notetaker-simple/
- notetaker.py · examples/notetaker-simple/
- README.md · examples/notetaker-smart/
- notetaker.js · examples/notetaker-smart/
- notetaker.py · examples/notetaker-smart/
- README.md · examples/support-agent/
- agent.py · examples/support-agent/
- knowledge.json · examples/support-agent/
- gemini-extension.json
- api.md · references/
- bring-your-own-voice.md · references/guides/
- collaborative-mode.md · references/guides/
- crash-recovery.md · references/guides/
- interruption-handling.md · references/guides/
- ui-templates.md · references/guides/
- webpage-audio.md · references/guides/
- webpage-av-screenshare.md · references/guides/
- webpage-av.md · references/guides/
- agentcall.js · scripts/node/
- bridge-visual.js · scripts/node/
- bridge.js · scripts/node/
- check_update.js · scripts/node/
- join.js · scripts/node/
- package.json · scripts/node/
- register.js · scripts/node/
- stdin-commands.js · scripts/node/
- tunnel.js · scripts/node/
- agentcall.py · scripts/python/
- bridge-visual.py · scripts/python/
- bridge.py · scripts/python/
- check_update.py · scripts/python/
- join.py · scripts/python/
- register.py · scripts/python/
- requirements.txt · scripts/python/
- tunnel.py · scripts/python/
- run.sh · scripts/
- stdin_commands_node.test.mjs · tests/
- test_bridge_stdin.py · tests/
- …and 9 more
SKILL.md (first lines)
# join-meeting
**IMPORTANT: Read this entire document before joining a meeting.** This file
contains the CALL_LOOP algorithm (mandatory), active participation rules,
safety requirements (leave/cleanup), and mode-specific guidance. Skipping
sections will result in broken meeting experiences — the user will be left
talking to silence.
**IMPORTANT: Read the whole document on every session, not just the parts you
remember.** This skill is updated frequently — new commands, new events, new
recommended patterns (like the event-driven `tail -f` + Monitor flow in
"How to read events") are added often. Do NOT rely on what you remember from
previous sessions. Re-read this document each time you start a meeting so you
pick up the latest guidance. If unsure whether you are on the latest version,
run `python scripts/python/check_update.py` (see "Checking for Skill Updates").
Join a video meeting as an AI bot with voice and visual presence.
## Prerequisites
- Python 3.10+ (preferred) or Node.js 18+
- Python dependencies: `pip install aiohttp websockets`
- Node.js dependencies: `cd scripts/node && npm install`
- For webpage modes: a local HTTP server running on the specified port
### API Key Setup
Before joining a meeting, make sure an API key is configured:
1. **Check** `~/.agentcall/config.json` — if it exists and has `api_key`, you're ready.
2. **Check** `AGENTCALL_API_KEY` env var — if set, you're ready.
3. **If neither exists**, get a key one of two ways:
**Option A — Self-register via email (no dashboard, no human hand-off needed).**
AgentCall accounts are created with a 6-digit email code. New accounts include
free trial credits (base plan, 360 minutes), so the first call works immediately.
```bash
# 1. Request a code. Use the user's email, or — if you can read your own
# mailbox — an address you have access to:
python scripts/python/register.py send --email you@example.com
# 2. Get the 6-digit code from that inbox. If you can read the mailbox yourself,
# retrieve it directly; otherwise ask the user to paste it. Codes expire in
# 10 minutes; a resend is allowed after 60 seconds.
# 3. Verify the code. This mints an API key named "AgentCall Skill on <hostname>"
# and saves it to ~/.agentcall/config.json:
python scripts/python/register.py verify --email you@example.com --code 123456
```
Node equivalent: `node scripts/node/register.js send --email ...` and
`node scripts/node/register.js verify --email ... --code ...`. Both scripts use
only the language standard library, so they run before `pip install` / `npm install`.
**Option B — Use an existing key.** Ask the user for their API key
(create one at https://app.agentcall.dev/api-keys), then save it:
```bash
mkdir -p ~/.agentcall
cat > ~/.agentcall/config.json << 'EOF'
{"api_key": "USER_KEY_HERE"}
EOF
```
The scripts (bridge.py, join.py, agentcall.py, register.py) automatically read
from `~/.agentcall/config.json` if `AGENTCALL_API_KEY` env var is not set.
**Do NOT ask for the API key every session** — check the config file first.
Meeting transcripts arrive as agent input — any participant in the call
can therefore steer the agent. For high-trust workflows, configure your
agent framework's permission system (e.g., Claude Code's allow allowlist,
hooks, plan mode) to restrict what the agent can do during a call. The
skill defers to the framework's enforcement. Recommended for use in
trusted meetings or properly scoped projects.
### User Preferences
**First-call detection:** if `~/.agentcall/config.json` has no `default_mode`
field saved, treat this as the user's first call.
**First call** (no `default_mode` in `~/.agentcall/config.json`): new
accounts include free trial credits. Offer the user a brief "experience
call" with `--mode webpage-av-screenshare --voice-strategy direct` so
they can see the full feature set — the `pattern` avatar (default),
screenshare, interactive webpages, and voice with barge-in. If they
prefer a simpler mode, honor that. After the call ends, ask which mode
to save as the default going forward.
**After the first call ends (in the agent conversation, not the meeting):**
Ask the user which mode to save as their default going forward. Present as a
numbered list:
1. `webpage-av-screenshare` — everything on tap (avatar + screenshare + webpage sharing)
2. `webpage-av` — avatar only, no screenshare
3. `webpage-audio` — audio from a webpage into the meeting
4. `audio` — voice only, simplest
Offer to explain any option if the user wants clarification. Mention they can
see real-world examples at https://www.youtube.com/@pattern-ai-labs.
Save the choice to `~/.agentcall/config.json`:
```json
{
"api_key": "ak_ac_xxxxx",
"default_mode": "webpage-av-screenshare",
"default_voice_strategy": "direct",
"default_voice": "af_heart",
"default_bot_name": "Juno"
}
```
- **Subsequent sessions**: use saved defaults silently. No need to ask again.
- **Override anytime**: if the user says "join with avatar this time" or "use
audio mode", respect it for that call without updating the saved default.
Only update the default if the user says "always use this" or "make this
my default."
- These are **soft defaults**, not rigid settings. The user's in-context
request always takes priority over saved preferences.
- **All plan tiers (base, pro, enterprise) follow the same flow** — everyone
gets the first-call demo and the post-call prompt.From pattern-ai-labs/agentcall, MIT.
Signals
- Stars
- 170
- Forks
- 22
- Open issues
- 2
- Last commit
- Oct 24, 2026 (5 days ago)
- Last release
- Oct 24, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/pattern-ai-labs/agentcall
- Website
- agentcall.dev
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Cite this page
join-meeting skill. Agent Mart. https://agentmart.dev/skills/pattern-ai-labs-join-meeting (last updated 2026-10-24)