executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
echoloopReal-time AI meeting copilot. Dual audio capture (system + mic), live transcription (faster-whisper local or Deepgram cloud), LLM coaching loop (Claude/GPT every ~35s), always-on-top overlay, session logging with markdown export. Use when the user says "meeting recap", "meeting copilot", "live transcription", "meeting insights", "coaching during meeting", o…
Independent GitHub snapshot · Automated classification · Original documentation governs
name: echoloop description: > Real-time AI meeting copilot. Dual audio capture (system + mic), live transcription (faster-whisper local or Deepgram cloud), LLM coaching loop (Claude/GPT every ~35s), always-on-top overlay, session logging with markdown export. Use when the user says "meeting recap", "meeting copilot", "live transcription", "meeting insights", "coaching during meeting", or "record this call". version: 1.0.0 author: Pete Woodbridge (EchoLoop) tags:
Live meeting transcription + AI coaching. Captures dual audio (system speakers + microphone), transcribes in real-time, and feeds rolling transcript to Claude or GPT for tactical insights every ~35 seconds.
ffmpeg-processingnotebooklm (audio overviews)open-montageplaywright┌───────────────┐ ┌──────────────┐ ┌──────────────┐ ┌────────────┐
│ Audio Capture │────>│ Transcriber │────>│ EchoLoop │────>│ UI │
│ (2 threads) │ │ (thread pool)│ │ Engine │ │ (Tkinter) │
│ │ │ │ │ (asyncio) │ │ │
│ system ──┐ │ │faster-whisper│ │ │ │ Always-on- │
│ mic ─────┤ │ │ or Deepgram │ │ Claude / GPT │ │ top overlay│
│ v │ │ │ │ every ~35s │ │ │
│ chunk queue │ │ seg queue │ │ + on silence │ │ insight log│
└───────────────┘ └──────────────┘ └──────────────┘ └────────────┘
# Install dependencies
pip install -r requirements.txt # from the echoloop skill directory
# Set API key (uses existing container keys)
export ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" # Already set for devuser
# Configure audio devices (container VNC)
export ECHOLOOP_SYSTEM_DEVICE="pulse" # PulseAudio virtual cable
export ECHOLOOP_MIC_DEVICE="" # Default mic
# Launch on VNC Display :1
DISPLAY=:1 python3 -m echoloop
Our container has PulseAudio on VNC Display :1. For meeting capture:
ECHOLOOP_SYSTEM_DEVICE=<pulse monitor name>DISPLAY=:1 python3 main.py # from the echoloop skill directoryFor multi-user scenarios, each user can run their own EchoLoop instance with different audio routing.
| Variable | Default | Description |
|---|---|---|
ANTHROPIC_API_KEY | (required) | Claude API key (already set in container) |
OPENAI_API_KEY | GPT API key (for OpenAI provider) | |
DEEPGRAM_API_KEY | Deepgram key (for cloud transcription) | |
ECHOLOOP_LLM_PROVIDER | anthropic | LLM provider: anthropic or openai |
ECHOLOOP_TRANSCRIBER | local | Transcription: local (faster-whisper) or deepgram |
ECHOLOOP_WHISPER_MODEL | base.en | Whisper model size |
ECHOLOOP_WHISPER_DEVICE | cpu | cpu or cuda for GPU transcription |
ECHOLOOP_PUSH_INTERVAL | 35 | Seconds between LLM coaching calls |
ECHOLOOP_SILENCE_TRIGGER | 4.0 | Seconds of silence before early push |
ECHOLOOP_SYSTEM_DEVICE | System audio device name substring | |
ECHOLOOP_MIC_DEVICE | Microphone device (None = default) | |
ECHOLOOP_MEETING_CONTEXT | One-line meeting briefing for sharper advice | |
ECHOLOOP_LOG_DIR | Directory for session logs (empty = disabled) | |
ECHOLOOP_OPACITY | 0.88 | Overlay window opacity |
[THEM] and [ME]Ctrl+Shift+E global hotkey| Skill | Relationship |
|---|---|
notebooklm | Feed meeting transcripts as sources, generate audio overviews |
report-builder | Generate meeting reports from session logs |
perplexity-research | Research topics mentioned in meetings in real-time |
codex-companion | Delegate technical questions from meetings to Codex |
EchoLoop by Pete Woodbridge. MIT License.