Skip to content
forked from riffado/riffado

About

Self-hosted AI transcription interface for Plaud Note devices

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

1 watching

Forks

 
 

Latest commit

 

History

937 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Klepna / Chatterbox

Chatterbox based on Riffado.

Open-source AI transcription companion for voice recorders.

Bring your own AI provider, own your transcripts, and host your own data.

License: AGPL-3.0 Sponsor

Quick start • Documentation • Sponsor upstream


Klepna is the Czech name; Chatterbox is the English name. This project is based on Riffado, which was previously called OpenPlaud. Read the original rebrand note →

Chatterbox is an open-source companion app for AI voice recorders. It syncs your recordings from the manufacturer's cloud, transcribes them with any OpenAI-compatible API (or in the browser, for free), and stores everything on infrastructure you control. Currently supports the Plaud Note family — Note, Note Pro, and NotePin. More device support on the way. AGPL-3.0.

Features

  • Self-hosted. Your recordings, your storage, your API keys.
  • Works with any OpenAI-compatible provider — OpenAI, Groq, OpenRouter, Together, LM Studio, Ollama, Azure, anything with a baseURL.
  • Free browser transcription via Transformers.js (Whisper in WebAssembly).
  • Local filesystem or S3-compatible storage (AWS S3, Cloudflare R2, MinIO, Backblaze B2, DigitalOcean Spaces, Wasabi).
  • Server-side AES-256-GCM encryption at rest for tokens, API keys, transcripts, and summaries.
  • Auto-sync on a schedule, with browser and email notifications.
  • Full export and backup — JSON, TXT, SRT, VTT, plus one-archive backup/restore.
  • Automation API with signed webhooks for integrations.
  • Zero-config Docker Compose deploy.

Extended features

This repository builds on Riffado with features for people who work with their recordings every day, alone or as a team. The user guide walks through all of them with screenshots.

A recording with named speakers, topics and Learn's proposals

Transcripts you can work with

  • Named speakers. Put a name to each voice once and it shows in the transcript, the summary and every export. Names carry over when a recording is transcribed again, and a right-click plays a speaker's next turn.
  • Topics. Long recordings split into titled chapters you can jump between. Lectures and monologues read in paragraphs.
  • Play from the transcript. Click a sentence to hear it. The transcript follows the player, and scrolling the transcript moves the player.
  • More transcription services. ElevenLabs Scribe and Speechmatics join the OpenAI-compatible providers, with speaker labels, and are told the names of your people and projects so they spell them right.
  • Video uploads. Upload a meeting video; Chatterbox keeps the audio. For browser meetings on Linux, the meetrec command-line recorder captures both sides into one file.

Summaries and tasks

  • Editable templates for summaries, titles and topics, built-in ones included, with a default and an auto-summary choice.
  • Multi-pass summaries that run the prompt several times and merge the results, with live progress and a badge saying how many passes made it.
  • Tasks. A summary proposes the action items it heard, with who and by when. Review them in one dialog, then follow them on the Tasks page: yours under Mine, everyone else's under Tracked.

Knowledge that grows

  • The Almanac. The people and things your recordings mention (clients, projects, products, terms, places) with nicknames and facts. Import a list to start.
  • Learn. Reads a transcript against the Almanac and proposes speaker names, corrections of misheard names, new people and things, and facts. Nothing changes until you review it. Corrections sit beside the original text and can always be undone; summaries, search and exports read the corrected text. Optionally automatic, with a second pass that fixes other misheard words.

For teams

  • The Organization. A shared folder tree next to each user's private one. Share a recording by filing it there; only recordings with every speaker named and every review finished can be shared. Speakers become shared people, curated by one organization account.
  • Single sign-on with any OpenID Connect provider, and registration that can stay closed.
  • Ask Claude about your recordings. An MCP server lets Claude (claude.ai, Desktop, Cowork), Claude Code and your own services search transcripts, summaries, the Almanac and tasks. People sign in through your Keycloak, and their roles there decide what each one can reach.

Your data, your way

  • Folders, nested, with drag and drop. A recording can live in several.
  • Folder exports to a disk or to Google Drive that stay in step: files move and rename with their recordings, and nothing Chatterbox did not write is touched.
  • Scheduled backups, kept apart for each user and for the Organization.
  • Automatic deletion of old audio, transcripts, summaries or recorder originals, each on its own schedule, and erasing any one part of a recording by hand.

