Not in the top 1,000 by GitHub stars

pattern-ai-labs/agentcall

AgentCall lets AI Agents join meetings with voice, video & screen-share to build together. Supports Google Meet, Teams, Zoom (Beta)

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

6f173169a92f → 6f173169a92f

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 6f173169a92f

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 6f173169a92fa05099c493275705af494a1bb462

git clone --filter=blob:none --no-checkout https://github.com/pattern-ai-labs/agentcall.git .hotskills/pattern-ai-labs-agentcall && git -C .hotskills/pattern-ai-labs-agentcall checkout --detach 6f173169a92fa05099c493275705af494a1bb462 # Copy each selected skill directory from .hotskills/pattern-ai-labs-agentcall into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/pattern-ai-labs/agentcall.git .hotskills/pattern-ai-labs-agentcall && git -C .hotskills/pattern-ai-labs-agentcall checkout --detach 6f173169a92fa05099c493275705af494a1bb462 # Copy each selected skill directory from .hotskills/pattern-ai-labs-agentcall into .gemini/skills/<skill-name>/
183GitHub stars
7stars in 7 days
1skill in this repository
8commits in 30 days

Heat

6.6
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 7, 2026183

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

join-meeting

When your agent uses it

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.

What it loads into context

Frontmatter

126 tokens

Always available to the agent

SKILL.md

25,357 tokens

When the skill is activated

Reference documents

41,934 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Prerequisites
  2. Usage
  3. Options
  4. Bot Naming
  5. Modes Explained
  6. How the Tunnel Works (Webpage Modes)
  7. Mic Permissions (Webpage Modes)
  8. Voice Strategies Explained
  9. Events (stdout)
  10. Commands (stdin)
  11. Default Behavior: Active Participation
  12. Interaction Patterns
  13. Crash Recovery
  14. Built-in UI Templates
  15. Transcript Retrieval
  16. Safety
  17. Pricing
  18. Checking for Skill Updates (optional)
  19. Examples
  20. Guides

Scripts executed separately

  • examples/coding-companion/bridge.py
  • examples/elevenlabs-voice/agent.js
  • examples/elevenlabs-voice/agent.py
  • examples/meeting-assistant-smart/assistant.py
  • examples/meeting-assistant-smart/tools.py
  • examples/meeting-assistant/assistant.py
  • examples/notetaker-multilingual/notetaker.py
  • examples/notetaker-simple/notetaker.js
  • examples/notetaker-simple/notetaker.py
  • examples/notetaker-smart/notetaker.js
  • examples/notetaker-smart/notetaker.py
  • examples/support-agent/agent.py
  • scripts/node/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/python/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/tunnel.py
  • scripts/run.sh
  • tests/stdin_commands_node.test.mjs
  • tests/test_bridge_stdin.py
  • tests/test_bridge_visual_stdin.py
  • ui-templates/agentcall-audio.js

Files

  • .claude-plugin/marketplace.jsonasset659 bytes
  • .claude-plugin/plugin.jsonasset1,002 bytes
  • .gitignoreasset77 bytes
  • .grok-plugin/plugin.jsonasset1,030 bytes
  • CHANGELOG.mddoc5,817 bytes
  • LICENSEasset1,083 bytes
  • README.mddoc8,425 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • SKILL.mdcore103,274 bytes
  • examples/coding-companion/README.mddoc11,141 bytes
  • examples/coding-companion/SKILL-FRAGMENT.mddoc8,097 bytes
  • examples/coding-companion/bridge.pyruns23,263 bytes
  • examples/elevenlabs-voice/README.mddoc2,973 bytes
  • examples/elevenlabs-voice/agent.jsruns9,153 bytes
  • examples/elevenlabs-voice/agent.pyruns10,042 bytes
  • examples/meeting-assistant-smart/README.mddoc13,040 bytes
  • examples/meeting-assistant-smart/assistant.pyruns26,700 bytes
  • examples/meeting-assistant-smart/tools.pyruns7,689 bytes
  • examples/meeting-assistant/README.mddoc6,469 bytes
  • examples/meeting-assistant/assistant.pyruns10,071 bytes
  • examples/notetaker-multilingual/README.mddoc5,832 bytes
  • examples/notetaker-multilingual/notetaker.pyruns15,029 bytes
  • examples/notetaker-simple/README.mddoc2,159 bytes
  • examples/notetaker-simple/notetaker.jsruns6,737 bytes
  • examples/notetaker-simple/notetaker.pyruns7,277 bytes
  • examples/notetaker-smart/README.mddoc4,254 bytes
  • examples/notetaker-smart/notetaker.jsruns13,485 bytes
  • examples/notetaker-smart/notetaker.pyruns13,636 bytes
  • examples/support-agent/README.mddoc6,365 bytes
  • examples/support-agent/agent.pyruns19,264 bytes
  • examples/support-agent/knowledge.jsonasset2,092 bytes
  • gemini-extension.jsonasset248 bytes
  • references/api.mddoc17,684 bytes
  • references/guides/bring-your-own-voice.mddoc3,309 bytes
  • references/guides/collaborative-mode.mddoc22,059 bytes
  • references/guides/crash-recovery.mddoc8,255 bytes
  • references/guides/interruption-handling.mddoc9,559 bytes
  • references/guides/ui-templates.mddoc7,282 bytes
  • references/guides/webpage-audio.mddoc13,554 bytes
  • references/guides/webpage-av-screenshare.mddoc10,045 bytes
  • references/guides/webpage-av.mddoc5,788 bytes
  • scripts/node/agentcall.jsruns2,755 bytes
  • scripts/node/bridge-visual.jsruns62,092 bytes
  • scripts/node/bridge.jsruns37,573 bytes
  • scripts/node/check_update.jsruns5,279 bytes
  • scripts/node/join.jsruns6,005 bytes
  • scripts/node/package.jsonruns139 bytes
  • scripts/node/register.jsruns4,925 bytes
  • scripts/node/stdin-commands.jsruns3,318 bytes
  • scripts/node/tunnel.jsruns4,828 bytes
  • scripts/python/agentcall.pyruns5,417 bytes
  • scripts/python/bridge-visual.pyruns90,824 bytes
  • scripts/python/bridge.pyruns57,930 bytes
  • scripts/python/check_update.pyruns4,898 bytes
  • scripts/python/join.pyruns8,710 bytes
  • scripts/python/register.pyruns5,084 bytes
  • scripts/python/requirements.txtdoc30 bytes
  • scripts/python/tunnel.pyruns9,033 bytes
  • scripts/run.shruns1,579 bytes
  • tests/stdin_commands_node.test.mjsruns4,783 bytes
  • tests/test_bridge_stdin.pyruns3,951 bytes
  • tests/test_bridge_visual_stdin.pyruns6,160 bytes
  • ui-templates/agentcall-audio.jsruns15,778 bytes
  • ui-templates/avatar/index.htmlasset7,904 bytes
  • ui-templates/blank/index.htmlasset945 bytes
  • ui-templates/dashboard/index.htmlasset3,713 bytes
  • ui-templates/orb/index.htmlasset5,519 bytes
  • ui-templates/pattern/index.htmlasset14,161 bytes
  • ui-templates/ring/index.htmlasset6,786 bytes
  • ui-templates/voice-agent/index.htmlasset7,034 bytes
Read SKILL.md

# 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,
View the complete source on GitHub

Skills included

  • join-meeting

Repository facts

License
MIT
Created
Apr 12, 2026
Last pushed
Oct 24, 2026
Forks
24
Open issues
3
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 14 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 800 signals by file

.claude-plugin/marketplace.json

  • Network accessline 18
    "email": "hi@agentcall.dev"       },       "homepage": "https://agentcall.dev"
  • Network accessline 19
    },       "homepage": "https://agentcall.dev"     }
  • Network accessline 20
    "homepage": "https://agentcall.dev"

.claude-plugin/plugin.json

  • Network accessline 7
    "email": "hi@agentcall.dev"   },   "repository": "https://github.com/pattern-ai-labs/agentcall",
  • Network accessline 8
    },   "repository": "https://github.com/pattern-ai-labs/agentcall",   "license": "MIT",
  • Network accessline 9
    "repository": "https://github.com/pattern-ai-labs/agentcall",
  • Network accessline 34
    "./SKILL.md"   ],   "homepage": "https://agentcall.dev"
  • Network accessline 35
    ],   "homepage": "https://agentcall.dev" }
  • Network accessline 36
    "homepage": "https://agentcall.dev"

.gitignore

  • Access to secretsline 9
    [Credential-related source omitted]

.grok-plugin/plugin.json

  • Network accessline 7
    "email": "hi@agentcall.dev"   },   "repository": "https://github.com/pattern-ai-labs/agentcall",
  • Network accessline 8
    },   "repository": "https://github.com/pattern-ai-labs/agentcall",   "license": "MIT",
  • Network accessline 9
    "repository": "https://github.com/pattern-ai-labs/agentcall",
  • Network accessline 37
    "./SKILL.md"   ],   "homepage": "https://agentcall.dev"
  • Network accessline 38
    ],   "homepage": "https://agentcall.dev" }
  • Network accessline 39
    "homepage": "https://agentcall.dev"

