daisy-app
Health Warn
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in scripts/release.sh
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Local-first meeting recorder for Mac. Whisper on-device, your AI for summaries, MCP server for Claude Desktop.
Daisy
A local-first meeting recorder and AI notes app for macOS.
Daisy captures meeting audio (microphone + system audio loopback via ScreenCaptureKit), transcribes it on-device with Whisper, and produces a Granola-style outline with action items and a draft client follow-up. Audio never leaves the Mac unless the user explicitly enables a cloud LLM provider (Anthropic / OpenAI / MCP) for the summary step — and even then the user supplies their own API key.
End-user installation, FAQ, and the privacy story live at https://mydaisy.io. This README is for people building Daisy from source.
Status
- Latest stable release: see
scripts/release-notes/and https://mydaisy.io/appcast.xml - Deployment target: macOS 14 Sonoma (Apple Intelligence summarizer requires macOS 26 Tahoe)
- Apple Silicon and Intel x86_64 universal binary
- Signed with Developer ID, notarized, stapled, Sparkle EdDSA-signed for in-app updates
Build from source
Requirements:
- Xcode 16+ with the macOS 26 SDK installed
- An active Apple Developer account if you want to run a signed local build (unsigned builds are fine for development inside Xcode)
Clone and open:
git clone https://github.com/addicted-studio/daisy-app.git
cd daisy-app
open Daisy.xcodeproj
The Swift Package Manager dependencies (Sparkle, WhisperKit/ArgmaxCore, FluidAudio) resolve on first project load. Hit Run; the app launches.
Project layout
Daisy/ → SwiftUI app sources (PBXFileSystemSynchronizedRootGroup)
DaisyTests/ → unit tests
DaisyUITests/ → UI tests
Daisy.xcodeproj/ → Xcode project
scripts/
release.sh → end-to-end release: archive → notarize → DMG → sign → Sparkle appcast
release-notes/ → per-version markdown bullets consumed by release.sh
dmgbuild_settings.py → dmgbuild config (Python) for the installer DMG
assets/ → DMG background, app icons
build/ → archive output (gitignored)
Key services that drive the app:
AudioRecorder—AVAudioEnginemic tap, route-change recovery, archive.cafwriterSystemAudioCapture—SCStreamloopback for the remote side of a meeting, BT-output detection, silent-capture warningsTranscriber— WhisperKit on-device transcription with Silero VAD pre-passRecordingSession— orchestrates a session, owns calendar binding and auto-stop schedulingSummarizer— multi-provider cloud / on-device LLM dispatch (Apple Intelligence, Anthropic, OpenAI, MCP)SparkleUpdater— wraps Sparkle 2 againsthttps://mydaisy.io/appcast.xml
Release flow
DAISY_AUTO_PUSH=1 ./scripts/release.sh <shortVersion> <buildNumber>
Six steps: archive → export → notarize → DMG → publish to the daisy-web repo → inject an <item> into appcast.xml and commit. Vercel auto-deploys the site within a couple of minutes.
Release notes for each version go in scripts/release-notes/<shortVersion>.md as a flat markdown bullet list (- one line per change). The script extracts those bullets and embeds them in the appcast <description> so Sparkle shows them in its update sheet.
Support and contact
- Questions, ideas, show-and-tell → GitHub Discussions
- Product issues, feature requests → file an issue on this repo or email [email protected]
- Security disclosures → see
SECURITY.md - End-user docs → https://mydaisy.io/support
- Privacy policy → https://mydaisy.io/privacy
Credits
- Sparkle — in-app auto-updates
- WhisperKit by Argmax — Apple Silicon Whisper inference
- FluidAudio — speaker diarization
- FoundationModels — on-device summarization via Apple Intelligence (macOS 26+)
License
See LICENSE.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found