⚠️ This project is no longer actively maintained (as of April 2026).I'm not using OpenPlawd myself anymore (I've moved away from my OpenClaw setup), so I won't be shipping new fixes or features here going forward. The code as-is works for the setups it was tested against, but new issues and pull requests will not be actively worked on from my side.
Want to keep it going? The repo stays public on purpose — feel free to fork it and take it wherever you need.
Thanks to everyone who used, tested, and reported issues on this project 🙏
Turn your Plaud recordings into structured meeting notes — automatically.
Record a meeting with your Plaud device, and OpenPlawd handles the rest: download, transcribe, generate clean HTML meeting notes, and archive the recording.
Plaud API → Download → Chunk → Whisper (Groq/OpenAI) → OpenClaw Agent → Meeting Notes → Email/CRM
| Feature | Description |
|---|---|
| Automatic polling | Detects new recordings every hour (configurable) |
| Smart transcription | Groq Whisper (free) for < 90 min, OpenAI for longer recordings |
| Chunk & resume | Large files are split automatically, resumes on interruption |
| Parallel processing | OpenAI chunks transcribed in parallel for speed |
| Custom corrections | Fix recurring Whisper misspellings (names, companies) |
| Interactive flow | Preview names and meeting type before generating notes |
| HTML meeting notes | Clean, structured output with action items table |
| Auto-cleanup | Rename and archive recordings on Plaud after processing |
| CRM integration | Optional CRM note for client meetings |
- Poll — The script checks the Plaud API for new recordings
- Download — New audio files are downloaded locally
- Chunk — Files larger than 24 MB are split with ffmpeg
- Transcribe — Whisper transcribes each chunk (Groq free tier by default)
- Preview — The OpenClaw agent shows you detected names and meeting type
- Validate — You confirm or correct names before generation
- Generate — The agent produces structured HTML meeting notes
- Dispatch — Notes are sent via email, CRM, or messaging
- Cleanup — The recording is renamed and trashed on Plaud
- OpenClaw gateway running
- A Plaud device with recordings
- Groq API key (free tier works)
- ffmpeg installed on the host
- (Optional) OpenAI API key for recordings > 90 min
- (Optional) Resend API key for email delivery
cd ~/.openclaw/workspace
git clone https://github.com/nicolasglg/openplawd.gitpip install requestscp openplawd/SKILL.md ~/.openclaw/workspace/skills/openplawd/SKILL.mdcp openplawd/.env.example openplawd/.envEdit .env with your credentials:
PLAUD_TOKEN=bearer eyJ...
GROQ_API_KEY=gsk_...How to get your Plaud token: Log into web.plaud.ai, open Chrome DevTools → Application → Local Storage, and copy the
tokenstrvalue (including thebearerprefix).
Add to your OpenClaw cron config to poll every hour:
{
"id": "plaud-poll",
"schedule": "0 * * * *",
"command": "python3 ~/.openclaw/workspace/openplawd/scripts/plaud-poll.py",
"agent": "main"
}cd ~/.openclaw/workspace/openplawd
PLAUD_TOKEN="bearer eyJ..." GROQ_API_KEY="gsk_..." python3 scripts/plaud-poll.py| Variable | Required | Description |
|---|---|---|
PLAUD_TOKEN |
Yes | Plaud API bearer token |
GROQ_API_KEY |
Yes | Groq API key (free tier) |
OPENAI_API_KEY |
No | OpenAI key (for recordings > 90 min) |
RESEND_API_KEY |
No | Resend key (for email delivery) |
EMAIL_FROM |
No | Sender email address |
EMAIL_TO |
No | Recipient email address |
OPENPLAWD_BASE_DIR |
No | Override base directory (default: repo root) |
Edit the corrections table in SKILL.md to fix recurring misspellings. Whisper struggles with proper names, especially non-English ones:
| Whisper Output | Correction | Context |
|---------------|------------|---------|
| John son | Johnson | Client company name |
| Marteen | Martin | Common name misspelling |If configured, OpenPlawd polls every hour and notifies you on Telegram when new recordings are found.
Tell your OpenClaw agent:
- "check plaud"
- "meeting notes"
- "transcription"
# Poll for new recordings
python3 scripts/plaud-poll.py
# Rename a recording
python3 scripts/plaud-poll.py rename <rec_id> "Notes — Client Meeting — 22/03"
# Trash a recording
python3 scripts/plaud-poll.py trash <rec_id>| Problem | Fix |
|---|---|
| "Plaud API unreachable" | Token expired — get a new one from web.plaud.ai |
| "Groq API error 429" | Rate limited — wait 1 hour or switch to OpenAI |
| Incomplete transcription | Will resume automatically on next run |
| Empty transcript | Recording may be silent or corrupted |
| ffmpeg not found | Install ffmpeg: apt install ffmpeg or brew install ffmpeg |
MIT — see LICENSE.