Dettivo
§ FeaturesNative Swift · MLX · local-first

Every switch, every knob, every quiet feature in one place.

Dettivo is a Mac app, not a model. This is the full surface — the things that feel obvious once you’ve used it, the things you find in Settings on day seven, and the developer plumbing we didn’t make you hunt for.

§01 Dictation core

The core loop. Hold a hotkey, speak, release. Dettivo types into the focused app. Every behavior is a setting.

  • Global hotkeys

    Configurable in Settings › Hotkeys. Per-language overrides.

  • Push-to-talk + toggle + hands-free

    Pick the interaction model per profile.

  • Raw mode

    Every word, punctuation off. Fastest path.

  • Polish mode

    New

    Deterministic dictionary corrections + replacement rules. No LLM, no network, instant clean output.

  • Enhanced mode

    Polish

    Polished with your chosen backend, app profile applied.

  • Direct insertion

    Dettivo types into the frontmost app with a safe paste + restore.

  • Clipboard fallback

    If insertion is blocked, the transcript is already copied.

  • Best-effort undo

    ⌘Z rolls back insertion within a 5s window.

  • Mic level overlay

    Non-activating HUD that doesn’t steal focus.

  • Cancel mid-recording

    Press Esc, no artifacts stored.

  • Secure-field detection

    Dettivo refuses to insert into password fields.

  • Auto language detection

    Profiles can match the mic’s language on the fly.

  • Per-language profiles

    Hotkeys, vocabulary, polish rules, models — all scoped.

  • Custom dictionary

    Pre-polish

    Per-language replacement map applied before polish.

  • Power-aware mic

    New

    Different mic on battery vs AC.

  • Whisper mode

    New

    Gain boost for quiet dictation input.

  • App-specific polish profiles

    Different Enhanced style per app (Slack vs email).

  • Translation before insertion

    New

    Pick a target language; Enhanced output is translated.

  • BYOK cloud STT

    Optional. OpenAI-compatible endpoints for dictation only.

  • Model prewarm

    Load on app launch or first use.

  • Multiple STT tiers

    Pick speed over fidelity (or the reverse) per language profile.

  • Per-context limits

    Prevents runaway capture from slow adapters.

  • No-op when target dirty

    Dettivo warns if the focused app changed mid-session.

Dettivo Settings › Hotkeys pane with Push-to-Talk (Option+Space), Toggle Mode (Shift+Space), Re-insert Last, Insert Polished, Insert Enhanced, Capture Note, Quick Access, and Cancel.
Settings › HotkeysEvery dictation behavior gets its own shortcut. Rebind anything — record directly into the row.

§02 Polish + context

Enhanced mode doesn’t guess. It reads the room: the focused app, the current selection, the language profile, and (opt-in) a screenshot of the window. Context in, clean text out.

  • MLX polish, local by default

    Bespoke fine-tuned polish model bundled. No cloud required to get clean output.

  • OpenAI-compatible endpoint

    Advanced path for proxies, gateways, Ollama, vLLM, and LM Studio.

  • Per-task provider split

    Use local MLX, hosted OpenAI/Anthropic, or Advanced Endpoint per task.

  • Advanced MLX source

    Bring a compatible local MLX folder or cached Hugging Face MLX repo when curated models are not enough.

  • Five built-in presets

    Casual · Formal · Professional · Technical · Creative.

  • Custom presets

    Your own system prompt + rules + optional model.

  • Polish rules toggles

    Capitalization · filler removal · grammar · contractions · punctuation.

  • App polish profiles

    Override preset + rules per frontmost app.

  • Frontmost app context

    Bundle ID + app name attached to every Enhanced run.

  • Selected text context

    Reads current selection via Accessibility API.

  • Window screenshot context

    Opt-in

    Optional single-frame capture. Explicit consent required.

  • Context status badge

    Ready · Limited · Blocked with fix path.

  • Per-app context allowlist

    Disable context capture per sensitive app.

  • First-class for IDEs

    Dictation tuned for VS Code, Cursor, Zed, JetBrains. Enhanced mode knows you’re writing code.

  • Test polish sandbox

    Paste sample text, try presets before using live.

  • Remote endpoint trust

    Per-endpoint allowlist with revoke controls.

  • Corruption handling

    If polish config decodes wrong, reset + non-blocking banner.

  • App-target post-processors

    E.g., code `@path` formatting applied in editors.

  • Snippet expansion

    Trigger words expand before insertion + persistence.

Dettivo — pipeline
Enhanced · context-on

Raw speech

