Nextcloud App Store

Record and transcribe on your own server

Nextcloud Talk calls, recorded and transcribed on your own hardware. Build on everything your team says without handing it to a third party.

Nextcloud Talk meeting in progress
cassini

~ cassini record --call "$CALL_URL" --out daily-standup.opus

Nextcloud Talk · daily-standup · 5 participants

●Recorded 00:02:45

✓Transcribingparakeet-tdt-0.6b-v3 · local

✓Packaging

→ daily-standup.opus

The basics, covered

A Nextcloud app

Installs from the App Store, and appears as an app icon beside Files and Talk.

The same Record button

Cassini registers as Talk's recording server. Any room, group calls and 1:1.

Speaker ID

Every line attributed to the right voice, automatically.

Explore your transcripts

Read, replay, search and tag every meeting without leaving Nextcloud.

Daily standup

Tue, 1 Jul 2026 · 3 min · Chris, Silvio, Marco, Ivan, Alex

0:18
Chris 0:00

Morning everyone. Let's keep it quick today.

Silvio 0:18

Auth refactor is done, pushed to staging. Picking up the notification service today.

Marco 0:45

Found the race condition — fix going up today.

0:18 2:45

Data privacy

100% local transcription

Your data, your rules

sherpa-onnx with NVIDIA Parakeet models.

CPU

amd64 · arm64

The default. No GPU required. Requires Nextcloud AppAPI and Talk’s high-performance backend. Audio stays on your infrastructure.

GPU

CUDA image

CUDA accelerated. Cassini auto-detects your GPU. Significantly quicker for heavier workloads.

One file.
Everything inside.

Audio, transcript, and metadata in one self-contained .opus file.

An open specification at format.gocassini.com.

daily-standup-2026-07-01.opus

Audio

Opus-encoded, 48kbps

Transcript

Speaker-labelled, plain text

Metadata

Room, participants, timestamps

Optional

Bring your own model

Register any OpenAI-compatible endpoint in the app - a model you host, or one you pay for.

With one configured, meetings get a summary when they publish unless an administrator disables summaries. Anyone can ask a question across the meetings they can already open. The answer is saved into their own Nextcloud Files, naming the meetings it read and the model that answered.

Leave it unconfigured and nothing calls a model: the transcript is still produced, published and searchable.

The team ran a quick check-in. Silvio completed the auth refactor and pushed to staging, and is picking up the notification service next. Marco identified and is fixing a race condition in today's build.

Key points

  • Auth refactor complete — on staging
  • Race condition identified, fix shipping today
  • Notification service is next priority

Ready to get started? Read the docs →

Questions?
We've got answers

Need support? Send us an email.

Does audio leave my server?

No. Cassini transcribes locally on your own infrastructure. Summaries and insights send text only: if you configure a language model, the transcript (not the audio) is sent to whichever endpoint you chose, your own or a third party. Both stay off until you register an endpoint.

Which Nextcloud versions are supported?

Cassini supports Nextcloud 33.0.9 to 35, with Nextcloud Talk enabled. Check the App Store listing for the exact compatibility matrix.

What languages can it transcribe?

The bundled Parakeet model supports 25 European languages, including English, German, French, Spanish, Italian and Dutch. It detects the language automatically, so Cassini transcribes whatever is spoken in the meeting with no configuration needed.

Does it record every call automatically?

Recording is on-demand. A host starts the recording from within the Talk room, giving participants visibility and keeping you in control of which meetings are captured.

Where are recordings stored?

Each recording is saved as a single .opus file in Nextcloud Files, on your own server. Each one is shared with the people, groups and Teams in its Talk room, and Nextcloud decides who can open it.