Skip to content

Lappom/Calliop

Calliop

Calliop

export-1781355100956.mp4

Universal voice dictation, 100% local.
Speak into any application — transcription and AI post-processing run on your machine, with no cloud.

Version AGPL-3.0 License CI Windows platform Offline-first

Download · User guide · Installation · Contributing · Code of conduct · Security


Why Calliop?

Calliop is an open-source alternative to Wispr Flow: global dictation, Whisper transcription, and optional AI cleanup — without sending your voice or text to a remote service.

Calliop
Privacy Audio and ML inference run locally
Integration Text injection into any Windows application
Quality Whisper (small, distil-fr-dec16) + local Qwen3 for auto-edits
Customization Personal dictionary, snippets, per-app tone, FTS history
Transparency Source code under AGPL-3.0, no account required

Network usage: only the initial model download (~466 MB) and optional auto-updates use the Internet. Dictation itself works fully offline.


Features

  • Global dictationAlt + Space shortcut (toggle or push-to-talk) in any app
  • Local transcription — Whisper via whisper.cpp, optional Vulkan GPU acceleration
  • AI auto-edits — filler removal, punctuation, and light rephrasing via Qwen3 (llama.cpp sidecar)
  • Overlay & tray — visual state indicator, system tray icon, auto-start
  • Dictionary & snippets — learned corrections, custom voice shortcuts
  • Per-app context — tone adapted to the active app (Slack, email, IDE…)
  • History & insights — full-text search, latency, words/min, usage by app
  • Bilingual UI — French and English

Installation

Windows 10/11 (supported platform in v1)

  1. Download the installer from GitHub Releases:
    • Calliop_*_x64-setup.exe (NSIS, recommended) or .msi
  2. Install WebView2 Runtime if needed.
  3. Accept the SmartScreen warning (unsigned binaries in v1).
  4. On first launch, the Whisper model downloads automatically (~466 MB).

Full guide: docs/installation.md

macOS / Linux: experimental artifacts (DMG, AppImage, deb) are provided unsigned and untested for v1 — use at your own risk.


Quick start

  1. Launch Calliop — an icon appears in the system tray.
  2. Press Alt + Space to start dictation (release after 400 ms for push-to-talk mode).
  3. Speak — the overlay shows listening, processing, and injection states.
  4. Text is inserted into the active application.

Full guide: docs/user-guide.md · Troubleshooting: docs/troubleshooting.md


Architecture

flowchart LR
  subgraph input [Input]
    Mic[Microphone]
    HK[Global shortcut]
  end

  subgraph core [Local pipeline]
    Audio[Capture + VAD]
    STT[Whisper STT]
    LLM[Qwen3 auto-edits]
    Inject[Text injection]
  end

  subgraph storage [Local storage]
    SQLite[(SQLite)]
  end

  Mic --> Audio
  HK --> Audio
  Audio --> STT
  STT --> LLM
  LLM --> Inject
  STT --> SQLite
  LLM --> SQLite
Loading
Layer Technology
Desktop shell Tauri 2
UI React 19, TypeScript, Tailwind CSS 4
Audio cpal, VAD
STT whisper-rs (whisper.cpp)
LLM Qwen3 via calliop-llm-worker sidecar (llama.cpp)
Injection Clipboard + keyboard simulation (enigo)
Persistence SQLite (settings, history, dictionary)

Development

Prerequisites (Windows)

Run in dev

pnpm install
pnpm tauri:dev

Use pnpm tauri:dev (not pnpm tauri dev) — the script ensures CMake 4.x is available and builds the LLM sidecar.

CLI tests (isolated modules)

From src-tauri/:

cargo run --bin test-audio -- record 3s output.wav
cargo run --bin test-stt -- output.wav
cargo run --bin test-inject -- "Hello, this is a test"
cargo run --bin test-llm -- "uh hello so yeah"

Pre-PR checks

pnpm typecheck && pnpm lint
cd src-tauri
cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test

Build installer

pnpm tauri build --features gpu

Artifacts land in src-tauri/target/release/bundle/.


Project structure

src-tauri/src/
  audio/       # Microphone capture, VAD
  stt/         # Whisper bindings
  llm/         # Local post-processing (sidecar)
  inject/      # Text injection
  hotkey/      # Global shortcuts
  store/       # SQLite (config, history)
  pipeline/    # Dictation orchestration
src/
  components/  # Overlay, settings, onboarding
  hooks/
  lib/
crates/
  calliop-llm-worker/   # llama.cpp sidecar
  calliop-prompt/       # LLM prompts

Full roadmap: PLAN.md


Documentation

Document Description
User guide Shortcuts, settings, features
Installation Installers, first launch, uninstall
Troubleshooting Microphone, injection, models, logs
STT benchmarks Whisper accuracy and latency
Release v0.1.0 Release notes
Contributing Workflow, conventions, releases

Contributing

Contributions are welcome — please respect the offline-first constraint for the core (no cloud calls for STT, LLM, or injection).

  1. Fork → branch feature/short-name
  2. Implement with the checks above
  3. Open a PR with a clear description and test plan

See CONTRIBUTING.md for details.


Known limitations (v0.1.0)

  • Windows binaries are unsigned (SmartScreen warning)
  • ML models download separately on first use
  • Auto-updates are enabled by default (disable in Settings → Advanced)
  • Official support is Windows only in v1

License

AGPL-3.0 — Copyright © Calliop Contributors

If you modify Calliop and distribute it (including as a SaaS), you must publish your changes under the same license.

About

Open-source, offline-first voice dictation. Global hotkey, local Whisper STT, optional Qwen AI cleanup — no cloud required.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Contributors