Privacy-first meeting transcriber for Linux. Records microphone and system audio, transcribes locally with Whisper, stores results in SQLite. No cloud, no internet — your audio never leaves your machine.
| Recorder | History |
|---|---|
| Summary |
|---|
pw-record and wpctl (included with PipeWire)# Ubuntu/Debian
sudo apt install -y libwebkit2gtk-4.1-dev libgtk-3-dev libasound2-dev libpulse-dev \
build-essential libssl-dev libayatana-appindicator3-dev librsvg2-dev pipewire
git clone https://github.com/YOUR_USER/martin.git
cd martin
npm install
cargo install tauri-cli --version "^2"
./scripts/download-model.sh small
cargo tauri build
The binary will be in src-tauri/target/release/martin.
martin records two audio sources simultaneously:
pw-record targeting the default PipeWire sinkWhen you stop recording, both WAV files are mixed into a single file and sent to Whisper. If PipeWire is not available, Martin falls back to microphone-only recording.
| Model | Size | Quality | Speed |
|---|---|---|---|
| tiny | 75MB | Usable | Fast |
| base | 142MB | Good | Fast |
| small | 466MB | Very good | Moderate |
| medium | 1.5GB | Excellent | Slow |
Download with: ./scripts/download-model.sh <model>
cargo tauri dev # Full app dev mode with hot reload
cargo test # Run Rust tests (29 tests)
npm run check # Svelte/TypeScript type checking
cargo fmt # Format Rust code
cargo clippy # Lint Rust code
src-tauri/src/
├── lib.rs # Tauri commands, app state
├── audio/
│ ├── capture.rs # Mic (cpal) + system audio (pw-record)
│ ├── mix.rs # WAV mixing (mic + system → single file)
│ └── wav_writer.rs # Thread-safe WAV writer
├── db/
│ └── store.rs # SQLite CRUD for transcriptions
├── summarize.rs # Claude CLI integration for AI summaries
└── transcribe/
└── whisper.rs # Whisper transcription + WAV loading + resampling
src/
├── lib/
│ ├── i18n.js # Locale detection + translations (pt/en)
│ ├── Recorder.svelte # Recording controls
│ ├── History.svelte # Transcription list
│ └── TranscriptionView.svelte
└── routes/
└── +page.svelte # Main page
GPLv3