Context attached

  • Frontmost appVS Code · PR review
  • SelectionhandleCheckoutSession(...)
  • Window screenshotOpted-in · 1 frame
  • Language profileEnglish · engineering

Enhanced output

App profile → Technical · rules respected

Enhanced never silently downgrades. If context is blocked, Dettivo tells you, and gives you a one-click path to fix it. No hidden coupling between Polish, Automations, and Capture — each pane owns a setting, every pane shows the effective state.

Dettivo Settings › Polish pane: three-mode toggle for Raw, Polish, and Enhanced; Enhanced dictation model selection; app-context capture toggles (use frontmost window screenshots, IDE apps, mail apps); system profile; translation options; and dictation model selector.
Settings › PolishPick the model per task, flip on context signals per app, and keep translation one switch away.

§03 Quick Note + Meeting Mirror

Dictate a thought. Dettivo writes it to a folder you control — your Obsidian vault, your context-layer workspace, your daily note, wherever you live.

  • Capture Note hotkey

    New

    Separate from dictation. Goes to the folder you picked.

  • Folder picker

    Security-scoped bookmark persists across relaunch.

  • Standalone profile

    Unique timestamped file. Default.

  • Inbox profile

    Append to Inbox/. Configurable subdir.

  • Daily profile

    Append to Daily/YYYY-MM-DD.md.

  • Front-matter toggle

    created · tags · source app · mode.

  • Default tags

    Comma-separated. Per-profile.

  • Reveal in Finder on save

    Or open in default markdown editor.

  • Mirror Meeting folder

    New

    Every meeting → transcript.md, notes.md, details.md.

Finder — Vault
~/Obsidian/Inbox
Inbox/

Hold N to dictate a note straight into Inbox.

No editor context. No insertion. Goes to the folder you picked in Settings › Notes.

Dettivo · idle
Profile: Standalone · adds front-matter · reveal on save
Finder — Meetings vault
~/Obsidian/Meetings

Meeting Mirror

Weekly sync · Platform · 32 min

Recording stopped
./2026-04-21/0900-weekly-sync/
  • transcript.md

    Full raw + polished transcript, speaker-labeled, timestamped.

    14 KB
  • notes.md

    Summary, decisions, action items, blockers, follow-up draft.

    3.2 KB
  • details.md

    Metadata: attendees, duration, provider, diarization, calendar.

    0.6 KB
Security-scoped bookmark · survives restartSettings › History › Meeting Mirror

§04 Meetings capture

A dedicated Meetings workspace. System audio plus mic, no bot joining the call. Live transcript streaming in, final canonical transcript after stop.

  • Core Audio tap

    Primary system-audio path on macOS 14+.

  • ScreenCaptureKit fallback

    Automatic when Core Audio tap unavailable.

  • System-audio health warning

    Live warning when capture degrades — before data loss.

  • Auto-retry + fallback

    System audio re-attempted across capture paths.

  • Mic route recovery

    Handles device swap mid-meeting.

  • App-targeted capture

    Pick which app to capture audio from.

  • Capture-all fallback

    If target missing, capture the whole system.

  • Exclude list

    Hide specific apps from capture.

  • Live transcript

    Streaming segments while recording.

  • Final canonical transcript

    Stable re-transcription after stop.

  • Raw + polished display modes

    Toggle at the transcript panel.

  • Timestamped rows

    Mono timestamps · speaker above text.

  • Meeting search + list

    Full-text index across every meeting.

  • Artifact folder

    meetings/<sessionId>/ with audio + metadata.

  • Recover interrupted meetings

    Live checkpoint + retained audio restore transcript.

  • Provisional transcript survives

    Even if final never produced.

  • Always-on recording indicator

    Visible in Meetings workspace footer.

  • Disclosure acknowledgment

    Per first meeting start.

  • Speaker diarization

    On-device after final transcript.

  • Speaker relabel

    Rename once; saved as suggestion next time.

  • Talk-time + timeline

    Who talked when, % share, ratio.

  • Speaker name detection

    Suggests names from the transcript context.

  • Meeting deletion

    Per-meeting destructive delete in More menu.

  • Storage path transparency

    Every artifact path shown in Settings › History.

Dettivo Meetings workspace: left sidebar navigation, center meeting list, transcript with timestamped rows showing 'Mario and Luigi Game Meeting' and speaker relabel + talk-time timeline, and right AI Analysis panel with Prep + Agenda, prior meetings reviewed, linked open action items, Notes editor, Catch Me Up and Knowledge Search.
Meetings · Full workspaceSystem audio + mic, live transcript, speaker relabeling, AI analysis, prep agenda, and cross-meeting knowledge search — one surface, one Mac.
Meeting — Speakers
Talk time · 32:04

