Dettivo

§ Meetings

Meetings on Linux

Local-only

Start a meeting from the app, the bar panel or dettivo meetings start. Dettivo records your microphone and the call's audio as two tracks and transcribes while you talk. At stop it names the speakers and writes a summary with decisions and action items. Nothing joins the call.

Who this is for

Anyone recording calls on Linux from a meeting app or browser that plays through PipeWire.

A finished meeting: the transcript with You, Mara and Tobias, their talk time, and a summary with decisions and action items
A meeting after stop

Recording a meeting

  1. 01

    Acknowledge the notice once

    The first meeting asks you to acknowledge a recording notice for the other side. dettivo meetings disclosure --copy puts it on the clipboard so you can paste it into the call chat.

  2. 02

    Start

    Click Start meeting in the app or the bar panel, or run dettivo meetings start --title "Weekly sync". The bar shows the timer and the app window can close.

  3. 03

    Take notes

    Write Markdown notes next to the live transcript. The analysis goes beside them and never overwrites them.

  4. 04

    Stop

    Dettivo builds the full transcript from both tracks, works out who spoke, and writes the summary, decisions and action items.

  5. 05

    Name the speakers

    Click a speaker to rename them across the whole transcript. Names you used before come back as suggestions next time.

Who said what

Every remote line takes the speaker who holds most of its sentence, and a sentence that clearly sounds like another speaker moves to that speaker. With a system track, the pass also drops the other side heard through your microphone.

The pass learns your voice from your microphone and names a remote line in your voice You. The voiceprint stays on this machine in voiceprint.json, and [meetings.diarization] voiceprint = false turns it off.

NVIDIA Nemotron 3 Diarization is an opt-in speaker engine: download diarize/nemotron-3-diarization and set [meetings.diarization] model = "nemotron-3-diarization". It diarizes an hour of meeting in about 15 seconds on an RTX 4090 through Vulkan. The current engine stays the default.

The transcript so far

Terminal

bash

dettivo meetings segments <id>                # everything said so far, by side
dettivo meetings segments <id> --follow       # the backlog, then every new line
dettivo --json meetings segments <id> --since <cursor>   # only what is new

An agent that attaches late still reads the whole meeting from its first word. The same answer comes from the MCP tool get_meeting_segments and from REST at /v1/meetings/segments. A ~ marks a provisional line.

Exports

Export as md, txt, srt, vtt or json from the meeting screen, or with dettivo meetings export <id> --format md --out notes.md. Speaker names go in front of each line or cue.

When the call goes wrong

A headset that drops out mid-call restarts the microphone on the new default device and marks the gap.

If the daemon crashes or the machine reboots, the next start turns the meeting into a partial one. Recover it from its audio or discard it, in the app or with dettivo meetings recover <id>. Re-run does the same for a meeting whose transcription failed or was cut short.

Start meeting starts the next meeting while the last one is still being transcribed or analysed. When a game holds the GPU, the engines move to the CPU and the meeting still finishes.

§ Related

Free and open source · GPL-3.0

Dettivo for Linux 0.5.0 is on GitHub.

The release page has the pacman package and its checksum. Bug reports go to the issue tracker. On a Mac? The native Mac app does all of this with Apple Silicon models.