本文へ移動
cccskills
無料GitHub で公開

google_meet

Join a Google Meet call, transcribe live captions, optionally speak in realtime, and do the followup work afterwards. Use when the user asks the agent to sit in on a meeting, take notes, summarize, respond in-call, or action items from it.

インストール方法を見る

含まれるファイル(18)

  • SKILL.md6.8 KB
  • __init__.py2.8 KB
  • _jsonfile.py500 B
  • audio_bridge.py5.2 KB
  • cli.py12.0 KB
  • meet_bot.py24.2 KB
  • node/__init__.py1.1 KB
  • node/cli.py3.7 KB
  • node/client.py2.9 KB
  • node/protocol.py3.5 KB
  • node/registry.py2.5 KB
  • node/server.py5.5 KB
  • plugin.yaml719 B
  • process_manager.py7.9 KB
  • README.md7.1 KB
  • realtime/__init__.py201 B
  • realtime/openai_client.py8.8 KB
  • tools.py7.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

google_meet

When to use

The user says any of:

  • "join my Meet at <url>"
  • "take notes on this meeting"
  • "summarize the meeting and send followups"
  • "sit in on my standup"
  • "be a bot in this call and speak up when X"

Two modes

ModeWhat the bot does
transcribe (default)Joins, enables captions, scrapes a transcript. Listen-only.
realtimeSame as transcribe PLUS speaks into the meeting via OpenAI Realtime. The agent calls meet_say(text) and the bot's voice comes out of the call.

Pick realtime only when the user actually wants the agent to speak. It costs real money (OpenAI Realtime is pay-per-audio-minute) and requires a virtual audio device set up on the machine running the bot.

Two locations

LocationWhen
Local (default)Gateway machine runs the Playwright bot directly.
Remote node (node="<name>")Bot runs on a different machine that has a signed-in Chrome and (for realtime) a configured audio bridge. Useful when the gateway runs on a headless Linux box but the user's real signed-in Chrome lives on their Mac.

Prerequisites the user must handle once

Easiest path — run the built-in installer:

hermes plugins enable google_meet
hermes meet install                 # PM dependencies + Chromium (transcribe only)
hermes meet install --realtime      # + pulseaudio-utils / brew blackhole+ffmpeg
hermes meet auth                    # optional; skips guest-lobby wait
hermes meet setup                   # preflight checks

hermes meet install --realtime prompts before running sudo apt-get (Linux) or brew install (macOS). Pass --yes to skip the prompt. It will NOT touch your macOS default-input setting — you have to select BlackHole 2ch in System Settings yourself before starting a realtime meeting.

For manual realtime audio setup:

#   Linux:  sudo apt install pulseaudio-utils
#   macOS:  brew install blackhole-2ch ffmpeg
#           → System Settings → Sound → Input → BlackHole 2ch
#   Then set OPENAI_API_KEY or HERMES_MEET_REALTIME_KEY in ~/.hermes/.env

For a remote node:

# on the user's Mac (where Chrome is signed in):
hermes plugins enable google_meet
hermes meet install
hermes meet node run --display-name my-mac    # persistent server
# copy the printed token

# on the gateway:
hermes meet node approve my-mac ws://<mac-ip>:18789 <token>
hermes meet node ping my-mac                   # confirm reachable

Run hermes meet setup to preflight local prereqs.

Flow

  1. Join — call meet_join(url=..., mode=..., node=...). Returns immediately.
  2. Announce yourself — no auto-consent. Say (in whatever channel the user is watching): "A Hermes agent bot is in this call taking notes."
  3. Poll — meet_status() for liveness, meet_transcript(last=20) for recent captions. Don't re-read the whole transcript every turn.
  4. Speak (realtime only) — meet_say(text="...") queues text for TTS. The speech lags by ~2s. Don't spam it.
  5. Leave — meet_leave() when done, or set duration="30m" on meet_join for auto-leave.
  6. Follow up — read meet_transcript() in full, summarize, and use regular tools to send the recap, file issues, schedule followups.

Tool reference

ToolParametersUse
meet_joinurl, mode?, guest_name?, duration?, headed?, node?Start bot
meet_statusnode?Liveness + progress
meet_transcriptlast?, node?Read captions
meet_leavenode?Close bot
meet_saytext, node?Speak in realtime meeting

node? on all tools: pass a registered node name (or "auto" for the sole node) to operate a remote bot instead of a local one. Omit for local.