Diarized + named

  • Speaker 0
    42%
  • Speaker 1
    31%
  • Speaker 2
    27%

Saved names reused next time. No cloud look-up.

§05 Notes + analysis + prep

Editable notes next to AI summary, action items, decisions, blockers, follow-up draft — every one a separate block, rerun without stomping your edits.

  • Editable meeting notes

    In-place markdown editor, autosave with debounce.

  • AI-generated summary

    Concise, cite-free, scoped to the transcript.

  • Action items

    Extracted, owner-tagged when names available.

  • Decisions

    What the group agreed to.

  • Blockers

    Unresolved items flagged for follow-up.

  • Follow-up draft

    Ready-to-send recap draft.

  • Auto-title

    Generated from analysis output.

  • Analysis rerun

    Re-run with a different provider without losing notes.

  • Advanced local models

    Curated local models stay recommended; power users can test compatible MLX folders or Hugging Face MLX repos.

  • Agenda template insert

    Standard · Project Sync · Client/Sales · Standup.

  • Copy agenda

    Markdown template to clipboard.

  • Prep agenda

    New

    Prior-meeting highlights + linked open action items.

  • Agenda timer

    15 / 30 / 45 / 60 m countdown overlay.

  • Post-meeting Q&A

    Ask this single meeting a question.

  • Cross-meeting knowledge search

    New

    Ask across every meeting, inline citations.

  • Citation row jump

    Open the source meeting from a citation.

  • Manual run-analysis

    Even when auto is disabled.

  • Analysis status pills

    Running · Failed · Unavailable · Ready · Auto-off · Not Run.

  • Notes persistence policy

    Edits separated from generated summary baseline.

  • Meeting template menu

    Standard / Project Sync / Client/Sales / Standup.

Dettivo — Knowledge
Ask across meetings

You asked

Who owned the rollback plan for the API cutover?

§06 Automation + email

Auto-send a recap to the people who were in the room. Weekly digest of open action items. Draft-only if that’s safer.

  • Recap automation

    Opt-in

    On analysis complete, generate + deliver recap.

  • Weekly digest

    Trailing action-items summary, scheduled.

  • Draft-only mode

    Safe default. Nothing leaves your Mac unless you say.

  • Auto-compose Mail

    Opens a draft in Mail.app, no send.

  • Send via provider

    Gmail (OAuth) · Microsoft Graph (OAuth) · SMTP.

  • Provider credentials in Keychain

    Hosted meeting AI and email provider keys stay local and revocable.

  • Recipient list

    Comma-separated or seeded from calendar.

  • Idempotent triggers

    Duplicate triggers return the same run ID, no double-send.

  • Run status log

    Latest run: Succeeded · Failed · Running · Queued + error detail.

  • Scope: personal vs org

    Org mode gated by policy.

  • Generated doc policy

    Attach / link / redact.

  • Disable at any time

    One toggle in Settings › Automations, drains pending queue.

Mail — Weekly sync · recap
Gmail · Auto-compose

Meeting Recap · draft

To
Elena WeberMarco RossYou
SubjRecap — Weekly sync · 21 Apr

Summary

API cutover scheduled for 8 May · 09:00 Zurich. Elena owns the final load test, Marco drafts the rollback plan.

Action items

  • • Elena — load test by 6 May
  • • Marco — rollback doc by 5 May
  • • You — stakeholder comms

Delivery → Send via Gmail · recipients from calendar · draft-only is one toggle away

§07 Calendar + prep

EventKit-aware. Dettivo spots upcoming meetings via your local calendar — your events never leave your Mac.

  • Calendar permission

    Settings › Permissions. EventKit full access.

  • Upcoming meeting prompt

    Card appears N minutes before meeting.

  • Prompt lead time

    Configurable in Settings.

  • Seeded title

    Pre-fills meeting title.

  • Attendee hints

    Organizer + attendees available to automations.

  • Agenda seeding

    Calendar notes / location / URL inform capture target.

  • Meeting-app target hints

    Heuristics for Zoom/Meet/Teams from event fields.

  • Dismissible reminder

    Not now / snooze without opting out of future prompts.

§08 Macros + safety

