What “it stays on the machine” means exactly.

For the person who has to approve Onsite technically. Ten minutes.

What it is, where the files are

A program on the laptop. No server, no account, no admin view.

  • Recordings as 16 kHz WAV and transcripts as Markdown in Documents/Meetings or a folder of your choice.
  • Speech models and search index under %LOCALAPPDATA% or ~/Library/Application Support, never in the roaming profile.
  • Discarded meetings stay in .discarded inside the meetings folder for seven days and are then deleted.
  • Log files with device changes, errors and timings. No speech.

Three network connections

The model download (700 MB on first start, pinned addresses at github.com and huggingface.co for the Nemotron speaker model, every file verified by SHA-256). The update check, when someone presses the button in Settings (one pinned manifest per build, latest.json for a stable version and beta.json for a beta; the package is verified against a key built into the program). A feedback report, when someone writes one and presses Send; Settings shows every byte first. Onsite starts the model download, automatically whenever a model is missing at launch (on first start, after an update that adds one, or to finish a failed download); everything else only when you click a button. No timer, no telemetry, no crash reporting.

All three use the system proxy and the operating system certificate store. To verify: start Onsite, wait for the download, record a meeting and watch the process with Wireshark, Resource Monitor or nettop. No connection should appear.

Permissions

  • Microphone: your side of the call.
  • System audio: the other side. “Screen and System Audio Recording” on macOS; loopback needs no permission on Windows.
  • Accessibility (macOS): only to paste dictations and to recognise browser meetings by window title.

No screen recording, no calendar, no contacts.

What happens before the yes

With “Keep the start of a detected call” on, which it is by default, Onsite opens the microphone and system audio as soon as a meeting app or a browser holds the microphone, before it asks. It keeps the last three minutes of both tracks in memory only. Nothing of it is written to disk, logged, indexed or sent. The operating system’s microphone indicator is on while it listens, and the prompt says that Onsite is listening.

On yes, those minutes become the start of the recording. On no, after 20 seconds without an answer, when the app releases the microphone, or after three minutes without a decision, Onsite overwrites the buffer with zeros and frees it. With the setting off, Onsite opens nothing before the yes.

Deployment

  • Windows: per-user installer, no admin rights, silent with Onsite-x64-setup.exe /S.
  • macOS: drag to Applications. Permissions survive updates.
  • The model folder of one set-up machine can be copied to the others.
  • Settings are one JSON file in the user profile: folder, retention, automatic recording.
  • Audio: keep everything, delete after 30 days, or delete once transcribed.
  • Transcripts and dictations: keep, or delete after a set number of days, folder and search index included. A meeting still being recorded or transcribed is never touched.
  • A failed transcription can be made again from the kept recording.

Access for AI assistants, off by default

Under Settings › Agents the user can switch on two doors that otherwise do not exist. An MCP server reads the transcripts for an AI assistant on the same machine: read-only, over stdin and stdout, started by the assistant as Onsite --mcp. A command line controls the running program through a local socket, a Unix domain socket file on macOS and a named pipe on Windows. Neither opens a network port, and both refuse to serve while the switch is off.

What an assistant does with the transcripts once it has them is up to the assistant. A cloud assistant sends them to its provider. That is why the switch stays off until the user turns it on deliberately.

Licence

Onsite is free during the beta. After the 14-day trial the user asks for a free licence key by email to onsite@joosthelfers.com and pastes it into Settings. The key is signed with Ed25519 and verified offline.

For several machines, the email says how many. There is no licence server.

Checksums

Every version is on GitHub with its SHA-256 checksum. The speech models are CC-BY-4.0, MIT or OpenMDW-1.1, all usable commercially; a test in the build refuses any other licence. The licences of everything the program ships are in the third-party notices. The current installers are not signed. On Windows, open them at the SmartScreen warning with “More info”, then “Run anyway”; on macOS, choose “Open Anyway” under “Privacy & Security” at the Gatekeeper message.

Questions

Questions

How many network connections does Onsite make?

Three: the model download, the update check and sending a feedback report. Onsite starts the model download, automatically whenever a model is missing at launch (on first start, after an update that adds one, or to finish a failed download); everything else only when you click a button. Nothing runs on a timer.

Does the installation need admin rights?

No. On Windows the installer writes only to the user profile; on macOS you drag the program to Applications.

Can AI assistants read the transcripts?

Only if the user switches it on under Settings › Agents. An assistant on the same machine then reads them over MCP, with no network port. The door is off by default.

Does Onsite listen before the user agrees?

With “Keep the start of a detected call”, which is on by default, yes, in memory only and for at most three minutes. Nothing is saved before a yes, and the setting can be turned off.

Try it on your own laptop.

The beta is free. After the 14-day trial you ask for a free key by email.