This file gives coding agents repo-specific guidance for the BreezeType desktop App.
- Work in this App repo only unless the user explicitly asks for another surface.
- Do not edit sibling
Website/orServer/repos from an App-scoped task. - Preserve the same desktop app behavior. This is not a community fork or a stripped-down build.
- Keep Pro, account, sync, hosted sharing, support, telemetry, billing, and team workflows pointed at BreezeType's managed API unless the task explicitly changes that boundary.
- Keep local-first behavior central: core dictation, meetings, history, tasks, dictionary corrections, and local MCP context should work without private server credentials.
Prerequisites:
- Rust latest stable
- Bun
- Tauri platform prerequisites
Common commands:
bun install
bun run tauri dev
bun run build
bun run lint
cd src-tauri && cargo checkIf macOS hits a CMake policy issue:
CMAKE_POLICY_VERSION_MINIMUM=3.5 bun run tauri devRequired VAD model for development:
mkdir -p src-tauri/resources/models
curl -L -o src-tauri/resources/models/silero_vad_v4.onnx \
https://blob.handy.computer/silero_vad_v4.onnxOptional local env overrides:
cp .env.example .env.localDo not commit .env.local, provider API keys, signing credentials, local app data, recordings, transcripts, screenshots, generated model bundles, or temporary output.
For most App changes, run:
bun run build
bun run lintWhen Rust, Tauri commands, permissions, audio, transcription, meetings, MCP, updater config, or bundled resources change, also run:
cd src-tauri && cargo checkWhen runtime behavior is relevant, launch:
bun run tauri devBackend:
src-tauri/src/lib.rswires the Tauri app, plugins, tray, windows, and managers.src-tauri/src/managers/owns audio, models, transcription, history, meetings, tasks, local LLM, MCP-facing data, and related state.src-tauri/src/commands/exposes Tauri commands to the frontend.src-tauri/src/audio_toolkit/contains low-level device, recording, resampling, and VAD pieces.
Frontend:
src/App.tsxandsrc/components/implement the desktop UI.src/stores/contains client-side state for settings, auth, tasks, history, and feature flows.src/lib/serverApi.tsdefines the managed BreezeType API and web URL defaults.src/bindings.tsis the generated command surface between frontend and Rust.
Important context:
- Transcription is Parakeet-based, not Whisper-based.
- Some older internal names may still contain
handy_*; avoid broad renames unless the task is specifically about naming cleanup. - macOS permissions matter for dictation, insertion, meeting capture, and app context features.
- The hidden local MCP surface is read-oriented and should not leak private hosted-server assumptions.
Public contributors can build local unsigned or locally signed bundles with:
bun run tauri buildOfficial BreezeType release publishing is maintainer-only because it uses private signing credentials, notarization credentials, updater signing keys, and release publication permissions. Do not add those secrets to docs, examples, source, or committed config.
For the public release boundary, read docs/release-builds.md. Release scripts may exist in this repo, but running --publish is only appropriate in a maintainer-controlled environment.
- Prefer narrow changes that match existing patterns.
- Keep docs and examples public-safe.
- Do not rewrite release scripts, updater config, auth/server behavior, or product boundaries unless the user explicitly asks.
- If you encounter unrelated dirty worktree changes, leave them alone.