Dictation macros wire trigger phrases to actions. Deny by default. Allowlists are explicit. Every run lands in the audit log.

  • Trigger phrase mapping

    Speak a phrase, run a defined action.

  • Insert text action

    Expands to snippet, formats, handles variables.

  • App command action

    Controlled via allowlist + confirmation.

  • Shell command action

    Explicit allowlist. Never runs un-vetted.

  • Always-confirm policy

    Every run asks first.

  • First-use-confirm policy

    Allows run-once, always-allow, cancel.

  • Auto-allow policy

    Only after explicit opt-in.

  • Allowlist controls

    Add · edit · delete entries; non-allowlisted blocked.

  • Audit log

    Trigger · run · blocked · failed · cancelled · dropped events.

  • Completion notice

    Enhanced dictation shows "Context + Polish + Automation" applied.

Dettivo — Macros
Automations · audit

Heard

"hey dettivo, ship staging"

Deny-by-default · allowlists · every run auditable

Dettivo Settings › Automations pane: Dictation Macros toggle, App command allowlist, Shell command allowlist, shared audit log, Meeting recap email automation toggle with scope and trigger controls.
Settings › AutomationsMacros and email automations share one pane. Deny by default. Every toggle is visible, every run is audited.

§09 History + retention

Every dictation, every meeting, every artifact — searchable, replayable, re-transcribable, deletable. Retention you actually control.

  • Persistent dictation history

    Every session saved with metadata.

  • Persistent meeting history

    Transcript + audio + analysis artifacts.

  • Full-text search

    Across both dictation and meeting transcripts.

  • Filter by mode

    Raw / Polish / Enhanced / app / provider.

  • Replay stored audio

    In-line player for audio-stored sessions.

  • Re-run transcription

    Swap STT model or provider; keeps raw + final.

  • Copy raw / copy polished

    Separate actions, separate outputs.

  • Export meeting

    Markdown · Plain · JSON · SRT · VTT.

  • Import audio

    m4a · mp3 · wav → transcribed + stored.

  • Per-item delete

    Removes entry + audio artifact.

  • Delete all

    One button. No undo, no apology.

  • Audio retention toggle

    Store or drop raw audio per session.

  • Auto-delete policy

    Day-based retention window for meetings.

  • Storage path transparency

    Every file path shown in the clear.

Dettivo History pane: searchable list of recent dictations with preview text and timestamps, plus a Dictation Details pane showing metadata, Raw Transcript, Polished Transcript, audio playback controls, and actions for Review Replacement Suggestions and Re-run Transcription.
History · Searchable archiveEvery dictation and meeting, kept locally. Raw + polished side by side. Re-run transcription on any item with a different model.

§10 CLI · REST · MCP

The same IPC contract drives the bundled CLI, a loopback REST adapter, and a stdio MCP server. Token-gated. Loopback only. No cloud.

  • Unix socket IPC

    ~/Library/…/Dettivo/dettivo.sock · 0600 · peer UID auth.

  • Hardened token mode

    Optional shared token layered on peer auth.

  • Token sources

    env · Keychain · ~/Library/…/ipc.token.

  • Loopback REST

    One toggle. 127.0.0.1:45831. Bearer auth. Maps IPC → HTTP.

  • Streaming import

    POST /v1/transcripts/import/stream with raw audio.

  • Streaming export

    GET /v1/transcripts/export/stream.

  • MCP server

    dettivo mcp serve · stdio · MCP 1.0.

  • MCP config helper

    --host claude-desktop | cursor | codex · --write.

  • MCP tools

    list · get · search · start/stop dictation · start meeting · import · export · insert.

  • MCP resources

    transcript://{id} · meeting://{id} · status://current · search-url scheme.

  • CLI: dictation

    start · stop · cancel · status.

  • CLI: meetings

    start · stop · list · latest.

  • CLI: transcripts

    list · get · search · latest · export · insert.

  • CLI: import

    Any audio file, any kind.

  • CLI: polish

    test · presets · rules.

  • Output formats

    plain · markdown · json (for scripts).

  • Exit codes

    0 ok · 1 error · 2 not running · 3 perm · 4 args · 5 timeout.

  • install-helper --link

    Symlink into ~/.local/bin/dettivo.

  • First-class for coding agents

    Dictate directly into Claude Code, Codex, and other agent CLIs. No extensions required.

  • Same contract everywhere

    Everything a CLI can do, MCP can. And REST. And app.

  • No cloud dependency

    Developer surface is 100% localhost.

~/work · zsh
bundled binary
→ localhost · no cloud · your token
$ dettivo status● running · dictation idle · 2 meetings today$ dettivo transcript latest --format markdown# Weekly sync — Platform
* API cutover 8th, 09:00 Zurich
* Elena: load test$ dettivo mcp config --host claude-desktop --write✓ installed in ~/Library/Application Support/Claude
Every surface is the same IPC. CLI → REST → MCP → Swift app.
Slack
Slack — #team-dach
#team-dach
Type a message…
⌘↵ to send
Dettivo · idle

