AI meeting assistant via ghostmeet. Start sessions, get live transcripts, and generate AI summaries from any browser meeting.
---
name: ghostmeet
description: AI meeting assistant via ghostmeet. Start sessions, get live transcripts, and generate AI summaries from any browser meeting.
metadata:
{
"openclaw": {
"emoji": "๐ป",
"requires": { "anyBins": ["docker", "curl"] },
"envHints": ["GHOSTMEET_ANTHROPIC_KEY"]
}
}
---
# Ghostmeet โ AI Meeting Assistant
Control [ghostmeet](https://github.com/Higangssh/ghostmeet) from chat. Self-hosted meeting transcription with Whisper + AI summaries.
## Prerequisites
ghostmeet backend must be running (Docker):
```bash
# Quick start
git clone https://github.com/Higangssh/ghostmeet.git
cd ghostmeet
cp .env.example .env
# Edit .env: set GHOSTMEET_ANTHROPIC_KEY for AI summaries
docker compose up -d
```
Chrome Extension must be installed in developer mode from `extension/` folder.
Default backend: `http://127.0.0.1:8877`
## What This Skill Can Do
- **List sessions** โ query recorded meeting sessions
- **Fetch transcripts** โ retrieve full text from a session
- **Generate summaries** โ trigger AI summary via Claude API (requires `GHOSTMEET_ANTHROPIC_KEY`)
- **Health check** โ verify backend is running
## What This Skill Cannot Do
- **Start/stop recording** โ must be done manually via the Chrome Extension
- **Install the Chrome Extension** โ user must load it in developer mode from `extension/` folder
- **Access browser audio** โ only the Chrome Extension captures audio; this skill only reads API results
## Required Environment Variables
- `GHOSTMEET_ANTHROPIC_KEY` โ required for AI summary generation. Without it, transcription still works but summaries will fail.
## API Commands
### Health Check
```bash
curl -s http://127.0.0.1:8877/api/health
```
Returns: `{"status": "ok", "whisper_model": "base", "device": "cpu"}`
### List Sessions
```bash
curl -s http://127.0.0.1:8877/api/sessions
```
Returns list of all meeting sessions with IDs, start times, and segment counts.
### Get Transcript
```bash
curl -s http://127.0.0.1:8877/api/sessions/{session_id}/transcript
```
Returns full transcript with timestamps and text segments.
### Generate Summary
```bash
curl -s -X POST http://127.0.0.1:8877/api/sessions/{session_id}/summarize
```
Triggers AI summary generation (requires `GHOSTMEET_ANTHROPIC_KEY`).
Returns: key decisions, action items, and next steps.
### Get Summary
```bash
curl -s http://127.0.0.1:8877/api/sessions/{session_id}/summary
```
Returns previously generated summary.
## Workflow
### During a Meeting
1. User joins a meeting (Google Meet, Zoom, Teams) in Chrome
2. Clicks ghostmeet extension icon โ side panel opens
3. Clicks "Start" โ real-time transcription begins
4. Transcripts appear live in the side panel
### After a Meeting
User asks: "Summarize my last meeting"
1. List sessions โ find the latest session ID
2. Get transcript โ review what was discussed
3. Generate summary โ extract key points
4. Deliver summary to user
### Example Interaction
User: "What was discussed in my last meeting?"
โ `curl http://127.0.0.1:8877/api/sessions` โ get latest session
โ `curl http://127.0.0.1:8877/api/sessions/{id}/transcript` โ get transcript
โ Summarize key points for the user
User: "Generate a summary with action items"
โ `curl -X POST http://127.0.0.1:8877/api/sessions/{id}/summarize`
โ `curl http://127.0.0.1:8877/api/sessions/{id}/summary`
โ Deliver formatted summary
User: "How many meetings did I have today?"
โ `curl http://127.0.0.1:8877/api/sessions` โ count today's sessions
## Configuration
| Variable | Default | Description |
|----------|---------|-------------|
| `GHOSTMEET_MODEL` | `base` | Whisper model (tiny/base/small/medium/large-v3) |
| `GHOSTMEET_LANGUAGE` | auto | Force language (en/ko/ja etc.) or auto-detect |
| `GHOSTMEET_CHUNK_INTERVAL` | `10` | Transcription interval in seconds |
| `GHOSTMEET_ANTHROPIC_KEY` | โ | Claude API key for summaries |
| `GHOSTMEET_HOST` | `0.0.0.0` | Backend bind address |
| `GHOSTMEET_PORT` | `8877` | Backend port |
### Model Size Guide
- **tiny** (75MB): Fast, lower accuracy. Good for quick notes
- **base** (145MB): Balanced. Recommended for most users
- **small** (488MB): Better accuracy, slower
- **medium** (1.5GB): High accuracy, needs good CPU/GPU
- **large-v3** (3GB): Best accuracy, requires GPU
## Usage Guidelines
1. **Always check health first** โ verify backend is running before other commands
2. **List sessions to find IDs** โ session IDs are date-based (e.g., `20260308-065021`)
3. **Summarize only when asked** โ summary generation costs API tokens
4. **Format transcripts nicely** โ don't dump raw JSON, present as readable conversation
5. **Respect privacy** โ meeting transcripts are sensitive. Never share outside the current chat
6. **If backend is down** โ suggest `docker compose up -d` in the ghostmeet directory
## Privacy
- **Transcription is 100% local** โ Whisper runs on your machine, audio never leaves your device
- **Summaries use Anthropic API** โ when you click Summarize, transcript text is sent to Claude API. If you don't want this, skip the summarize feature; transcription works without it
- **Chrome Extension captures tab audio only** โ uses `chrome.tabCapture` API, limited to the active tab. It cannot access other tabs, microphone, or system audio. Audit the extension source in `extension/` before installing
- **No telemetry** โ ghostmeet sends zero analytics or tracking data
## Troubleshooting
- **Connection refused** โ Backend not running. `docker compose up -d`
- **No sessions** โ No meetings recorded yet. Chrome Extension must be active during meeting
- **Summary fails** โ `GHOSTMEET_ANTHROPIC_KEY` not set in `.env`
- **Poor transcription** โ Try larger Whisper model or set explicit language
don't have the plugin yet? install it then click "run inline in claude" again.