Features

Built to capture meetings without giving them away

Folio does the obvious thing well. It records, transcribes, and files your meetings, and it does almost all of it on your own machine.

Capture

Two streams, kept apart

Folio records system audio and your microphone as independent tracks, so the transcript stays clean and every line is attributable.

  • cpal captures your microphone, ScreenCaptureKit captures system audio.
  • No bot joins the call, so there is nothing for other people to admit.
  • It watches your calendar and audio devices through EventKit, with no OAuth.
  • rubato resamples and hound writes WAV, entirely on disk.
Transcription

On-device by default

The bundled Whisper backend runs locally and is Metal-accelerated on Apple Silicon. Cloud transcription is an explicit choice, never the default.

  • whisper.cpp through whisper-rs handles local transcription.
  • OpenAI Whisper is an opt-in fallback for faster runs on long meetings.
  • Cloud calls require your own key and are gated behind a clear prompt.
  • Privacy Mode keeps everything local, even on long recordings.
Diarization

Who said what, computed locally

Speakers are separated on-device with pyannote segmentation and a speaker-embedding model, both run through sherpa-onnx.

  • Voices on the system track are clustered into Speaker 1, 2, 3 and so on.
  • Your microphone is always labelled You.
  • Nothing about your voiceprint leaves the machine.
  • The result lands inline in the markdown transcript.
Your vault

One markdown note per meeting

Every conversation becomes a portable markdown file in a vault path you choose, with structured frontmatter and a clean transcript.

  • Frontmatter records attendees, duration, model, and source.
  • A two-phase write keeps the file canonical and the index rebuildable.
  • Decisions and tasks are pulled out so you can act on them.
  • Plain files mean any editor, any backup, no lock-in.
Connectors

Your agents can read your meetings

A local MCP server exposes transcripts, tasks, and memory to MCP-aware tools over stdio, read-only, with no cloud in the middle.

  • Works with Claude Desktop, Cursor, Claude Code, and any MCP client.
  • Search past meetings without leaving your editor.
  • Pull decisions and action items into your own workflow.
  • Scoped to read-only access over a local stdio connection.
Privacy

The network is opt-in

Folio is built so the private path is the easy path. Privacy Mode airgaps the app, and there is no telemetry to turn off.

  • No telemetry, no analytics, no crash reporting, enforced in CI.
  • Privacy Mode blocks every outbound call except localhost.
  • Notes are encrypted at rest with AES-256-GCM and Argon2id.
  • The app runs end to end with Wi-Fi off.
What runs where

Local by default, cloud by choice

Every core capability runs on your machine. The cloud is only ever reached when you ask for it, and Privacy Mode can shut even that off.

CapabilityRunsBackend
  • Audio capturelocalcpal + ScreenCaptureKit
  • Transcriptionlocalwhisper.cpp, Metal-accelerated
  • Speaker diarizationlocalpyannote + sherpa-onnx
  • Note storagelocalMarkdown in your vault
  • Encryption at restlocalAES-256-GCM + Argon2id
  • Connectors (MCP)localstdio, read-only
  • Cloud transcriptionopt-inOpt-in OpenAI Whisper
  • Chat & webhooksopt-inOpt-in, Privacy Mode blocks
The output

Everything ends as a note you own

No dashboard to log into, no export to request. Each meeting is a markdown file with frontmatter, a speaker-labelled transcript, and the decisions and tasks that came out of it.

Plain files, in your vault, forever.
brew install --cask folio
launch-sync-2026-06-18.md
local

title: Launch sync

attendees: You, Speaker 2, Speaker 3

duration: 28m · model: whisper-large-v3

source: on-device

You

Let's lock the launch date before we scope the rest.

Speaker 2

Works for me. I'll own the migration checklist.

Speaker 3

I can have the pricing page ready by Thursday.

You

Decision: ship on the 24th, freeze scope Friday.

1 decision · 2 tasks