CLI · dettivo(1)

  • dettivo statusApp + session + today at a glance
  • dettivo dictation startBegin a dictation session
  • dettivo dictation stopEnd the current dictation
  • dettivo meeting startBegin meeting capture
  • dettivo meeting listRecent meetings with metadata
  • dettivo transcript latest--format markdown | json | plain
  • dettivo transcript search "query"Full-text across history
  • dettivo transcript import <file>--kind dictation | meeting
  • dettivo transcript export <id>Markdown · JSON · SRT · VTT
  • dettivo polish test "raw text"Dry-run polish with preset
  • dettivo polish presetsList built-in + custom presets
  • dettivo mcp serveStart an MCP server on stdio
  • dettivo mcp config --host claude-desktop --writeAuto-install MCP config
  • dettivo install-helper --linkSymlink into ~/.local/bin

§11 Permissions + privacy

Staged, explainer-driven, reversible. Dettivo asks only for what the feature at hand needs. Every permission has a fix path.

  • Microphone

    Required for every capture.

  • Accessibility

    For insertion + selection context. Clipboard fallback exists.

  • Input Monitoring

    Global hotkeys. Key-up / key-down detection.

  • Screen Recording

    Meetings (fallback path) + optional window screenshots.

  • Calendar (EventKit)

    Optional. Upcoming meeting prompts.

  • Onboarding stage recovery

    If revoked, Dettivo re-opens onboarding.

  • Refresh permission state

    No app restart required.

  • Deep-link to System Settings

    Exact pane for every missing permission.

  • Per-app context allowlist

    Disable context capture for sensitive apps.

  • Recording indicator

    Always-on while capturing.

  • Delete-all shortcut

    Settings › History › Delete all. No apology modal chain.

§12 License + updates

One lifetime license, three active devices, Keychain storage, signed updates. The server knows the key, the device IDs, and your email — nothing else.

  • Onboarding activation

    Paste key → validate → go.

  • Keychain storage

    License stored securely on first activation.

  • Device ID copy

    Ship a support request with context.

  • Active device list

    Settings › Cloud › Device activations.

  • Revoke device

    From any active Mac. Four-device block → revoke → go.

  • Secure Sparkle updates

    License signs every update artifact fetch.

  • Update diagnostics

    Copy JSON snapshot for support.

  • Support diagnostics export

    Scrubs license + JWT before writing to ~/Downloads.

  • Refund → revocation

    Refund revokes license + update access.

Reference

Shortcuts + stack + commands

Default shortcuts

Dictation

Default, configurable

Quick Note

Your vault

N

Quick Access

Recall + insert

V

Cancel dictation

Esc

Insert polished

Quick Access

Insert raw

Quick Access

Undo insertion

5-second window

Z

Open history

H

Stack notes

Native Swift app

Built on the newest Apple frameworks

Core Audio taps, ScreenCaptureKit, EventKit, MLX Swift. Not a wrapper, not Electron, not a browser. One dedicated Mac app.

Right model for the job

Every task, its own model

Dictation polishing, meeting-notes generation, summaries, Q&A — each task runs on the best local model for the shape of the work. Swap providers per task in Settings.

Bespoke polish LLM

Fine-tuned and bundled

The default dictation-polish model is ours — fine-tuned specifically for cleaning up spoken input, not a general-purpose chat model trying to guess.

Everything via MLX

Apple Silicon, fully utilized

All local inference runs on MLX to guarantee maximum performance on your Mac’s Neural Engine and unified memory. No Python subprocess, no ONNX shim.

CLI · dettivo(1)

  • dettivo statusApp + session + today at a glance
  • dettivo dictation startBegin a dictation session
  • dettivo dictation stopEnd the current dictation
  • dettivo meeting startBegin meeting capture
  • dettivo meeting listRecent meetings with metadata
  • dettivo transcript latest--format markdown | json | plain
  • dettivo transcript search "query"Full-text across history
  • dettivo transcript import <file>--kind dictation | meeting
  • dettivo transcript export <id>Markdown · JSON · SRT · VTT
  • dettivo polish test "raw text"Dry-run polish with preset
  • dettivo polish presetsList built-in + custom presets
  • dettivo mcp serveStart an MCP server on stdio
  • dettivo mcp config --host claude-desktop --writeAuto-install MCP config
  • dettivo install-helper --linkSymlink into ~/.local/bin

Launching April 2026

Every feature above is already built.

Dettivo opens for new purchases in April 2026 — one-time license, three active Macs, lifetime updates. Be first on the list.