Meetings
Record a meeting, get a transcript while it is still running, and turn it into a summary with decisions and action items when it ends.
Everything that matters happens on your own machine: the audio never leaves it, and the transcription runs against a local Whisper server. Only the optional summary step can involve a hosted model, and even that defaults to a local one.

Open it with the microphone icon in the panel header. From a project row's context, it opens pre-filtered to that project.
First run: the model
Transcription needs a model, and models are large, so XTop does not ship one inside the installer. The first time you press Start recording it downloads the default (base.en, about 142 MB) with a progress bar you can cancel, and starts as soon as it lands.
To choose a different one, open ⚙ → Manage model… (also reachable from Settings → Meetings).
| Model | Engine | Size | Good for |
|---|---|---|---|
tiny.en | whisper | 75 MB | A slow machine, or English you mostly just need indexed |
base.en | whisper | 142 MB | The default — the usual balance |
small.en | whisper | 488 MB | Noticeably better on accents and crosstalk |
medium.en | whisper | 1.5 GB | Best quality, needs the RAM and the patience |
parakeet-tdt-0.6b-v3 | parakeet | 397 MB | Faster than whisper at similar quality |
You can also browse for a model you already have, or point the app at a Whisper server binary of your own.
Keep the model path plain ASCII
Whisper cannot open a path containing non-English characters. If your Windows user name is in Arabic, keep models in the default C:\ProgramData\DevNexus\models rather than under your profile.
whisper or parakeet
whisper runs a long-lived local server and streams segments to it — steady, and the default. parakeet shells out to a CLI once per segment; it is faster per segment but pays process-start cost each time. Pick it in the model dialog if whisper cannot keep up on your machine.
What is recorded
Two sources, mixed into one mono stream:
- Your microphone.
- Your speakers — on Windows, the system audio loopback, so the other side of the call is transcribed too, not just you.
If loopback is unavailable, recording continues with the microphone alone and says so rather than silently capturing half the meeting.
The mixed stream is cut into segments on voice activity rather than on a fixed timer, resampled to the 16 kHz mono WAV Whisper wants, and sent segment by segment. Overlapping words at a segment boundary are stitched, so a sentence cut in half does not come back with its middle repeated.
While it runs
- A Recording · mm:ss pill in the title bar.
- The transcript grows as segments come back.
- If transcription falls behind the audio, the window says "N segments behind". Nothing is lost — the audio is queued and catches up. This is normal on a large model or a busy machine.
- The machine is kept awake for the duration, so a sleep timer cannot cut the recording short.
Press Stop to end it. The meeting is saved immediately, transcript and all, before any summarising happens.
The summary
Summarize turns the transcript into three things:
- Summary — a short paragraph.
- Decisions — what was actually settled.
- Action items — each with an owner, where the transcript names one.
Providers
| Provider | Cost | Where it runs | Needs a key |
|---|---|---|---|
| Ollama | Free | Your machine | No |
| Groq | Free tier | Hosted | Yes |
| OpenRouter | Free tier | Hosted | Yes |
| Anthropic | Paid | Hosted | Yes |
Ollama is the default, because it keeps the whole feature local: point it at your Ollama URL and pick a model you have pulled. The hosted providers each carry a Get key link, and the key is stored in the app's own data folder — not in any project, and never in a backup you would commit.
The archive
Past meetings are listed in the sidebar with their title, a preview, the project they belong to, and the date. Search filters them; the project dropdown narrows to one project.
For any meeting you can rename it, export it as Markdown, reveal its folder, or delete it. Meetings live at:
<userData>/meetings/<id>/meeting.jsonWhen something is wrong
The window states the problem in plain language instead of a stack trace. The ones worth knowing:
| What it says | What to do |
|---|---|
| The bundled Whisper server is missing | Reinstall, or point at a server binary in the model dialog |
| Choose or download a local Whisper model first | Open Manage model… and download one |
| No free local port was available | Something is holding the port range; try again |
| The Whisper server stopped unexpectedly | Recording keeps going. Press record again to restart transcription |
| The server did not finish starting | A smaller model loads faster |
| Microphone access was denied | Windows Settings → Privacy → Microphone |
| System audio loopback is unavailable | Expected on some setups — the microphone is still recorded |
