Show HN : Multilingual Minimal Local (MCP only) alternative to Granola
Quills launched as a local macOS meeting recorder that uses shared Parakeet v3 models and a read-only MCP server to transcribe audio without cloud access.
By Dillip Chowdary • Nov 15, 2026 • Source: github.com
In this post
Developer IndianTinker launched Quills, an open-source macOS meeting recorder and multilingual transcription tool operating entirely on-device as an alternative to Granola. Built as a downstream fork of Andrew Jones's Quill project, the software packages two-track microphone and system audio capture alongside automated speech-to-text processing into a lightweight Swift binary. According to github.com's report, the release incorporates a shared multilingual Parakeet speech recognition model and embeds a local Model Context Protocol server for engineering assistants.
This report details the architectural changes introduced in Quills, including its shared speech models, loopback protocol integrations, audio privacy controls, and migration path from upstream Quill. Software engineers, data analysts, and privacy-conscious professionals using desktop macOS systems can reference these specifications to deploy private, local transcription infrastructure. Readers will find comprehensive technical breakdowns covering code signing requirements, terminal installation commands, session storage retention rules, and command-line diagnostics designed for local artificial intelligence workflows.
01Shared Parakeet models and offline setup
Quills eliminates duplicate disk storage by integrating directly with FluidAudio's shared cache for the multilingual parakeet-tdt-0.6b-v3 speech model. Users who already run VoiceInk on their systems can immediately reuse the existing on-disk model files rather than downloading a redundant secondary copy. The software permits administrators to specify custom directory paths through the transcription.model_dir configuration setting or by mounting filesystem symlinks.
First-time transcription triggers an automated download of the multilingual Parakeet model over an active internet connection. Administrators can also prepare the environment in advance by executing the quills models --download command from their terminal. Once the weights are stored locally, all subsequent speech transcription routines execute completely offline without outbound network requests.
Diagnostic verification is handled through the quills doctor utility, which inspects the active model directory to confirm path accessibility and weight integrity. During active transcription tasks, the feather menu-bar icon displays visual loading indicators and status updates to track model inference in real time. The entire transcription pipeline operates locally on Apple Silicon processors, eliminating remote server dependencies and API subscriptions.
02Read-only Model Context Protocol server architecture
The September 16 fork update introduced an integrated Model Context Protocol server running strictly over loopback interfaces. This multi-client endpoint exposes meeting status, session metadata, transcript indexing, and transcript reading capabilities to external developer tools including Claude Code, Codex, and OpenCode. Because the interface is restricted to read-only queries, connected clients cannot trigger recordings, edit existing meeting notes, or delete session transcripts.