Knowing what AI costs

  • Estimated AI spend on every recording, by step and by model, from published prices or the price you enter for each provider.
  • One provider per job: choose who transcribes, summarizes, detects topics and runs Learn. Duplicate a provider to use a second model on the same key.
  • Claude Code and Codex as providers, so a Claude or ChatGPT subscription can pay for summaries and Learn instead of an API key.

Help where you are: a Help button on every screen opens the user guide in a side panel at the chapter about that screen, and a small ? beside a feature opens it right there.

In your language: English and Czech.

Setting these up on a self-hosted instance: For administrators.

Quick start

You need Docker, a Plaud account at plaud.ai, and (optionally) an OpenAI-compatible API key.

Every release attaches docker-compose.yml and env.example. Replace <owner>/<repository> with this repository's GitHub path:

mkdir chatterbox && cd chatterbox
curl -fLO https://github.com/<owner>/<repository>/releases/latest/download/docker-compose.yml
curl -fL  https://github.com/<owner>/<repository>/releases/latest/download/env.example -o .env

# Generate secrets, paste into .env
echo "POSTGRES_PASSWORD=$(openssl rand -hex 24)"
echo "BETTER_AUTH_SECRET=$(openssl rand -hex 32)"
echo "ENCRYPTION_KEY=$(openssl rand -hex 32)"

docker compose up -d

Releases are numbered YYYY.N (2026.1, 2026.2, ...); the latest image tag is the newest release.

Open http://localhost:3000/register and create your account. The onboarding wizard handles Plaud connection, AI providers, storage, and sync preferences.

Upgrade: docker compose pull && docker compose up -d. Migrations run on container start.

Full install guide, version pinning, image tags, and Windows/WSL notes: Self-hosting: Install.

dev is the integration branch and may be broken at any commit; every merge into main is a release (YYYY.N). Deploy releases (:latest or a version tag), not dev. See BRANCHING.md.

Connecting Plaud

Chatterbox signs into Plaud using your email — the same OTP flow as the official app. The verification code is forwarded directly to Plaud and never stored. Your access token is encrypted with AES-256-GCM before hitting the database. Region (Global, EU, APAC) is auto-detected.

If you signed up to Plaud with Continue with Google or Continue with Apple, the email-code flow won't return any recordings — that's a different identity on Plaud's side. Use the Riffado Connector browser extension, or paste a token manually. Full instructions: Connect your Plaud account.

Every line that handles your credentials is open source — send-code route · verify route · encryption.

Documentation

The user guide in this repository covers every screen, including the extended features. Pages specific to this repository:

Every instance also serves these pages at /docs. Direct links in this repository:

Sponsors

Chatterbox is AGPL-3.0. The upstream Riffado project accepts sponsorship to support development, device testing, CI, and registry costs.

Sponsor Riffado on GitHub →

Contributing

Bug reports, feature requests, and PRs welcome. See CONTRIBUTING.md for local setup and the PR workflow, BRANCHING.md for the release model, and the GitHub Releases for version history (CHANGELOG.md covers the versions before calendar versioning).

Security

Found a vulnerability? See SECURITY.md for disclosure.

License

AGPL-3.0 — see LICENSE. Free to use, modify, and self-host. If you run a modified version as a network service, you must publish your source.

Disclaimer

  • Not affiliated. Chatterbox is an independent open-source project. It is not affiliated with, endorsed by, or sponsored by Plaud Inc. or any of its subsidiaries. "Plaud" and related marks are the property of their respective owners and are used here only for descriptive interoperability purposes (nominative fair use).
  • Third-party devices and services. Chatterbox is designed to interoperate with hardware and services from third parties that users choose to connect — including recording devices (such as Plaud) and storage and AI providers. Users are solely responsible for complying with the applicable terms of service, acceptable-use policies, and laws governing any third-party device or service they connect to this software.

Acknowledgments

Based on Riffado, originally created by Perier. The original project is maintained by the Riffado community.

About

Self-hosted AI transcription interface for Plaud Note devices

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages