Build from source
Comigo is a Tauri 2 app: a Rust core (capture, privacy filter, local database, AI providers, speech, MCP server) with a React 19 + TypeScript interface and small native Swift helpers for system audio, dictation, app icons and on-device text recognition.
Displays, audio, foreground app
→ capture → privacy filter & change detection
→ on-device text recognition & transcripts
→ task grouping → your AI model → suggestions, canvas, chat
→ SQLite on this Mac → workflow reports · optional local MCP
| Layer | Stack |
|---|---|
| Desktop shell | Tauri 2, React 19, TypeScript, Vite, Tailwind |
| Core | Rust, Tokio, SQLite (rusqlite, FTS5), axum (MCP) |
| Local speech | whisper.cpp via whisper-rs with Metal |
| Visuals | Lucide, Motion, React Flow, Dagre |
Access
The source lives at github.com/ai2marketing/comigo. If you need access, write to [email protected].
Prerequisites
Run
git clone https://github.com/ai2marketing/comigo.git
cd comigo
bun install --frozen-lockfile
bun run tauri dev
bun run dev starts only the web interface with sample data, useful for UI work in a browser. It does not exercise the real capture or database.
Test
bun run check # everything below
bun run test # interface tests (Bun + Happy DOM)
bun run test:cargo # Rust tests: storage, privacy, capture, models, tasks, voice, MCP
bun run build # typecheck + production bundle
Tests that call a real AI provider are opt-in because they cost money:
OPENROUTER_API_KEY=... bun run test:live
Permission prompts, real microphones, multiple displays and system audio can't be fully automated — try those in an installed build.
Build an installer
bun run tauri build
# → src-tauri/target/release/bundle/dmg/Comigo_0.1.0_aarch64.dmg
macOS ties Screen Recording permission to the app's code signature. Sign local builds with a stable certificate, or the permission is lost after every rebuild.
Contributing guidelines
- Add a failing regression test for a bug before fixing it.
- Never commit API keys, tokens, transcripts, screenshots or a local database.
- Captured content must always be treated as evidence, never as instructions to the model.
- Keep MCP read-only and local.