Lifecycle controls for the server child process reside directly inside the macOS feather menu bar. Users can start, stop, or restart the protocol endpoint without keeping a terminal window open, while background LaunchAgent services initialize both components on login. If the parent menu-bar process terminates unexpectedly, the child daemon detects parent loss and terminates its loopback socket to prevent orphaned network listeners.
A dedicated menu action allows users to copy current connection instructions, active port numbers, supported tools, and sample queries directly into clipboard memory. Engineering agents can ingest these configuration parameters immediately to read transcripts while leaving the underlying audio files untouched on local storage. The server code contains no outbound transmission logic, ensuring transcripts remain confined to the host Mac unless an external client exports them.
Advertisement
Tech Pulse Daily
Get tomorrow's pulse first
Join engineers who read Tech Pulse before stand-up. Free, weekday mornings.
03Dual-track recording controls and pause mechanics
Quills captures microphone input and system output on isolated audio tracks using native macOS 15 Core Audio process taps. This mechanism routes desktop audio streams directly into the recorder without installing third-party kernel extensions or virtual audio drivers. Active capture is indicated across the operating system by an orange and purple indicator, accompanied by a running elapsed timer and a red dot on the feather icon.
The October 14 release added global pause controls accessible through the feather menu or the Control–Option–Command–P keystroke shortcut. Pausing turns the menu icon dot orange and writes absolute silence across both tracks while maintaining active audio device connections. This approach prevents sensitive discussions from appearing in output text while preserving exact temporal alignment between spoken passages and transcript timestamps.
An automated cutoff filter protects local storage against accidental clicks by evaluating session duration before invoking transcription models. Any recording session that contains less than ten seconds of unpaused audio capture is discarded immediately alongside its completion hooks. When valid meetings terminate, Quills processes both tracks concurrently and produces an on-device transcript marked with speaker tags.
04Stable code signing and privacy permissions
Building the Swift package via swift build produces an ad-hoc, linker-signed binary that lacks a permanent cryptographic code identity. Under macOS Transparency, Consent, and Control policies, permission grants for the microphone and System Audio Recording bind strictly to the application's unique identity. Unsigned or ad-hoc builds cause macOS to present permission dialogs repeatedly on every recording run, because the operating system cannot verify binary continuity.
Developers must sign the compiled binary using an identity listed in the system keychain under security find-identity -v -p codesigning. Applying an official Apple Development certificate or a self-signed Keychain Access signature establishes a persistent cryptographic profile under the com.indiantinker.quills identifier. Once signed, the operating system remembers permission approvals permanently, preserving authorization across subsequent application rebuilds and minor updates.
Installation scripts place the final executable into /usr/local/bin/quills with root permissions set to mode 755. Users can register background execution with quills install --launch-at-login, which generates a LaunchAgent plist to manage startup execution. LaunchAgent logging redirects standard output to /tmp/quills.out.log and standard errors to /tmp/quills.err.log for debugging service failures.
05Storage retention settings and migration workflows
Audio retention is configured through the application menu, providing three distinct policies saved to the ~/.config/quill/config.json preference file. Administrators can set audio_retention to delete_after_transcription, keep_last to preserve only the newest fully transcribed meeting tracks, or keep_all to retain every recorded wave file. Retention rules trigger on option changes, at application startup, and immediately following transcription completion.
Quills ensures uncompleted or failed recordings are never purged accidentally by validating explicit completion markers before deleting source files. Recorded transcripts, session metadata, and runtime logs remain permanently preserved on disk even when audio cleanup removes raw audio tracks. Because deletion operations are irreversible, selecting a broader retention setting at a later time cannot restore previously erased audio data.
Users upgrading from upstream Quill must remove the legacy com.digimata.quill agent by running /usr/local/bin/quill install --uninstall before starting Quills. The fork maintains backwards compatibility by reading ~/.config/quill/config.json, ~/Library/Application Support/Quill/status.json, and existing .quill-* session markers. The status JSON maintains its legacy quill attribute, and the Model Context Protocol endpoint continues resolving legacy quill:// resource URIs alongside modern quills:// links.
Multilingual Minimal Local (MCP only) FAQ
What speech recognition model does Quills use for transcription?
Quills uses the multilingual Parakeet v3 speech model (parakeet-tdt-0.6b-v3), sharing FluidAudio's on-disk model cache with apps like VoiceInk. It can be downloaded in advance using the quills models --download command and executes entirely offline on Apple Silicon.
How does the local Model Context Protocol server work?
The built-in Model Context Protocol server operates strictly on a loopback network interface, providing read-only access to meeting status, metadata, and transcripts. Tools such as Claude Code, Codex, and OpenCode can search and read text transcripts without network transmission or file modification privileges.
Why must Quills be signed with a code signing identity on macOS?
Ad-hoc binaries created by swift build lack a stable cryptographic identity, which causes macOS privacy systems to prompt for microphone and audio recording permissions on every session. Signing with an Apple Development identity or self-signed Keychain certificate ensures macOS permanently remembers granted permissions.
What audio retention options are available in Quills?
Users can choose between delete_after_transcription, keep_last (which retains both audio tracks of the latest completed session), and the default keep_all policy. Transcripts, metadata, and logs are always kept, even when raw audio tracks are removed.
Sources
Author
Dillip Chowdary
Writes Tech Bytes coverage of AI, engineering, and the tools that actually ship. Editor of Tech Pulse Daily.
Related on Tech Bytes
Advertisement