You have a 45-minute meeting recording. You don't need a 12-page transcript. You need the five decisions that were made, the three action items assigned, and the one thing everyone disagreed about.

Cloud services like Otter.ai and Fireflies do this - they transcribe, then summarize. They're also listening to every word of your meeting, storing it on their servers, and processing it under terms of service that give them broad rights to use the data for product improvement.

For internal strategy meetings, HR conversations, legal discussions, or any recording with confidential content, that's a problem. Not a theoretical one - a practical one that compliance teams and privacy-conscious individuals think about constantly.

The same workflow runs locally. Audio goes in, key points come out, and the recording never leaves your machine.

How does the transcribe-and-summarize pipeline work?

This workflow chains two AI models in sequence.

Step 1: Speech-to-Text. The audio recording is transcribed by Parakeet, running on the Neural Engine. This produces a full text transcript - every word spoken, in order.

Step 2: Summarization. The transcript is passed to a language model (Llama, Qwen, etc.) with a summarization prompt. The LLM extracts the key points, decisions, action items - whatever you ask for.

The elegance is in the chaining. You don't manually copy the transcript and paste it anywhere. The model calls the transcription tool, reads the transcript back, and writes the summary in the same turn.

How do you transcribe and summarize in ModelPiper?

Open the chat with tools on and attach the recording. Ask for the summary you want. The model transcribes it with the transcription tool, then summarizes the transcript in the same turn: audio → transcript → summary.

Record directly or drag in an audio file. The STT engine transcribes it, then the LLM works through the transcript according to your request. A plain "summarize this meeting" gets you a structured summary, and you can customize it - ask for action items only, a bullet-point recap, a formal meeting minutes format, or whatever you need.

How do you customize the summary format?

The LLM's system prompt controls what comes out. Some useful variations:

Meeting minutes format: "Extract attendees, decisions made, action items with owners, and unresolved questions. Format as formal meeting minutes."

Key decisions only: "List only the decisions that were made in this meeting. Ignore discussion, small talk, and tangents. Be concise."

Client-ready summary: "Summarize this conversation for a client update email. Professional tone, focus on outcomes and next steps."

Technical review: "Extract all technical decisions, architecture choices, and implementation commitments. Flag any disagreements or unresolved technical questions."

Put the instruction in the request itself, or set it as the chat's system prompt. No code, no configuration files: it's a text field.

Why does privacy matter for meeting recordings?

Meeting recordings are some of the most sensitive content in any organization. They contain unguarded opinions, salary discussions, strategic plans, personnel decisions, competitive intelligence, and casual remarks that were never meant to be documented.

Uploading them to a cloud transcription service means those recordings exist on third-party infrastructure. Local transcription and summarization means they don't. The audio file stays on your disk. The transcript exists in your app. The summary is on your screen. That's it.

Try It

Download ModelPiper, install ToolPiper, and open the chat with tools on. Record something or drop in a file. Say what summary format you want.

Audio, transcript, and summary - all on your Mac. Nothing else involved.

This is part of a series on local-first AI workflows on macOS. Next up: Live Translation - speak in one language, hear the translation spoken back.