Important limits

  • Captions are only as good as Google Meet's live captions. English-biased, lossy on overlapping speakers.
  • Guest mode sits in the lobby until a host admits. Warn the user; hermes meet auth avoids this.
  • Lobby timeout: if the host doesn't admit the bot within 5 minutes (configurable via HERMES_MEET_LOBBY_TIMEOUT env), the bot leaves and meet_status reports leaveReason: "lobby_timeout".
  • One active meeting per install per location. A second meet_join leaves the first.
  • Windows not supported.
  • Realtime mode needs a virtual audio device. If the audio bridge setup fails, the bot falls back to transcribe mode and flags it in meet_status().error.
  • meet_say requires mode='realtime' on the originating meet_join. Calling it against a transcribe-mode meeting returns a clear error.
  • Barge-in is best-effort. When a caption arrives attributed to a real participant while the bot is generating audio, the bot sends response.cancel to OpenAI Realtime. Captions take ~500ms to show up, so the bot will talk over the first second or so of a human interruption.

Status dict reference

meet_status() returns (subset shown, there are more):

KeyMeaning
inCallPast the lobby. False while waiting for admission.
lobbyWaitingClicked "Ask to join", waiting on host.
joinAttemptedAt / joinedAtTimestamps for lobby-click and actual admission.
captioningCaption observer is installed.
transcriptLines / lastCaptionAtTranscript progress.
realtime / realtimeReadyRealtime mode provisioned / WS connected.
realtimeDeviceAudio device name the bot is feeding (e.g. hermes_meet_src).
audioBytesOut / lastAudioOutAtHow much PCM the OpenAI session has produced.
lastBargeInAtTimestamp of the most recent response.cancel sent.
leaveReasonduration_expired, lobby_timeout, denied, page_closed, or null.
errorLast error (soft — bot may still be running).

Transcript location

Local:

$HERMES_HOME/workspace/meetings/<meeting-id>/transcript.txt

Remote node: transcript lives on the node host's disk. Use meet_transcript(node=...) to read it over RPC.

Safety

  • URL regex: only https://meet.google.com/... URLs pass.
  • No calendar scanning. No auto-dial.
  • Remote nodes use bearer-token auth; tokens are generated on the node (32 hex chars, persisted in $HERMES_HOME/workspace/meetings/node_token.json) and must be copied to the gateway via hermes meet node approve.
  • meet_say text is rate-limited by the OpenAI Realtime session; spam-protection is the bot's problem, not yours, but still — don't queue hundreds of lines.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

1password

無料日本語概要

1Passwordに保存したパスワードやAPIキーを、コマンド実行や設定テンプレートで使うためのスキル。CLIの導入、認証、秘密情報の取得・受け渡しを案内します。

  • 1Password CLIの導入と設定
  • 保存済みAPIキーでコマンド実行
  • 設定テンプレートへの秘密情報の埋め込み
NousResearch/hermes-agent25.3万2026年10月11日 更新

3-statement-model

無料日本語概要

損益計算書・貸借対照表・キャッシュフロー計算書を数式で連動させるExcelモデルを作ります。実績と予測の入力、前提を変えた比較、財務三表の整合性確認を段階的に進めます。

  • 財務テンプレートへの実績入力
  • 財務三表が連動する予測の作成
  • 基本・上振れ・下振れシナリオの比較
NousResearch/hermes-agent25.3万2026年10月11日 更新

Run PyTorch training across GPUs with minimal changes.

日本語の概要は準備中です。原文の説明を表示しています。

NousResearch/hermes-agent25.3万2026年10月11日 更新

Set up Actual Computer (actual.inc) inference in Hermes.

日本語の概要は準備中です。原文の説明を表示しています。

NousResearch/hermes-agent25.3万2026年10月11日 更新

adversarial-ux-test

無料日本語概要

技術が苦手で不満を抱きやすい利用者になりきってアプリを試し、操作の分かりにくさや離脱の原因を発見。実際の改善課題と個人的な不満を分け、修正案をまとめます。

  • 公開やデモ前に使いやすさを確認したいとき
  • 新規ユーザーの体験を点検したいとき
  • 登録・課金でのつまずきを探したいとき
NousResearch/hermes-agent25.3万2026年10月11日 更新

agent-merge-conflict-arbiter

無料日本語概要

2つのエージェントが別々に加えた変更のGit競合を、双方の差分と意図から中立的に解決。競合箇所ごとの判断理由を記録し、ビルドやテストで統合結果を確認します。

  • 2つのエージェントのブランチ競合を解消
  • 並行したworktreeの変更を統合
  • 競合する設計判断の理由を確認したいとき
NousResearch/hermes-agent25.3万2026年10月11日 更新

NousResearch のスキルをすべて見る

このスキルの問題を報告する