CHANGELOG.md

  • Network accessline 85
    bridge surfaces explicitly instead of failing as a silent no-op. Existing   `{"command": ...}` inputs are unchanged. Thanks to   [@keithballinger](https://github.com/keithballinger) (#2, with #7–#9).
  • Network accessline 87
    [@keithballinger](https://github.com/keithballinger) (#2, with #7–#9).

README.md

  • Network accessline 5
    An [AgentCall](https://agentcall.dev) skill that enables AI coding agents (Claude Code, Cursor, Codex, Gemini CLI, OpenClaw, Windsurf, Junie, and 30+ more) to join Google Meet, Zoom, and Microsoft Teams as a bot with voice conversation, vis
  • Network accessline 38
    4. **An AgentCall account** — free, and the agent can create it for you. On first    run with no key, the skill registers you via a one-time email code (or paste an    existing key from https://app.agentcall.dev/api-keys). New accounts incl
  • Network accessline 39
    run with no key, the skill registers you via a one-time email code (or paste an    existing key from https://app.agentcall.dev/api-keys). New accounts include free    trial credits.
  • Network accessline 40
    existing key from https://app.agentcall.dev/api-keys). New accounts include free
  • Network accessline 54
    [![Plugin setup in VS Code](https://img.youtube.com/vi/mrwzHWnJMCw/hqdefault.jpg)](https://www.youtube.com/watch?v=mrwzHWnJMCw)
  • Network accessline 73
    gemini extensions install https://github.com/pattern-ai-labs/agentcall
  • Network accessline 81
    git clone https://github.com/pattern-ai-labs/agentcall.git
  • Network accessline 91
    [![Generic install with GitHub link](https://img.youtube.com/vi/qpgjhRvzP_Q/hqdefault.jpg)](https://www.youtube.com/watch?v=qpgjhRvzP_Q)
  • Network accessline 95
    [![Demo](https://img.youtube.com/vi/d4DD8HP65pU/hqdefault.jpg)](https://www.youtube.com/watch?v=d4DD8HP65pU)
  • Network accessline 99
    Tell your agent: *"Join this meeting: https://meet.google.com/abc-def-ghi"*
  • Network accessline 149
    | Endpoint | Used by | Purpose | |---|---|---| | `https://api.agentcall.dev` | `scripts/*/agentcall.*`, `join.*`, bridges | Create and end calls, read call state and transcripts |
  • Network accessline 150
    |---|---|---| | `https://api.agentcall.dev` | `scripts/*/agentcall.*`, `join.*`, bridges | Create and end calls, read call state and transcripts | | `wss://api.agentcall.dev/v1/calls/{id}/ws` | bridges | Live meeting events in; agent comman
  • Network accessline 151
    | `https://api.agentcall.dev` | `scripts/*/agentcall.*`, `join.*`, bridges | Create and end calls, read call state and transcripts |
  • Network accessline 152
    | `wss://api.agentcall.dev/v1/calls/{id}/ws` | bridges | Live meeting events in; agent commands (speak, chat, screenshare) out | | `wss://api.agentcall.dev/internal/tunnel/connect` | `tunnel.*` (webpage modes only) | Outbound tunnel that le
  • Network accessline 153
    | `wss://api.agentcall.dev/internal/tunnel/connect` | `tunnel.*` (webpage modes only) | Outbound tunnel that lets the meeting bot load your local UI page, which is served on `127.0.0.1` only. No inbound port is opened on your machine | | `h
  • Network accessline 154
    | `https://api.agentcall.dev/v1/auth/email-otp/*` | `register.*` (optional) | One-time email code to create an account and mint an API key |
  • Network accessline 155
    | `https://raw.githubusercontent.com/pattern-ai-labs/agentcall/main/.claude-plugin/plugin.json` | `check_update.*` (optional) | Reads the published version string to tell you an update exists. Cached for 7 days; sends no data |
  • Network accessline 157
    `https://app.agentcall.dev` appears only as a link for you to create or manage keys — the scripts never call it. The API base can be overridden with the `AGENTCALL_API_URL` environment variable (or `api_url` in the config file).
  • Access to secretsline 159
    [Credential-related source omitted]
  • Network accessline 165
    **Meeting data:** the bot is a visible, named participant. Meeting audio and transcripts stream through `api.agentcall.dev` in real time and are not permanently stored — see the [Privacy Policy](https://agentcall.dev/privacy).
  • Network accessline 175
    Base plan: 6 hours of meeting time, 1 concurrent call. All features included. Paid: per-minute billing. See [agentcall.dev](https://agentcall.dev) for details.
  • Network accessline 176
    Paid: per-minute billing. See [agentcall.dev](https://agentcall.dev) for details.
  • Network accessline 184
    Built by [AgentCall](https://agentcall.dev) (Pattern AI Labs)

SKILL.md

  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Network accessline 66
    **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:
  • Network accessline 67
    (create one at https://app.agentcall.dev/api-keys), then save it:
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 76
    [Credential-related source omitted]
  • Network accessline 108
    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.
  • Network accessline 109
    see real-world examples at https://www.youtube.com/@pattern-ai-labs.
  • Access to secretsline 115
    [Credential-related source omitted]
  • Network accessline 152
    | `--webpage-url` | | Public URL for webpage modes (no tunnel needed) | | `--screenshare-url` | | Public URL for screenshare content (no tunnel needed) | | `--max-duration` | plan limit | Max call duration in minutes. Cannot exceed your pla
  • Network accessline 153
    | `--screenshare-url` | | Public URL for screenshare content (no tunnel needed) | | `--max-duration` | plan limit | Max call duration in minutes. Cannot exceed your plan's limit. Check https://agentcall.dev for current limits. | | `--alone-
  • Network accessline 154
    | `--max-duration` | plan limit | Max call duration in minutes. Cannot exceed your plan's limit. Check https://agentcall.dev for current limits. |
  • Network accessline 155
    | `--alone-timeout` | 120 | Leave if alone for N seconds. | | `--silence-timeout` | 300 | Leave if silent for N seconds. | | `--api-url` | `https://api.agentcall.dev` | Override API URL for development |
  • Network accessline 157
    | `--api-url` | `https://api.agentcall.dev` | Override API URL for development |
  • Network accessline 189
    If your webpage is publicly hosted, pass `--webpage-url https://your-site.com/bot`
  • Network accessline 226
    Agent controls screenshare dynamically during the call: - `screenshare.start` with `url` — share a public URL: `{"command": "screenshare.start", "url": "https://slides.google.com/..."}`
  • Network accessline 227
    - `screenshare.start` with `url` — share a public URL: `{"command": "screenshare.start", "url": "https://slides.google.com/..."}`
  • Network accessline 228
    - `screenshare.start` with `port` — share a local server via tunnel: `{"command": "screenshare.start", "port": 3001}` - `screenshare.stop` — stop sharing: `{"command": "screenshare.stop"}` - `screenshare.swap` — atomically swap to a differe
  • Network accessline 230
    - `screenshare.swap` — atomically swap to a different page: `{"command": "screenshare.swap", "port": 3002}` or `{"command": "screenshare.swap", "url": "https://..."}`. Use this instead of stop+start when changing what's shared during a call
  • Network accessline 322
    **What the tunnel carries:** any content in both directions — HTML/JS/CSS, images, fonts, compressed responses, and POST/PUT bodies (binary included). **Use relative paths** in your page (`img/logo.png`, `fetch('data.json')`), not absolute 
  • Network accessline 615
    extra call during this 5-minute grace window so the rejoin works even on the base plan. If the user is on the base plan (1hr max), mention that Pro offers 4hr max duration — upgrade at https://app.agentcall.dev/add-credits ($29/mo subscript
  • Network accessline 617
    upgrade at https://app.agentcall.dev/add-credits ($29/mo subscription or recharge $50+ for 30 days of Pro).
  • Network accessline 620
    `balance_microcents` (raw balance) and `estimated_minutes_remaining` (calculated from current call's mode and add-on rates). The agent should inform the user and suggest recharging at https://app.agentcall.dev/add-credits. **Credits low doe
  • Network accessline 621
    call's mode and add-on rates). The agent should inform the user and suggest recharging at https://app.agentcall.dev/add-credits. **Credits low does NOT terminate the call** — the call continues and credits can go negative. This is a courtes
  • Network accessline 622
    https://app.agentcall.dev/add-credits. **Credits low does NOT terminate the call** — the call
  • Network accessline 686
    {"type": "capture.frame", "data": "base64-jpeg...", "frame_number": 5} {"type": "capture.stopped", "total_frames": 30} {"type": "screenshare.started", "url": "https://..."}
  • Network accessline 687
    {"type": "capture.stopped", "total_frames": 30} {"type": "screenshare.started", "url": "https://..."} {"type": "screenshare.stopped"}
  • Network accessline 688
    {"type": "screenshare.started", "url": "https://..."}
  • Network accessline 827
    {"type": "capture.start", "interval_ms": 1000} {"type": "capture.stop"} {"type": "screenshare.start", "url": "https://your-slides.com"}
  • Network accessline 828
    {"type": "capture.stop"} {"type": "screenshare.start", "url": "https://your-slides.com"} {"type": "screenshare.start", "port": 3001}
  • Network accessline 829
    {"type": "screenshare.start", "url": "https://your-slides.com"}
  • Network accessline 830
    {"type": "screenshare.start", "port": 3001} {"type": "screenshare.swap", "url": "https://different-page.com"} {"type": "screenshare.swap", "port": 3002}
  • Network accessline 831
    {"type": "screenshare.swap", "url": "https://different-page.com"}
  • Network accessline 974
    python scripts/python/bridge.py "https://meet.google.com/abc" --name "Claude" --voice af_heart
  • Network accessline 979
    # Built-in avatar (no local server needed) python scripts/python/bridge-visual.py "https://meet.google.com/abc" --name "Claude"
  • Network accessline 980
    python scripts/python/bridge-visual.py "https://meet.google.com/abc" --name "Claude"
  • Network accessline 982
    # With local screenshare (agent runs local server on port 3001) python scripts/python/bridge-visual.py "https://meet.google.com/abc" --screenshare-port 3001
  • Network accessline 983
    python scripts/python/bridge-visual.py "https://meet.google.com/abc" --screenshare-port 3001
  • Network accessline 985
    # With public URLs for both avatar and screenshare python scripts/python/bridge-visual.py "https://meet.google.com/abc" \
  • Network accessline 986
    python scripts/python/bridge-visual.py "https://meet.google.com/abc" \
  • Network accessline 987
    --webpage-url "https://your-site.com/avatar" \
  • Network accessline 988
    --screenshare-url "https://your-site.com/slides"
  • Network accessline 994
    python scripts/python/bridge-visual.py "https://meet.google.com/abc" --name "Juno" \
  • Network accessline 1024
    bridge-visual.py extends bridge.py with: - Bot has an animated avatar visible to participants (7 voice states) - Agent can screenshare public URLs: `{"command": "screenshare.start", "url": "https://..."}`
  • Network accessline 1025
    - Bot has an animated avatar visible to participants (7 voice states) - Agent can screenshare public URLs: `{"command": "screenshare.start", "url": "https://..."}` - Agent can screenshare local ports: `{"command": "screenshare.start", "port
  • Network accessline 1026
    - Agent can screenshare public URLs: `{"command": "screenshare.start", "url": "https://..."}`
  • Network accessline 1044
    3. User: "Can you show me the data?"    Agent: {"command": "tts.speak", "text": "Sure, let me share my screen."}    Agent: {"command": "screenshare.start", "url": "https://my-dashboard.com/slides"}
  • Network accessline 1045
    Agent: {"command": "tts.speak", "text": "Sure, let me share my screen."}    Agent: {"command": "screenshare.start", "url": "https://my-dashboard.com/slides"}    → Receives: {"event": "screenshare.started", "url": "..."}
  • Network accessline 1046
    Agent: {"command": "screenshare.start", "url": "https://my-dashboard.com/slides"}
  • Network accessline 1099
    {"event": "webpage.opened", "url": "https://xyz.conn.agentcall.dev/k/{accessKey}/webpage/"}
  • Network accessline 1109
    2. Agent opens the webpage tunnel:    {"command": "webpage.open", "port": 3002}    → Receives: {"event": "webpage.opened", "url": "https://xyz.conn.agentcall.dev/k/.../webpage/"}
  • Network accessline 1111
    → Receives: {"event": "webpage.opened", "url": "https://xyz.conn.agentcall.dev/k/.../webpage/"}
  • Network accessline 1113
    3. Agent shares the URL in meeting chat:    {"command": "send_chat", "message": "Here's the report: https://xyz.conn.agentcall.dev/k/.../webpage/"}
  • Network accessline 1114
    {"command": "send_chat", "message": "Here's the report: https://xyz.conn.agentcall.dev/k/.../webpage/"}
  • Network accessline 1231
    - **Before `screenshare.start` (local port):** run `curl http://localhost:PORT/` and verify the response body is the HTML you expect.
  • Network accessline 1232
    - **After the `screenshare.started` event arrives:** the event includes the tunnel `url`. Run `curl <url>` to confirm it returns 200 end-to-end through the tunnel. If this fails, the local content is fine but the tunnel side is broken. **Re
  • Network accessline 1319
    {"command": "tts.speak", "text": "Hello! I'm here.", "voice": "af_heart"} {"command": "tts.speak", "text": "The health endpoint returned OK.", "voice": "af_heart", "speed": 1.0} {"command": "send_chat", "message": "https://github.com/org/re
  • Network accessline 1320
    {"command": "tts.speak", "text": "The health endpoint returned OK.", "voice": "af_heart", "speed": 1.0} {"command": "send_chat", "message": "https://github.com/org/repo/pull/42"} {"command": "raise_hand"}
  • Network accessline 1321
    {"command": "send_chat", "message": "https://github.com/org/repo/pull/42"}
  • Network accessline 1367
    [Credential-related source omitted]
  • Network accessline 1368
    [Credential-related source omitted]
  • Access to secretsline 1368
    [Credential-related source omitted]
  • Network accessline 1369
    "https://api.agentcall.dev/v1/calls/$CALL_ID" | jq -r .status)
  • Network accessline 1371
    [Credential-related source omitted]
  • Network accessline 1372
    [Credential-related source omitted]
  • Access to secretsline 1372
    [Credential-related source omitted]
  • Network accessline 1373
    "https://api.agentcall.dev/v1/calls/$CALL_ID" \
  • Network accessline 1376
    [Credential-related source omitted]
  • Network accessline 1377
    [Credential-related source omitted]
  • Access to secretsline 1377
    [Credential-related source omitted]
  • Network accessline 1378
    "https://api.agentcall.dev/v1/calls/$CALL_ID"
  • Network accessline 1434
    Agent speaks: "I found the issue. I'll put the fix in chat." Agent sends:  {"command": "send_chat", "message": "https://github.com/org/repo/pull/42"}
  • Network accessline 1435
    Agent sends:  {"command": "send_chat", "message": "https://github.com/org/repo/pull/42"}
  • Network accessline 1487
    | Agent | How to spawn bridge.py | |-------|----------------------| | Claude Code / Agent SDK | `bash("python scripts/python/bridge.py 'https://meet.google.com/abc' --name Claude")` |
  • Network accessline 1488
    |-------|----------------------| | Claude Code / Agent SDK | `bash("python scripts/python/bridge.py 'https://meet.google.com/abc' --name Claude")` | | OpenAI Codex | `!python scripts/python/bridge.py "https://meet.google.com/abc" --name Cod
  • Network accessline 1489
    | Claude Code / Agent SDK | `bash("python scripts/python/bridge.py 'https://meet.google.com/abc' --name Claude")` |
  • Network accessline 1490
    | OpenAI Codex | `!python scripts/python/bridge.py "https://meet.google.com/abc" --name Codex` |
  • Network accessline 1586
    - **Git Bash** (ships with [Git for Windows](https://git-scm.com/download/win)): all commands above work as-is.
  • Network accessline 1670
    # Start bridge in background with file output python scripts/python/bridge.py "https://meet.google.com/abc" --name Agent \
  • Network accessline 1671
    python scripts/python/bridge.py "https://meet.google.com/abc" --name Agent \
  • Network accessline 1684
    # Create named pipe and start bridge reading from it mkfifo /tmp/meeting-stdin python scripts/python/bridge.py "https://meet.google.com/abc" --name Agent \
  • Network accessline 1685
    mkfifo /tmp/meeting-stdin python scripts/python/bridge.py "https://meet.google.com/abc" --name Agent \   --output /tmp/meeting-events.jsonl < /tmp/meeting-stdin 2>/tmp/meeting.err &
  • Network accessline 1686
    python scripts/python/bridge.py "https://meet.google.com/abc" --name Agent \
  • Dangerous shell operationline 1697
    rm /tmp/meeting-stdin
  • Network accessline 1866
    curl https://api.agentcall.dev/v1/calls/{call_id}/transcript?format=json \
  • Network accessline 1876
    | Auto-leave when alone | 2 minutes | | Silence timeout | 5 minutes | | Max duration | Plan limit (check https://agentcall.dev for current limits) |
  • Network accessline 1877
    | Silence timeout | 5 minutes | | Max duration | Plan limit (check https://agentcall.dev for current limits) | | Transcription | On (required for agent to receive speech as text) |
  • Network accessline 1878
    | Max duration | Plan limit (check https://agentcall.dev for current limits) |
  • Network accessline 1891
    Paid: per-minute billing. Base rate varies by mode (audio cheapest, screenshare most expensive). Add-ons: transcription, voice intelligence, TTS. Check https://agentcall.dev for current rates and plan limits.
  • Network accessline 1893
    Check https://agentcall.dev for current rates and plan limits.
  • Network accessline 1917
    "latest_version": "1.1.0",   "update_available": true,   "repo_url": "https://github.com/pattern-ai-labs/agentcall",
  • Network accessline 1918
    "update_available": true,   "repo_url": "https://github.com/pattern-ai-labs/agentcall",   "update_commands": {
  • Network accessline 1919
    "repo_url": "https://github.com/pattern-ai-labs/agentcall",
  • Network accessline 1921
    "marketplace": "/plugin marketplace update pattern-ai-labs-agentcall && /plugin update join-meeting",     "git": "git pull",     "zip": "Download the latest release from https://github.com/pattern-ai-labs/agentcall"
  • Network accessline 1922
    "git": "git pull",     "zip": "Download the latest release from https://github.com/pattern-ai-labs/agentcall"   },
  • Network accessline 1923
    "zip": "Download the latest release from https://github.com/pattern-ai-labs/agentcall"

examples/coding-companion/README.md

  • Network accessline 22
    You (typing): "check if the health endpoint is responding" Agent: runs curl https://api.agentcall.dev/health
  • Network accessline 23
    Agent: runs curl https://api.agentcall.dev/health
  • Network accessline 30
    You (typing): "join this meeting: https://meet.google.com/abc-def-ghi"
  • Access to secretsline 123
    [Credential-related source omitted]
  • Network accessline 148
    # In one terminal, run the bridge: python bridge.py "https://meet.google.com/abc-def-ghi" --name "Claude"
  • Network accessline 149
    python bridge.py "https://meet.google.com/abc-def-ghi" --name "Claude"
  • Network accessline 154
    # Or pipe commands: echo '{"command": "tts.speak", "text": "Hello!"}' | python bridge.py "https://meet.google.com/abc"
  • Network accessline 155
    echo '{"command": "tts.speak", "text": "Hello!"}' | python bridge.py "https://meet.google.com/abc"
  • Network accessline 191
    # Default: 2 seconds (good for most speakers) python bridge.py "https://meet.google.com/abc"
  • Network accessline 192
    python bridge.py "https://meet.google.com/abc"
  • Network accessline 194
    # Slow speakers or complex instructions: increase to 3-4s python bridge.py "https://meet.google.com/abc" --vad-timeout 3.5
  • Network accessline 195
    python bridge.py "https://meet.google.com/abc" --vad-timeout 3.5
  • Network accessline 197
    # Fast back-and-forth conversation: decrease to 1-1.5s python bridge.py "https://meet.google.com/abc" --vad-timeout 1.0
  • Network accessline 198
    python bridge.py "https://meet.google.com/abc" --vad-timeout 1.0
  • Network accessline 205
    Some information is hard to speak aloud: - URLs: "https://api.agentcall.dev/v1/payments/webhook" sounds terrible via TTS
  • Network accessline 206
    - URLs: "https://api.agentcall.dev/v1/payments/webhook" sounds terrible via TTS
  • Network accessline 225
    {"command": "send_chat", "message": "Here's the deployment URL: https://agentcall.dev"}

examples/coding-companion/SKILL-FRAGMENT.md

  • Network accessline 30
    # Spawn the bridge as a subprocess (bridge.py is in scripts/python/) python scripts/python/bridge.py "https://meet.google.com/abc-def-ghi" --name "Claude" --voice af_heart
  • Network accessline 31
    python scripts/python/bridge.py "https://meet.google.com/abc-def-ghi" --name "Claude" --voice af_heart
  • Network accessline 35
    The key is read from `~/.agentcall/config.json` (persists across sessions) or `AGENTCALL_API_KEY` env var. If neither exists, ask the user for their key (get one at https://app.agentcall.dev/api-keys) and save it:
  • Access to secretsline 36
    [Credential-related source omitted]
  • Network accessline 37
    (get one at https://app.agentcall.dev/api-keys) and save it:
  • Access to secretsline 39
    [Credential-related source omitted]
  • Network accessline 83
    (You run: curl https://api.agentcall.dev/health → {"status":"ok"})
  • Network accessline 90
    → stdin:  {"command": "send_chat", "message": "https://agentcall.dev"}

examples/coding-companion/bridge.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 38
    stdin commands (agent → bridge):     {"command": "tts.speak", "text": "Health check returned OK", "voice": "af_heart"}     {"command": "send_chat", "message": "Here's the URL: https://..."}
  • Network accessline 39
    {"command": "tts.speak", "text": "Health check returned OK", "voice": "af_heart"}     {"command": "send_chat", "message": "Here's the URL: https://..."}     {"command": "raise_hand"}
  • Network accessline 40
    {"command": "send_chat", "message": "Here's the URL: https://..."}
  • Network accessline 44
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Network accessline 46
    python bridge.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 48
    # Custom bot name, voice, and VAD timeout     python bridge.py "https://meet.google.com/abc" --name "Claude" --voice af_bella --vad-timeout 3.0
  • Network accessline 49
    python bridge.py "https://meet.google.com/abc" --name "Claude" --voice af_bella --vad-timeout 3.0
  • Network accessline 99
    [Credential-related source omitted]
  • Access to secretsline 99
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Access to secretsline 102
    [Credential-related source omitted]
  • Access to secretsline 103
    [Credential-related source omitted]
  • Network accessline 198
    async def _get_session(self) -> aiohttp.ClientSession:         if self.session is None or self.session.closed:             self.session = aiohttp.ClientSession(
  • Network accessline 199
    [Credential-related source omitted]
  • Network accessline 200
    self.session = aiohttp.ClientSession(
  • Access to secretsline 201
    [Credential-related source omitted]
  • Access to secretsline 221
    [Credential-related source omitted]

examples/elevenlabs-voice/README.md

  • Network accessline 24
    You need an AgentCall API key and an [ElevenLabs](https://elevenlabs.io) API key.
  • Network accessline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Network accessline 32
    python agent.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 39
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Network accessline 41
    node agent.js "https://meet.google.com/abc-def-ghi"

examples/elevenlabs-voice/agent.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 15
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Network accessline 16
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]
  • Network accessline 17
    *     node agent.js "https://meet.google.com/abc-def-ghi"
  • Network accessline 18
    *  *     # Custom bot name and ElevenLabs voice  *     node agent.js "https://meet.google.com/abc" --name "Ava" --voice-id 21m00Tcm4TlvDq8ikWAM
  • Network accessline 19
    *     # Custom bot name and ElevenLabs voice  *     node agent.js "https://meet.google.com/abc" --name "Ava" --voice-id 21m00Tcm4TlvDq8ikWAM  *
  • Network accessline 20
    *     node agent.js "https://meet.google.com/abc" --name "Ava" --voice-id 21m00Tcm4TlvDq8ikWAM
  • Network accessline 48
    const API_BASE = process.env.AGENTCALL_API_URL || _cfg.api_url || "https://api.agentcall.dev";
  • Access to secretsline 49
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]
  • Access to secretsline 52
    [Credential-related source omitted]
  • Access to secretsline 53
    [Credential-related source omitted]
  • Access to secretsline 56
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Network accessline 137
    async _speak(text, signal) {     console.log(`  [bot] ${text}`);     const url = `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}/stream?output_format=pcm_${SAMPLE_RATE}`;
  • Network accessline 138
    console.log(`  [bot] ${text}`);     const url = `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}/stream?output_format=pcm_${SAMPLE_RATE}`;     const resp = await fetch(url, {
  • Network accessline 139
    const url = `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}/stream?output_format=pcm_${SAMPLE_RATE}`;     const resp = await fetch(url, {       method: "POST",
  • Network accessline 140
    const resp = await fetch(url, {
  • Access to secretsline 142
    [Credential-related source omitted]
  • Network accessline 181
    [Credential-related source omitted]
  • Network accessline 182
    [Credential-related source omitted]
  • Access to secretsline 182
    [Credential-related source omitted]
  • Network accessline 183
    const resp = await fetch(`${API_BASE}/v1/calls`, {
  • Network accessline 201
    const endCall = () => fetch(`${API_BASE}/v1/calls/${call.call_id}`, { method: "DELETE", headers }).catch(() => {});
  • Access to secretsline 208
    [Credential-related source omitted]

examples/elevenlabs-voice/agent.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 15
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]
  • Network accessline 17
    python agent.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 19
    # Custom bot name and ElevenLabs voice     python agent.py "https://meet.google.com/abc" --name "Ava" --voice-id 21m00Tcm4TlvDq8ikWAM
  • Network accessline 20
    python agent.py "https://meet.google.com/abc" --name "Ava" --voice-id 21m00Tcm4TlvDq8ikWAM
  • Network accessline 56
    [Credential-related source omitted]
  • Access to secretsline 56
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 61
    [Credential-related source omitted]
  • Access to secretsline 62
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]
  • Network accessline 129
    async def _speak(self, text: str):         url = (f"https://api.elevenlabs.io/v1/text-to-speech/{self.voice_id}/stream"
  • Network accessline 130
    url = (f"https://api.elevenlabs.io/v1/text-to-speech/{self.voice_id}/stream"
  • Access to secretsline 133
    [Credential-related source omitted]
  • Network accessline 168
    [Credential-related source omitted]
  • Network accessline 169
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]
  • Network accessline 170
    async with aiohttp.ClientSession() as http:
  • Access to secretsline 185
    [Credential-related source omitted]

examples/meeting-assistant-smart/README.md

  • Access to secretsline 145
    [Credential-related source omitted]
  • Access to secretsline 146
    [Credential-related source omitted]
  • Network accessline 148
    python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 154
    # Default: Juno with database, docs, calculate, tickets python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 155
    python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 157
    # Custom name and triggers python assistant.py "https://meet.google.com/abc" --name "Aria" --triggers "aria,hey aria"
  • Network accessline 158
    python assistant.py "https://meet.google.com/abc" --name "Aria" --triggers "aria,hey aria"
  • Network accessline 160
    # Custom voice python assistant.py "https://meet.google.com/abc" --voice voice.bella
  • Network accessline 161
    python assistant.py "https://meet.google.com/abc" --voice voice.bella

examples/meeting-assistant-smart/assistant.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 27
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Network accessline 29
    python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 56
    [Credential-related source omitted]
  • Access to secretsline 56
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]
  • Access to secretsline 175
    [Credential-related source omitted]
  • Access to secretsline 191
    [Credential-related source omitted]
  • Access to secretsline 209
    [Credential-related source omitted]
  • Network accessline 302
    def create_call(meet_url: str, bot_name: str, trigger_words: List[str], context: str, voice: str) -> dict:     resp = requests.post(
  • Network accessline 303
    resp = requests.post(
  • Network accessline 509
    print("Ending call...")         try:             requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)
  • Network accessline 510
    try:             requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)             print("Call ended (cleanup)")
  • Network accessline 511
    requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)
  • Network accessline 523
    epilog=""" Examples:   python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 524
    Examples:   python assistant.py "https://meet.google.com/abc-def-ghi"   python assistant.py "https://meet.google.com/abc" --name "Aria" --triggers "aria,hey aria"
  • Network accessline 525
    python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 526
    python assistant.py "https://meet.google.com/abc" --name "Aria" --triggers "aria,hey aria"
  • Network accessline 527
    python assistant.py "https://meet.google.com/abc" --voice voice.bella
  • Network accessline 567
    except KeyboardInterrupt:         print("\nInterrupted — cleaning up...")         requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)
  • Network accessline 568
    print("\nInterrupted — cleaning up...")         requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)         print("Call ended (cleanup)")
  • Network accessline 569
    requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)

examples/meeting-assistant-smart/tools.py

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    Replace this with your actual database:       - SQL: await db.execute("SELECT ... WHERE ...")       - REST API: await httpx.get(f"{api}/data?q={query}")
  • Network accessline 33
    - SQL: await db.execute("SELECT ... WHERE ...")       - REST API: await httpx.get(f"{api}/data?q={query}")       - GraphQL: await client.execute(query)
  • Network accessline 34
    - REST API: await httpx.get(f"{api}/data?q={query}")
  • Network accessline 47
    #     # import httpx     # async with httpx.AsyncClient() as client:
  • Network accessline 48
    # import httpx     # async with httpx.AsyncClient() as client:     #     resp = await client.get(f"https://api.yourcompany.com/data", params={"q": query})
  • Network accessline 49
    # async with httpx.AsyncClient() as client:
  • Network accessline 50
    #     resp = await client.get(f"https://api.yourcompany.com/data", params={"q": query})
  • Dangerous shell operationline 93
    - Simple math: eval() with safety checks
  • Dangerous shell operationline 109
    # result = eval(compile(ast.parse(expression, mode='eval'), '', 'eval'))

examples/meeting-assistant/README.md

  • Network accessline 32
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Network accessline 34
    python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 40
    # Default: "Juno" responds to "juno", "zuno", "assistant" python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 41
    python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 43
    # Custom name and trigger words python assistant.py "https://meet.google.com/abc" --name "Aria" --triggers "aria,hey aria"
  • Network accessline 44
    python assistant.py "https://meet.google.com/abc" --name "Aria" --triggers "aria,hey aria"
  • Network accessline 46
    # Custom voice (GetSun voices: voice.heart, voice.bella, voice.echo, voice.eric) python assistant.py "https://meet.google.com/abc" --voice voice.bella
  • Network accessline 47
    python assistant.py "https://meet.google.com/abc" --voice voice.bella
  • Network accessline 49
    # Custom persona python assistant.py "https://meet.google.com/abc" --context "You are a financial analyst. Answer with data and numbers."
  • Network accessline 50
    python assistant.py "https://meet.google.com/abc" --context "You are a financial analyst. Answer with data and numbers."
  • Network accessline 52
    # Custom output file python assistant.py "https://meet.google.com/abc" --output standup-log.md
  • Network accessline 53
    python assistant.py "https://meet.google.com/abc" --output standup-log.md

examples/meeting-assistant/assistant.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 14
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Network accessline 16
    python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 18
    # Custom bot name and trigger words     python assistant.py "https://meet.google.com/abc" --name "Juno" --triggers "juno,zuno,assistant"
  • Network accessline 19
    python assistant.py "https://meet.google.com/abc" --name "Juno" --triggers "juno,zuno,assistant"
  • Network accessline 44
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Access to secretsline 48
    [Credential-related source omitted]
  • Access to secretsline 51
    [Credential-related source omitted]
  • Network accessline 56
    resp = requests.post(
  • Network accessline 198
    print("Ending call...")         try:             requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)
  • Network accessline 199
    try:             requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)             print("Call ended (cleanup)")
  • Network accessline 200
    requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)
  • Network accessline 216
    python assistant.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 219
    python assistant.py "https://meet.google.com/abc" --name "Aria" --triggers "aria,hey aria"
  • Network accessline 222
    python assistant.py "https://meet.google.com/abc" --voice voice.bella
  • Network accessline 254
    except KeyboardInterrupt:         print("\nInterrupted — cleaning up...")         requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)
  • Network accessline 255
    print("\nInterrupted — cleaning up...")         requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)         print("Call ended (cleanup)")
  • Network accessline 256
    requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)

examples/notetaker-multilingual/README.md

  • Access to secretsline 29
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Network accessline 36
    # Basic — audio only, cheapest (only base rate charged) python notetaker.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 37
    python notetaker.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 39
    # With English STT for better speaker identification # (adds STT billing but Gemini can match speaker names to voices) python notetaker.py "https://meet.google.com/abc" --with-english-stt
  • Network accessline 41
    python notetaker.py "https://meet.google.com/abc" --with-english-stt
  • Network accessline 43
    # Save the raw audio file for records python notetaker.py "https://meet.google.com/abc" --save-audio
  • Network accessline 44
    python notetaker.py "https://meet.google.com/abc" --save-audio
  • Network accessline 46
    # Custom bot name and output python notetaker.py "https://meet.google.com/abc" --name "Translator" --output standup.md
  • Network accessline 47
    python notetaker.py "https://meet.google.com/abc" --name "Translator" --output standup.md
  • Network accessline 49
    # All options python notetaker.py "https://meet.google.com/abc" --name "Scribe" --save-audio --with-english-stt --output weekly.md
  • Network accessline 50
    python notetaker.py "https://meet.google.com/abc" --name "Scribe" --save-audio --with-english-stt --output weekly.md

examples/notetaker-multilingual/notetaker.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 14
    [Credential-related source omitted]
  • Access to secretsline 14
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Network accessline 16
    python notetaker.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 18
    # Save raw audio file for archival     python notetaker.py "https://meet.google.com/abc" --save-audio
  • Network accessline 19
    python notetaker.py "https://meet.google.com/abc" --save-audio
  • Network accessline 21
    # Custom output file     python notetaker.py "https://meet.google.com/abc" --output standup.md
  • Network accessline 22
    python notetaker.py "https://meet.google.com/abc" --output standup.md
  • Network accessline 58
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 62
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]
  • Access to secretsline 66
    [Credential-related source omitted]
  • Access to secretsline 67
    [Credential-related source omitted]
  • Access to secretsline 70
    [Credential-related source omitted]
  • Access to secretsline 181
    [Credential-related source omitted]
  • Network accessline 198
    resp = requests.post(
  • Possible obfuscationline 279
    pcm_bytes = base64.b64decode(audio_b64)
  • Network accessline 302
    print("Ending call...")         try:             requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)
  • Network accessline 303
    try:             requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)             print("Call ended (cleanup)")
  • Network accessline 304
    requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)
  • Network accessline 351
    python notetaker.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 354
    python notetaker.py "https://meet.google.com/abc" --save-audio
  • Network accessline 357
    python notetaker.py "https://meet.google.com/abc" --with-english-stt
  • Network accessline 360
    python notetaker.py "https://meet.google.com/abc" --name "Translator" --output standup.md
  • Network accessline 386
    except KeyboardInterrupt:         print("\nInterrupted — cleaning up...")         requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)
  • Network accessline 387
    print("\nInterrupted — cleaning up...")         requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)         print("Call ended (cleanup)")
  • Network accessline 388
    requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)

examples/notetaker-simple/README.md

  • Network accessline 24
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Network accessline 26
    python notetaker.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 32
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Network accessline 34
    node notetaker.js "https://meet.google.com/abc-def-ghi"
  • Network accessline 40
    # Custom bot name (default: "Notetaker") python notetaker.py "https://meet.google.com/abc-def-ghi" --name "Scribe"
  • Network accessline 41
    python notetaker.py "https://meet.google.com/abc-def-ghi" --name "Scribe"
  • Network accessline 42
    node notetaker.js "https://meet.google.com/abc-def-ghi" --name "Scribe"

examples/notetaker-simple/notetaker.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 8
    [Credential-related source omitted]
  • Network accessline 9
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 10
    *     node notetaker.js "https://meet.google.com/abc-def-ghi"
  • Network accessline 11
    *  *     # Optional: customize bot name  *     node notetaker.js "https://meet.google.com/abc-def-ghi" --name "Scribe"
  • Network accessline 12
    *     # Optional: customize bot name  *     node notetaker.js "https://meet.google.com/abc-def-ghi" --name "Scribe"  *
  • Network accessline 13
    *     node notetaker.js "https://meet.google.com/abc-def-ghi" --name "Scribe"
  • Network accessline 29
    const API_BASE = process.env.AGENTCALL_API_URL || _cfg.api_url || "https://api.agentcall.dev";
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Network accessline 53
    async function createCall(meetUrl, botName) {   const resp = await fetch(`${API_BASE}/v1/calls`, {
  • Network accessline 54
    const resp = await fetch(`${API_BASE}/v1/calls`, {
  • Network accessline 72
    async function fetchTranscript(callId) {   const resp = await fetch(
  • Network accessline 73
    const resp = await fetch(
  • Network accessline 209
    async function cleanup(callId) {   try {     await fetch(`${API_BASE}/calls/${callId}`, { method: "DELETE", headers: HEADERS });
  • Network accessline 210
    try {     await fetch(`${API_BASE}/calls/${callId}`, { method: "DELETE", headers: HEADERS });     console.log("Call ended (cleanup)");
  • Network accessline 211
    await fetch(`${API_BASE}/calls/${callId}`, { method: "DELETE", headers: HEADERS });

examples/notetaker-simple/notetaker.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 10
    python notetaker.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 12
    # Optional: customize bot name     python notetaker.py "https://meet.google.com/abc-def-ghi" --name "Scribe"
  • Network accessline 13
    python notetaker.py "https://meet.google.com/abc-def-ghi" --name "Scribe"
  • Network accessline 35
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Network accessline 47
    resp = requests.post(
  • Network accessline 64
    resp = requests.get(
  • Network accessline 157
    print("Ending call...")         try:             requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)
  • Network accessline 158
    try:             requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)             print("Call ended (cleanup)")
  • Network accessline 159
    requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)
  • Network accessline 205
    except KeyboardInterrupt:         print("\nInterrupted — cleaning up...")         requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)
  • Network accessline 206
    print("\nInterrupted — cleaning up...")         requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)         print("Call ended (cleanup)")
  • Network accessline 207
    requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)

examples/notetaker-smart/README.md

  • Access to secretsline 34
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Network accessline 37
    python notetaker.py "https://meet.google.com/abc-def-ghi"
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Network accessline 49
    node notetaker.js "https://meet.google.com/abc-def-ghi"
  • Network accessline 55
    # Custom bot name python notetaker.py "https://meet.google.com/abc" --name "Scribe"
  • Network accessline 56
    python notetaker.py "https://meet.google.com/abc" --name "Scribe"
  • Network accessline 58
    # Custom output file python notetaker.py "https://meet.google.com/abc" --output weekly-standup.md
  • Network accessline 59
    python notetaker.py "https://meet.google.com/abc" --output weekly-standup.md

examples/notetaker-smart/notetaker.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 8
    [Credential-related source omitted]
  • Network accessline 9
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 10
    *     node notetaker.js "https://meet.google.com/abc-def-ghi"
  • Network accessline 11
    *  *     # Optional: customize bot name and output  *     node notetaker.js "https://meet.google.com/abc-def-ghi" --name "Scribe" --output summary.md
  • Network accessline 12
    *     # Optional: customize bot name and output  *     node notetaker.js "https://meet.google.com/abc-def-ghi" --name "Scribe" --output summary.md  *
  • Network accessline 13
    *     node notetaker.js "https://meet.google.com/abc-def-ghi" --name "Scribe" --output summary.md
  • Network accessline 34
    const API_BASE = process.env.AGENTCALL_API_URL || _cfg.api_url || "https://api.agentcall.dev";
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 111
    [Credential-related source omitted]
  • Access to secretsline 126
    [Credential-related source omitted]
  • Access to secretsline 140
    [Credential-related source omitted]
  • Access to secretsline 143
    [Credential-related source omitted]
  • Network accessline 153
    // const OpenAI = require("openai");   // const client = new OpenAI({   //   baseURL: "http://localhost:11434/v1",  // Ollama
  • Network accessline 154
    [Credential-related source omitted]
  • Network accessline 155
    //   baseURL: "http://localhost:11434/v1",  // Ollama
  • Network accessline 174
    async function createCall(meetUrl, botName) {   const resp = await fetch(`${API_BASE}/v1/calls`, {
  • Network accessline 175
    const resp = await fetch(`${API_BASE}/v1/calls`, {
  • Network accessline 190
    async function fetchTranscript(callId) {   const resp = await fetch(
  • Network accessline 191
    const resp = await fetch(
  • Network accessline 348
    async function cleanup(callId) {   try {     await fetch(`${API_BASE}/calls/${callId}`, { method: "DELETE", headers: HEADERS });
  • Network accessline 349
    try {     await fetch(`${API_BASE}/calls/${callId}`, { method: "DELETE", headers: HEADERS });     console.log("Call ended (cleanup)");
  • Network accessline 350
    await fetch(`${API_BASE}/calls/${callId}`, { method: "DELETE", headers: HEADERS });

examples/notetaker-smart/notetaker.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 10
    python notetaker.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 12
    # Optional: customize bot name and output     python notetaker.py "https://meet.google.com/abc-def-ghi" --name "Scribe" --output summary.md
  • Network accessline 13
    python notetaker.py "https://meet.google.com/abc-def-ghi" --name "Scribe" --output summary.md
  • Network accessline 35
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 98
    [Credential-related source omitted]
  • Access to secretsline 102
    [Credential-related source omitted]
  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 129
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Network accessline 144
    #     # client = OpenAI(     #     base_url="http://localhost:11434/v1",  # Ollama
  • Network accessline 145
    [Credential-related source omitted]
  • Network accessline 146
    #     base_url="http://localhost:11434/v1",  # Ollama
  • Access to secretsline 147
    [Credential-related source omitted]
  • Network accessline 163
    def create_call(meet_url: str, bot_name: str) -> dict:     resp = requests.post(
  • Network accessline 164
    resp = requests.post(
  • Network accessline 179
    def fetch_transcript(call_id: str) -> Optional[dict]:     resp = requests.get(f"{API_BASE}/v1/calls/{call_id}/transcript?format=json", headers=HEADERS)
  • Network accessline 180
    resp = requests.get(f"{API_BASE}/v1/calls/{call_id}/transcript?format=json", headers=HEADERS)
  • Network accessline 287
    print("Ending call...")         try:             requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)
  • Network accessline 288
    try:             requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)             print("Call ended (cleanup)")
  • Network accessline 289
    requests.delete(f"{API_BASE}/v1/calls/{call_id}", headers=HEADERS)
  • Network accessline 337
    except KeyboardInterrupt:         print("\nInterrupted — cleaning up...")         requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)
  • Network accessline 338
    print("\nInterrupted — cleaning up...")         requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)         print("Call ended (cleanup)")
  • Network accessline 339
    requests.delete(f"{API_BASE}/v1/calls/{call['call_id']}", headers=HEADERS)

examples/support-agent/README.md

  • Access to secretsline 48
    [Credential-related source omitted]
  • Access to secretsline 49
    [Credential-related source omitted]
  • Network accessline 51
    python agent.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 57
    # Custom bot name python agent.py "https://meet.google.com/abc" --name "Sarah"
  • Network accessline 58
    python agent.py "https://meet.google.com/abc" --name "Sarah"
  • Network accessline 60
    # Custom TTS voice (54 voices available) python agent.py "https://meet.google.com/abc" --voice af_bella
  • Network accessline 61
    python agent.py "https://meet.google.com/abc" --voice af_bella
  • Network accessline 63
    # Custom output file python agent.py "https://meet.google.com/abc" --output call-log.md
  • Network accessline 64
    python agent.py "https://meet.google.com/abc" --output call-log.md

examples/support-agent/agent.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 10
    [Credential-related source omitted]
  • Access to secretsline 11
    [Credential-related source omitted]
  • Network accessline 12
    python agent.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 14
    # Custom voice and bot name     python agent.py "https://meet.google.com/abc" --name "Sarah" --voice af_bella
  • Network accessline 15
    python agent.py "https://meet.google.com/abc" --name "Sarah" --voice af_bella
  • Network accessline 50
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]
  • Access to secretsline 51
    [Credential-related source omitted]
  • Access to secretsline 53
    [Credential-related source omitted]
  • Access to secretsline 54
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Access to secretsline 156
    [Credential-related source omitted]
  • Access to secretsline 175
    [Credential-related source omitted]
  • Access to secretsline 191
    [Credential-related source omitted]
  • Access to secretsline 195
    [Credential-related source omitted]
  • Network accessline 209
    [Credential-related source omitted]
  • Network accessline 210
    [Credential-related source omitted]
  • Network accessline 211
    [Credential-related source omitted]
  • Access to secretsline 211
    [Credential-related source omitted]
  • Network accessline 234
    def create_call(meet_url: str, bot_name: str) -> dict:     resp = requests.post(
  • Network accessline 235
    resp = requests.post(
  • Network accessline 415
    epilog=""" Examples:   python agent.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 416
    Examples:   python agent.py "https://meet.google.com/abc-def-ghi"   python agent.py "https://meet.google.com/abc" --name "Sarah" --voice af_bella
  • Network accessline 417
    python agent.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 418
    python agent.py "https://meet.google.com/abc" --name "Sarah" --voice af_bella
  • Network accessline 419
    python agent.py "https://meet.google.com/abc" --output call-log.md

references/api.md

  • Network accessline 11
    # 1. Register curl -X POST https://api.agentcall.dev/v1/auth/register \
  • Network accessline 12
    curl -X POST https://api.agentcall.dev/v1/auth/register \
  • Network accessline 17
    # 2. Login (get JWT) curl -X POST https://api.agentcall.dev/v1/auth/login \
  • Network accessline 18
    curl -X POST https://api.agentcall.dev/v1/auth/login \
  • Network accessline 23
    # 3. Create API key (using JWT) curl -X POST https://api.agentcall.dev/v1/auth/api-keys \
  • Network accessline 24
    curl -X POST https://api.agentcall.dev/v1/auth/api-keys \
  • Network accessline 31
    # Check credit balance curl https://api.agentcall.dev/v1/auth/credits \
  • Network accessline 32
    curl https://api.agentcall.dev/v1/auth/credits \
  • Access to secretsline 37
    [Credential-related source omitted]
  • Network accessline 46
    {   "meet_url": "https://meet.google.com/abc-def-ghi",
  • Network accessline 47
    "meet_url": "https://meet.google.com/abc-def-ghi",
  • Network accessline 57
    "voice": "voice.heart"   },   "webhook_url": "https://my-server.com/webhooks",
  • Network accessline 58
    },   "webhook_url": "https://my-server.com/webhooks",   "event_filter": ["transcript.final", "participant.joined"],
  • Network accessline 59
    "webhook_url": "https://my-server.com/webhooks",
  • Network accessline 68
    "delay_seconds": 60   },   "webpage_url": "https://your-site.com/bot",
  • Network accessline 69
    },   "webpage_url": "https://your-site.com/bot",   "screenshare_url": "https://your-site.com/screenshare"
  • Network accessline 70
    "webpage_url": "https://your-site.com/bot",
  • Network accessline 71
    "screenshare_url": "https://your-site.com/screenshare"
  • Network accessline 79
    "status": "bot_joining",   "ws_url": "wss://api.agentcall.dev/v1/calls/call-550e.../ws",   "tunnel_url": "https://x8f2k.conn.agentcall.dev/k/a7b2c.../ui",
  • Network accessline 80
    "ws_url": "wss://api.agentcall.dev/v1/calls/call-550e.../ws",   "tunnel_url": "https://x8f2k.conn.agentcall.dev/k/a7b2c.../ui",   "tunnel_id": "tun-a7b2c...",
  • Network accessline 81
    "tunnel_url": "https://x8f2k.conn.agentcall.dev/k/a7b2c.../ui",
  • Network accessline 97
    "call_id": "call-550e8400-e29b-41d4-a716-446655440000",     "status": "bot_ready",     "meet_url": "https://meet.google.com/abc-def-ghi",
  • Network accessline 98
    "status": "bot_ready",     "meet_url": "https://meet.google.com/abc-def-ghi",     "bot_name": "June",
  • Network accessline 99
    "meet_url": "https://meet.google.com/abc-def-ghi",
  • Network accessline 114
    "call_id": "call-550e8400...",   "status": "bot_ready",   "meet_url": "https://meet.google.com/abc-def-ghi",
  • Network accessline 115
    "status": "bot_ready",   "meet_url": "https://meet.google.com/abc-def-ghi",   "bot_name": "June",
  • Network accessline 116
    "meet_url": "https://meet.google.com/abc-def-ghi",
  • Access to secretsline 187
    [Credential-related source omitted]

references/guides/bring-your-own-voice.md

  • Access to secretsline 32
    [Credential-related source omitted]

references/guides/collaborative-mode.md

  • Network accessline 31
    call = await client.create_call(     meet_url="https://meet.google.com/abc-def-ghi",
  • Network accessline 32
    meet_url="https://meet.google.com/abc-def-ghi",
  • Access to secretsline 392
    [Credential-related source omitted]
  • Network accessline 394
    call = await client.create_call(         meet_url="https://meet.google.com/abc-def-ghi",
  • Network accessline 395
    meet_url="https://meet.google.com/abc-def-ghi",

references/guides/crash-recovery.md

  • Network accessline 133
    {   "call_id": "call-abc123",   "meet_url": "https://meet.google.com/xyz",
  • Network accessline 134
    "call_id": "call-abc123",   "meet_url": "https://meet.google.com/xyz",   "mode": "audio",
  • Network accessline 135
    "meet_url": "https://meet.google.com/xyz",
  • Access to secretsline 155
    [Credential-related source omitted]
  • Network accessline 175
    # Create new call         call = await client.create_call(             meet_url="https://meet.google.com/abc",
  • Network accessline 176
    call = await client.create_call(             meet_url="https://meet.google.com/abc",             mode="audio",
  • Network accessline 177
    meet_url="https://meet.google.com/abc",

references/guides/interruption-handling.md

  • Network accessline 125
    <script src="https://cdn.jsdelivr.net/npm/onnxruntime-web@1.17.0/dist/ort.min.js"></script>
  • Network accessline 128
    Download `silero_vad.onnx` (~1.5MB) from https://github.com/snakers4/silero-vad

references/guides/ui-templates.md

  • Network accessline 188
    3. Handle events: `voice.state`, `tts.webpage_audio`, `tts.audio_clear` 4. If building a voice agent: call `getUserMedia` on page load (see above) 5. Host locally (`--ui-port 3000`) or publicly (`--webpage-url`). For local hosting, referenc
  • Network accessline 190
    5. Host locally (`--ui-port 3000`) or publicly (`--webpage-url`). For local hosting, reference your files with **relative paths** (`app.js`, `fetch('data.json')`), not `/app.js`: the tunnel serves the page under a per-call prefix, and absol

references/guides/webpage-audio.md

  • Possible obfuscationline 208
    const bytes = Uint8Array.from(atob(base64Data), c => c.charCodeAt(0));
  • Possible obfuscationline 421
    base64 string → atob() → Uint8Array → DataView.getInt16(LE) → Float32 (-1.0 to 1.0)

references/guides/webpage-av-screenshare.md

  • Network accessline 32
    # Both local (tunneled) ./scripts/run.sh https://meet.google.com/abc \
  • Network accessline 33
    ./scripts/run.sh https://meet.google.com/abc \
  • Network accessline 38
    # Avatar public, screenshare local ./scripts/run.sh https://meet.google.com/abc \
  • Network accessline 39
    ./scripts/run.sh https://meet.google.com/abc \
  • Network accessline 40
    --mode webpage-av-screenshare \   --webpage-url https://brand.com/avatar \   --screenshare-port 3001
  • Network accessline 41
    --webpage-url https://brand.com/avatar \
  • Network accessline 44
    # Both public (no tunnels) ./scripts/run.sh https://meet.google.com/abc \
  • Network accessline 45
    ./scripts/run.sh https://meet.google.com/abc \
  • Network accessline 46
    --mode webpage-av-screenshare \   --webpage-url https://brand.com/avatar \   --screenshare-url https://slides.com/deck
  • Network accessline 47
    --webpage-url https://brand.com/avatar \
  • Network accessline 48
    --screenshare-url https://slides.com/deck
  • Network accessline 119
    async function poll() {   try {     const r = await fetch('/state.json?t=' + Date.now());
  • Network accessline 120
    try {     const r = await fetch('/state.json?t=' + Date.now());     const state = await r.json();
  • Network accessline 121
    const r = await fetch('/state.json?t=' + Date.now());
  • Network accessline 151
    // Share a public URL {"command": "screenshare.start", "url": "https://your-slides.com/deck"}
  • Network accessline 152
    {"command": "screenshare.start", "url": "https://your-slides.com/deck"}
  • Network accessline 191
    {"command": "screenshare.swap", "port": 3002} {"command": "screenshare.swap", "url": "https://different-page.com"}
  • Network accessline 192
    {"command": "screenshare.swap", "url": "https://different-page.com"}
  • Network accessline 197
    1. **"Old content keeps showing"** — for local-port swaps the tunnel URL is byte-identical (`https://tunnel/screenshare/`), so FirstCall's headless browser would otherwise see "same URL — don't reload." The cache-buster (`?_acv=<ms>`) force

references/guides/webpage-av.md

  • Network accessline 61
    let lastState = ''; setInterval(async () => {   const r = await fetch('/state.json?t=' + Date.now());
  • Network accessline 62
    setInterval(async () => {   const r = await fetch('/state.json?t=' + Date.now());   const text = await r.text();
  • Network accessline 63
    const r = await fetch('/state.json?t=' + Date.now());
  • Network accessline 96
    Example: An existing customer support voice agent at `https://support.acme.com/agent`
  • Network accessline 100
    ./scripts/run.sh https://meet.google.com/abc-def-ghi \
  • Network accessline 102
    --webpage-url https://support.acme.com/agent

scripts/node/agentcall.js

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    [Credential-related source omitted]
  • Network accessline 24
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Network accessline 25
    this.baseURL = baseURL || process.env.AGENTCALL_API_URL || cfg.api_url || 'https://api.agentcall.dev';
  • Network accessline 37
    };     if (body) opts.body = JSON.stringify(body);     const resp = await fetch(url, opts);
  • Network accessline 38
    if (body) opts.body = JSON.stringify(body);     const resp = await fetch(url, opts);     if (!resp.ok) {
  • Network accessline 39
    const resp = await fetch(url, opts);
  • Access to secretsline 73
    [Credential-related source omitted]

scripts/node/bridge-visual.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 20
    *  * Additional stdin commands:  *   {"command": "screenshare.start", "url": "https://slides.google.com/..."}
  • Network accessline 21
    * Additional stdin commands:  *   {"command": "screenshare.start", "url": "https://slides.google.com/..."}  *   {"command": "screenshare.start", "port": 3001}
  • Network accessline 22
    *   {"command": "screenshare.start", "url": "https://slides.google.com/..."}
  • Network accessline 23
    *   {"command": "screenshare.start", "port": 3001}  *   {"command": "screenshare.swap", "port": 3002}            // atomic stop+start  *   {"command": "screenshare.swap", "url": "https://..."}    // atomic stop+start
  • Network accessline 24
    *   {"command": "screenshare.swap", "port": 3002}            // atomic stop+start  *   {"command": "screenshare.swap", "url": "https://..."}    // atomic stop+start  *   {"command": "screenshare.stop"}
  • Network accessline 25
    *   {"command": "screenshare.swap", "url": "https://..."}    // atomic stop+start
  • Network accessline 36
    [Credential-related source omitted]
  • Network accessline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Network accessline 38
    *     node bridge-visual.js "https://meet.google.com/abc" --name "Claude"
  • Network accessline 39
    *     node bridge-visual.js "https://meet.google.com/abc" --webpage-url "https://your-site.com/avatar"
  • Network accessline 40
    *     node bridge-visual.js "https://meet.google.com/abc" --ui-port 3000
  • Network accessline 62
    // FirstCall's headless browser caches the screenshare URL aggressively — a swap // from one local port to another keeps showing the OLD content because the URL // (https://tunnel/screenshare/) doesn't change.
  • Network accessline 63
    // from one local port to another keeps showing the OLD content because the URL // (https://tunnel/screenshare/) doesn't change. //
  • Network accessline 64
    // (https://tunnel/screenshare/) doesn't change.
  • Network accessline 136
    const API_BASE = process.env.AGENTCALL_API_URL || _cfg.api_url || 'https://api.agentcall.dev';
  • Access to secretsline 137
    [Credential-related source omitted]
  • Access to secretsline 139
    [Credential-related source omitted]
  • Access to secretsline 140
    [Credential-related source omitted]
  • Access to secretsline 792
    [Credential-related source omitted]
  • Network accessline 793
    };   if (body) opts.body = JSON.stringify(body);   const resp = await fetch(url, opts);
  • Network accessline 794
    if (body) opts.body = JSON.stringify(body);   const resp = await fetch(url, opts);   if (!resp.ok) {
  • Network accessline 795
    const resp = await fetch(url, opts);
  • Access to secretsline 820
    [Credential-related source omitted]
  • Access to secretsline 941
    [Credential-related source omitted]

scripts/node/bridge.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 23
    [Credential-related source omitted]
  • Network accessline 24
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Network accessline 25
    *     node bridge.js "https://meet.google.com/abc-def-ghi"
  • Network accessline 26
    *  *     # Custom bot name, voice, and VAD cooldown  *     node bridge.js "https://meet.google.com/abc" --name "Claude" --voice af_bella --vad-timeout 2.0
  • Network accessline 27
    *     # Custom bot name, voice, and VAD cooldown  *     node bridge.js "https://meet.google.com/abc" --name "Claude" --voice af_bella --vad-timeout 2.0  *
  • Network accessline 28
    *     node bridge.js "https://meet.google.com/abc" --name "Claude" --voice af_bella --vad-timeout 2.0
  • Network accessline 61
    const API_BASE = process.env.AGENTCALL_API_URL || _cfg.api_url || 'https://api.agentcall.dev';
  • Access to secretsline 62
    [Credential-related source omitted]
  • Access to secretsline 64
    [Credential-related source omitted]
  • Access to secretsline 65
    [Credential-related source omitted]
  • Access to secretsline 432
    [Credential-related source omitted]
  • Network accessline 435
    };   if (body) opts.body = JSON.stringify(body);   const resp = await fetch(url, opts);
  • Network accessline 436
    if (body) opts.body = JSON.stringify(body);   const resp = await fetch(url, opts);   if (!resp.ok) {
  • Network accessline 437
    const resp = await fetch(url, opts);
  • Access to secretsline 462
    [Credential-related source omitted]
  • Access to secretsline 527
    [Credential-related source omitted]

scripts/node/check_update.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 24
    const REPO_URL = 'https://github.com/pattern-ai-labs/agentcall';
  • Network accessline 25
    const GITHUB_PLUGIN_URL = 'https://raw.githubusercontent.com/pattern-ai-labs/agentcall/main/.claude-plugin/plugin.json';

scripts/node/join.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 26
    triggerWords: '',     context: '',     apiURL: 'https://api.agentcall.dev',
  • Network accessline 27
    context: '',     apiURL: 'https://api.agentcall.dev',   };
  • Network accessline 28
    apiURL: 'https://api.agentcall.dev',
  • Access to secretsline 94
    [Credential-related source omitted]
  • Access to secretsline 96
    [Credential-related source omitted]

scripts/node/package.json

  • Executable scriptline 1
    Executable file

scripts/node/register.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 24
    const CONFIG_PATH = join(homedir(), '.agentcall', 'config.json'); const DEFAULT_API_URL = 'https://api.agentcall.dev';
  • Network accessline 25
    const DEFAULT_API_URL = 'https://api.agentcall.dev';
  • Access to secretsline 70
    [Credential-related source omitted]

scripts/node/stdin-commands.js

  • Executable scriptline 1
    Executable file

scripts/node/tunnel.js

  • Executable scriptline 1
    Executable file

scripts/python/agentcall.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Network accessline 46
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Network accessline 47
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Network accessline 48
    self.base_url = base_url or load_api_url() or "https://api.agentcall.dev"
  • Network accessline 51
    async def _get_session(self) -> aiohttp.ClientSession:         if self._session is None or self._session.closed:             self._session = aiohttp.ClientSession(
  • Network accessline 52
    [Credential-related source omitted]
  • Network accessline 53
    self._session = aiohttp.ClientSession(
  • Access to secretsline 54
    [Credential-related source omitted]
  • Access to secretsline 107
    [Credential-related source omitted]

scripts/python/bridge-visual.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 23
    Additional stdout events:     {"event": "screenshare.started", "url": "https://..."}
  • Network accessline 24
    {"event": "screenshare.started", "url": "https://..."}
  • Network accessline 28
    Additional stdin commands:     {"command": "screenshare.start", "url": "https://slides.google.com/..."}
  • Network accessline 29
    {"command": "screenshare.start", "url": "https://slides.google.com/..."}
  • Network accessline 30
    {"command": "screenshare.start", "port": 3001}     {"command": "screenshare.swap", "port": 3002}             — atomic stop+start     {"command": "screenshare.swap", "url": "https://..."}    — atomic stop+start
  • Network accessline 31
    {"command": "screenshare.swap", "port": 3002}             — atomic stop+start     {"command": "screenshare.swap", "url": "https://..."}    — atomic stop+start     {"command": "screenshare.stop"}
  • Network accessline 32
    {"command": "screenshare.swap", "url": "https://..."}    — atomic stop+start
  • Access to secretsline 43
    [Credential-related source omitted]
  • Network accessline 45
    # With built-in avatar template (starts local server + tunnel automatically)     python bridge-visual.py "https://meet.google.com/abc" --name "Claude"
  • Network accessline 46
    python bridge-visual.py "https://meet.google.com/abc" --name "Claude"
  • Network accessline 48
    # With public webpage as bot's video feed (no tunnel needed)     python bridge-visual.py "https://meet.google.com/abc" --webpage-url "https://your-site.com/avatar"
  • Network accessline 49
    python bridge-visual.py "https://meet.google.com/abc" --webpage-url "https://your-site.com/avatar"
  • Network accessline 51
    # With custom local UI on port 3000 (tunnel auto-started)     python bridge-visual.py "https://meet.google.com/abc" --ui-port 3000
  • Network accessline 52
    python bridge-visual.py "https://meet.google.com/abc" --ui-port 3000
  • Network accessline 86
    # These exist because FirstCall's headless browser caches the screenshare URL # aggressively — a swap from one local port to another keeps showing the OLD # content because the URL (https://tunnel/screenshare/) doesn't change.
  • Network accessline 87
    # aggressively — a swap from one local port to another keeps showing the OLD # content because the URL (https://tunnel/screenshare/) doesn't change. #
  • Network accessline 88
    # content because the URL (https://tunnel/screenshare/) doesn't change.
  • Network accessline 100
    try:         with socket.create_connection((host, port), timeout=timeout):
  • Network accessline 101
    with socket.create_connection((host, port), timeout=timeout):
  • Network accessline 291
    [Credential-related source omitted]
  • Access to secretsline 291
    [Credential-related source omitted]
  • Access to secretsline 292
    [Credential-related source omitted]
  • Access to secretsline 294
    [Credential-related source omitted]
  • Access to secretsline 295
    [Credential-related source omitted]
  • Network accessline 620
    async def _get_session(self) -> aiohttp.ClientSession:         if self.session is None or self.session.closed:             self.session = aiohttp.ClientSession(
  • Network accessline 621
    [Credential-related source omitted]
  • Network accessline 622
    self.session = aiohttp.ClientSession(
  • Access to secretsline 623
    [Credential-related source omitted]
  • Access to secretsline 665
    [Credential-related source omitted]
  • Network accessline 873
    if path.startswith("/screenshare") and self.screenshare_port:             local_path = path[len("/screenshare"):] or "/"             return f"http://localhost:{self.screenshare_port}{local_path}"
  • Network accessline 874
    local_path = path[len("/screenshare"):] or "/"             return f"http://localhost:{self.screenshare_port}{local_path}"         if path.startswith("/webpage") and self.webpage_port:
  • Network accessline 875
    return f"http://localhost:{self.screenshare_port}{local_path}"
  • Network accessline 876
    if path.startswith("/webpage") and self.webpage_port:             local_path = path[len("/webpage"):] or "/"             return f"http://localhost:{self.webpage_port}{local_path}"
  • Network accessline 877
    local_path = path[len("/webpage"):] or "/"             return f"http://localhost:{self.webpage_port}{local_path}"         if path.startswith("/ui"):
  • Network accessline 878
    return f"http://localhost:{self.webpage_port}{local_path}"
  • Network accessline 879
    if path.startswith("/ui"):             local_path = path[len("/ui"):] or "/"             return f"http://localhost:{self.ui_port}{local_path}"
  • Network accessline 880
    local_path = path[len("/ui"):] or "/"             return f"http://localhost:{self.ui_port}{local_path}"         return f"http://localhost:{self.ui_port}{path}"
  • Network accessline 881
    return f"http://localhost:{self.ui_port}{local_path}"
  • Network accessline 882
    return f"http://localhost:{self.ui_port}{path}"
  • Possible obfuscationline 911
    body = base64.b64decode(raw_body) if binary else raw_body.encode()
  • Network accessline 918
    async with aiohttp.ClientSession(auto_decompress=not binary) as session:
  • Network accessline 1180
    # Start screensharing. Accepts either:                 #   {"command": "screenshare.start", "url": "https://..."}  — public URL
  • Network accessline 1181
    #   {"command": "screenshare.start", "url": "https://..."}  — public URL
  • Network accessline 1790
    python bridge-visual.py "https://meet.google.com/abc" --name Claude
  • Network accessline 1793
    python bridge-visual.py "https://meet.google.com/abc" --webpage-url "https://your-site.com/avatar"
  • Network accessline 1796
    python bridge-visual.py "https://meet.google.com/abc" --screenshare-port 3001
  • Network accessline 1799
    stdin: {"command": "screenshare.start", "url": "https://slides.google.com/..."}

scripts/python/bridge.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 42
    stdin commands (agent → bridge):     {"command": "tts.speak", "text": "Health check returned OK", "voice": "af_heart"}     {"command": "send_chat", "message": "Here's the URL: https://..."}
  • Network accessline 43
    {"command": "tts.speak", "text": "Health check returned OK", "voice": "af_heart"}     {"command": "send_chat", "message": "Here's the URL: https://..."}     {"command": "raise_hand"}
  • Network accessline 44
    {"command": "send_chat", "message": "Here's the URL: https://..."}
  • Network accessline 59
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Network accessline 61
    python bridge.py "https://meet.google.com/abc-def-ghi"
  • Network accessline 63
    # Custom bot name, voice, and VAD cooldown     python bridge.py "https://meet.google.com/abc" --name "Claude" --voice af_bella --vad-timeout 2.0
  • Network accessline 64
    python bridge.py "https://meet.google.com/abc" --name "Claude" --voice af_bella --vad-timeout 2.0
  • Network accessline 237
    [Credential-related source omitted]
  • Access to secretsline 237
    [Credential-related source omitted]
  • Access to secretsline 238
    [Credential-related source omitted]
  • Access to secretsline 240
    [Credential-related source omitted]
  • Access to secretsline 241
    [Credential-related source omitted]
  • Network accessline 504
    async def _get_session(self) -> aiohttp.ClientSession:         if self.session is None or self.session.closed:             self.session = aiohttp.ClientSession(
  • Network accessline 505
    [Credential-related source omitted]
  • Network accessline 506
    self.session = aiohttp.ClientSession(
  • Access to secretsline 507
    [Credential-related source omitted]
  • Access to secretsline 538
    [Credential-related source omitted]

scripts/python/check_update.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 23
    REPO_URL = "https://github.com/pattern-ai-labs/agentcall"
  • Network accessline 24
    GITHUB_PLUGIN_URL = "https://raw.githubusercontent.com/pattern-ai-labs/agentcall/main/.claude-plugin/plugin.json"
  • Network accessline 104
    def fetch_latest_version() -> str:     req = urllib.request.Request(
  • Network accessline 105
    req = urllib.request.Request(
  • Network accessline 107
    headers={"Accept": "application/json", "User-Agent": "agentcall-skill-update-check"},     )     with urllib.request.urlopen(req, timeout=FETCH_TIMEOUT) as resp:
  • Network accessline 108
    )     with urllib.request.urlopen(req, timeout=FETCH_TIMEOUT) as resp:         data = json.load(resp)
  • Network accessline 109
    with urllib.request.urlopen(req, timeout=FETCH_TIMEOUT) as resp:

scripts/python/join.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 35
    parser.add_argument("--trigger-words", default="")     parser.add_argument("--context", default="")     parser.add_argument("--api-url", default="https://api.agentcall.dev")
  • Network accessline 36
    parser.add_argument("--context", default="")     parser.add_argument("--api-url", default="https://api.agentcall.dev")     return parser.parse_args()
  • Network accessline 37
    parser.add_argument("--api-url", default="https://api.agentcall.dev")
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 48
    [Credential-related source omitted]

scripts/python/register.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 26
    CONFIG_PATH = Path.home() / ".agentcall" / "config.json" DEFAULT_API_URL = "https://api.agentcall.dev"
  • Network accessline 27
    DEFAULT_API_URL = "https://api.agentcall.dev"
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Network accessline 44
    req = urllib.request.Request(url, data=json.dumps(body).encode(), method="POST")
  • Network accessline 47
    req.add_header("Authorization", f"Bearer {token}")     try:         with urllib.request.urlopen(req, timeout=30) as resp:
  • Network accessline 48
    try:         with urllib.request.urlopen(req, timeout=30) as resp:             return resp.status, json.loads(resp.read() or "{}")
  • Network accessline 49
    with urllib.request.urlopen(req, timeout=30) as resp:
  • Access to secretsline 98
    [Credential-related source omitted]
  • Access to secretsline 106
    [Credential-related source omitted]

scripts/python/tunnel.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 5
    [Credential-related source omitted]
  • Possible obfuscationline 37
    return base64.b64decode(body)
  • Network accessline 131
    binary = payload.get("body_encoding") == "base64"             async with aiohttp.ClientSession(auto_decompress=not binary) as session:
  • Network accessline 132
    async with aiohttp.ClientSession(auto_decompress=not binary) as session:

scripts/run.sh

  • Executable scriptline 1
    #!/bin/bash

tests/stdin_commands_node.test.mjs

  • Executable scriptline 1
    Executable file

tests/test_bridge_stdin.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 12
    [Credential-related source omitted]

tests/test_bridge_visual_stdin.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 22
    [Credential-related source omitted]
  • Network accessline 100
    bridge = load_bridge()     sent, events, _ = asyncio.run(run_stdin_lines(bridge, [         {"command": "screenshare.start", "url": "https://example.com/slides"},
  • Network accessline 101
    sent, events, _ = asyncio.run(run_stdin_lines(bridge, [         {"command": "screenshare.start", "url": "https://example.com/slides"},         {"command": "screenshare.stop"},
  • Network accessline 102
    {"command": "screenshare.start", "url": "https://example.com/slides"},
  • Network accessline 103
    {"command": "screenshare.stop"},         {"command": "screenshare.swap", "url": "https://example.com/next"},     ]))
  • Network accessline 104
    {"command": "screenshare.swap", "url": "https://example.com/next"},

ui-templates/agentcall-audio.js

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 281
    const bytes = Uint8Array.from(atob(base64Data), c => c.charCodeAt(0));

ui-templates/avatar/index.html

  • Network accessline 171
    } }); const avatarURL = params.get('avatar') || 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="45" fill="%23333"/><circle cx="50" cy="40" r="18" fill="%23666"/><ellipse cx="50" c
  • Network accessline 172
    }); const avatarURL = params.get('avatar') || 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="45" fill="%23333"/><circle cx="50" cy="40" r="18" fill="%23666"/><ellipse cx="50" cy=
  • Network accessline 173
    const avatarURL = params.get('avatar') || 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="45" fill="%23333"/><circle cx="50" cy="40" r="18" fill="%23666"/><ellipse cx="50" cy="75"
  • Network accessline 225
    async function pollTasks() {   try {     const r = await fetch('tasks.json', { cache: 'no-store' });
  • Network accessline 226
    try {     const r = await fetch('tasks.json', { cache: 'no-store' });     if (!r.ok) return;
  • Network accessline 227
    const r = await fetch('tasks.json', { cache: 'no-store' });

ui-templates/orb/index.html

  • Network accessline 148
    async function pollTasks() {   try {     const r = await fetch('tasks.json', { cache: 'no-store' });
  • Network accessline 149
    try {     const r = await fetch('tasks.json', { cache: 'no-store' });     if (!r.ok) return;
  • Network accessline 150
    const r = await fetch('tasks.json', { cache: 'no-store' });

ui-templates/pattern/index.html

  • Network accessline 344
    async function pollTasks() {   try {     const r = await fetch('tasks.json', { cache: 'no-store' });
  • Network accessline 345
    try {     const r = await fetch('tasks.json', { cache: 'no-store' });     if (!r.ok) return;
  • Network accessline 346
    const r = await fetch('tasks.json', { cache: 'no-store' });

ui-templates/ring/index.html

  • Network accessline 204
    async function pollTasks() {   try {     const r = await fetch('tasks.json', { cache: 'no-store' });
  • Network accessline 205
    try {     const r = await fetch('tasks.json', { cache: 'no-store' });     if (!r.ok) return;
  • Network accessline 206
    const r = await fetch('tasks.json', { cache: 'no-store' });

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 2 facts
Signal confidence: 498 facts
  • Network access in prose of documentationCHANGELOG.md:85Low confidence
  • Network access in prose of documentationCHANGELOG.md:87Low confidence
  • Network access in prose of documentationREADME.md:5Low confidence
  • Network access in prose of documentationREADME.md:38Low confidence
  • Network access in prose of documentationREADME.md:39Low confidence
  • Network access in prose of documentationREADME.md:40Low confidence
  • Network access in prose of documentationREADME.md:54Low confidence
  • Network access in code of documentationREADME.md:73Low confidence
  • Network access in code of documentationREADME.md:81Low confidence
  • Network access in prose of documentationREADME.md:91Low confidence
  • Network access in prose of documentationREADME.md:95Low confidence
  • Network access in prose of documentationREADME.md:99Low confidence
  • Network access in prose of documentationREADME.md:149Low confidence
  • Network access in prose of documentationREADME.md:150Low confidence
  • Network access in prose of documentationREADME.md:151Low confidence
  • Network access in prose of documentationREADME.md:152Low confidence
  • Network access in prose of documentationREADME.md:153Low confidence
  • Network access in prose of documentationREADME.md:154Low confidence
  • Network access in prose of documentationREADME.md:155Low confidence
  • Network access in prose of documentationREADME.md:157Low confidence
  • Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueREADME.md:159Low confidence
  • Network access in prose of documentationREADME.md:165Low confidence
  • Network access in prose of documentationREADME.md:175Low confidence
  • Network access in prose of documentationREADME.md:176Low confidence
  • Network access in prose of documentationREADME.md:184Low confidence
  • Access to secrets in prose of the SKILL.mdSKILL.md:42Low confidence
  • Access to secrets in prose of the SKILL.mdSKILL.md:43Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:66Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:67Low confidence
  • Access to secrets in code of the SKILL.mdSKILL.md:71High confidence
  • Access to secrets in prose of the SKILL.mdSKILL.md:76Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:108Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:109Low confidence
  • Access to secrets in code of the SKILL.mdSKILL.md:115High confidence
  • Network access in prose of the SKILL.mdSKILL.md:152Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:153Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:154Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:155Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:157Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:189Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:226Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:227Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:228Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:230Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:322Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:615Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:617Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:620Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:621Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:622Low confidence

and 448 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLINativeManifest gemini-extension.json.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.