Alfred is a personal assistant desktop app (Tauri 2 + React/TypeScript) that records your meetings and voice notes, transcribes them locally with Whisper, and turns them into structured notes, summaries, and tasks in a plain Markdown vault — with Claude as your AI assistant on top of it all.
Windows and macOS installers (.msi/.exe, .dmg) are published on the
Releases page.
Alfred has two clearly separate parts. Please read this before recording anything sensitive.
Recording and transcription run entirely on-device via whisper.cpp. Your microphone/system audio and the raw transcript it produces are never sent anywhere for this step — there is no network call involved in turning speech into text.
Everything beyond the raw transcript is AI-assisted, meaning the relevant text (never raw audio) is sent to Claude to be processed. That covers:
- Meeting summaries — the transcript is sent to generate the structured
write-up (
alfred-intelligence/). - Task extraction — action items pulled out of the same transcript.
- Home page daily brief ("today's tasks") — your recent notes/tasks are sent to generate the summary shown on the home screen.
- Chat with Alfred — your question plus the relevant note excerpts it finds (RAG) are sent to answer with sources.
- Chat agent actions — from that same chat, Claude can also create, edit, or archive notes and tasks on your behalf (never a hard delete).
- Onboarding voice context — the first recording where you describe
yourself/your company is sent to Claude to structure it into
Contexte Alfred.md. - Glossary generation — the content of
Contexte Alfred.mdis sent to Claude to derive a list of proper nouns, fed back into Whisper to improve transcription accuracy on names/jargon.
Two ways to access these AI features, both using Claude under the hood:
- Bring your own Anthropic API key — requests go directly from your
machine to
api.anthropic.comusing your own key. Nothing passes through do·now's servers. - AlfredIA subscription — a managed option with no key to set up. Requests are routed through our proxy (which holds the shared API key) to Claude, and are not used for anything beyond serving that request.
- 🎙️ Recording — microphone and system audio (Windows: WASAPI loopback,
mic + system mixed by default), or import an existing
.wavfile. - 📝 Local transcription — on-device with Whisper, see above.
- 🤖 AI notes & tasks — Claude turns a transcription into a structured summary and a task list, with a review screen to correct anything before it's finalized.
- 🗂️ Markdown vault — everything lives as plain
.mdfiles you own (alfred-raw/for raw transcriptions,alfred-intelligence/for AI-generated notes andTodo.md), organized by project, with wikilinks and a notes graph. - 💬 Chat over your notes — ask Alfred questions about your own notes (RAG), get answers with clickable sources.
- 🔗 Sharing — share a note or your task list as a public read-only link.
- 🌐 FR / EN — full UI and AI-output localization.
- 🔑 Bring your own key or subscribe — use your own Anthropic API key, or subscribe to AlfredIA (managed proxy, no key to manage).
Whisper (local transcription, CPU) is on by default — the app builds
whisper.cpp via the whisper Cargo feature, part of default.
Prerequisites
- Rust (MSVC toolchain) — install via rustup. Accept the
default
x86_64-pc-windows-msvctoolchain. - Visual Studio Build Tools with the "Desktop development with C++" workload (provides the MSVC linker Rust needs).
- WebView2 runtime — preinstalled on Windows 11. If missing, install the Evergreen runtime from Microsoft.
- Node.js 18+.
- CMake —
winget install Kitware.CMake(buildswhisper.cpp). - libclang (for
bindgen) — easiest without admin:pip install --user libclang. Alternatively install LLVM (winget install LLVM.LLVM, requires admin).
Don't want to install CMake/libclang right now? Skip Whisper for a session with
./scripts/dev-windows.ps1 -NoWhisper (recording still works, no transcription).
Setup — from the repo root, in PowerShell:
./scripts/setup-windows.ps1 # installs sqlx-cli, creates the compile-time dev DB + migrations
npm install
./scripts/dev-windows.ps1 # auto-discovers libclang.dll, runs `tauri dev`setup-windows.ps1 creates src-tauri/alfred_dev.db and runs the migrations so
the compile-time sqlx::query! macros can verify against the schema. That DB is
used only at build time — at runtime the app creates its own database in the
Windows app-data directory (%APPDATA%\com.alfred.app).
The first build is slow (it compiles whisper.cpp). The CPU backend works on any
machine. To use your GPU instead (CUDA/Vulkan), enable the matching whisper-rs
feature in src-tauri/Cargo.toml and install that SDK — not covered here.
Model — the small model is bundled into release builds — it works
offline from the first launch, no download needed. In dev, if it's not already
fetched, download it from Settings → Transcription (or run
./scripts/fetch-whisper-model.ps1 to fetch it into src-tauri/models/ ahead
of time). Models are cached in %APPDATA%\com.alfred.app\models\.
Packaging (release build)
./scripts/build-windows.ps1Fetches the small model into src-tauri/models/ (skipped if already present
— that path is gitignored, so every machine fetches it once), then runs
tauri build. Installers land in src-tauri\target\release\bundle\ (msi\
and/or nsis\). Release builds published on GitHub are Authenticode-signed;
local builds are not unless you have your own signing secrets.
Whisper is on by default here too (needs cmake + Xcode CLT, both already required for macOS builds).
npm install
npm run tauri:dev # dev, with Whisper
./scripts/fetch-whisper-model.sh # optional: pre-fetch the `small` model into src-tauri/models/
./build-macos.sh # release build (.app + .dmg), fetches + bundles `small`, then builds- Windows:
system_only/mixedrecording sources are implemented via WASAPI loopback — no extra setup needed. - macOS: not implemented yet (ScreenCaptureKit helper, tracked separately).
system_only/mixedreturn an error; usemic_only.
- Ingest ("run Claude" feature): resolves the
claudeCLI from PATH; a.cmdshim may not resolve. Only affects the manual ingest action.
The functional and technical source of truth lives in spec/
(one file per module, with a status index). The v1 backlog is tracked in
ROADMAP.md. The AlfredIA backend (Claude proxy + metrics,
optional subscription) lives in a separate private repository and isn't part
of this codebase.
Contributions are welcome — see CONTRIBUTING.md for how to
propose changes, the branch/PR workflow, and coding conventions.
Licensed under the Apache License, Version 2.0.
Alfred is built by do·now.

