Skip to content

v1.0.0

Latest

Choose a tag to compare

@vibhor1997a vibhor1997a released this 14 Aug 12:15
· 1 commit to master since this release
0f0599f

First tagged release of Verbatim, a real-time, vendor-agnostic macOS dictation tool with
visible corrections. Supersedes the earlier v0.1.0 tag.

Note on scope. Per the project's own milestone plan
(docs/architecture/git-and-release.md, docs/product/roadmap.md), a v1.0.0 tag is
defined as landing at milestone M6 — public release, Windows support, signed/notarized
builds. As of this tag, the project is at M4 (functionally complete) / M5 (in
progress)
: macOS-only, source-only, not code-signed or notarized. This tag reflects
the maintainer's explicit decision to version the current state as 1.0.0; it does not
assert M6 exit criteria are met. See Known limitations below.

Highlights

  • Real-time dictation with a two-layer pipeline — a live transcript streams as you speak
    (never blocked on the correction model), and a correction pass runs when a segment
    finalizes.
  • Visible corrections — removed and replaced spans are shown, not silently rewritten,
    before the cleaned text is inserted.
  • Vendor-agnostic core — speech-to-text and correction are independent, swappable roles
    behind two interfaces in packages/core, with one adapter file per vendor.
  • Bring-your-own-key, local-first — keys are stored in the OS keychain and sent only to
    the vendor you choose. No audio or transcript content telemetry.

macOS desktop app (milestone M4 — functionally complete)

  • Menu-bar app with a floating, non-activating overlay that never steals keyboard focus
    from the app underneath it.
  • Focusable Settings window and a first-run onboarding flow for entering provider
    keys.
  • Focused-field text injection via the Accessibility API with a clipboard-paste fallback;
    secure/password fields are refused (copied to clipboard instead).
  • ⌥Space toggle with both tap-to-toggle and hold-to-talk.
  • Rust config store + OS keychain; the app owns and supervises its own backend
    ("sidecar") and injects keys from the Keychain — no key ever crosses the renderer.
  • Release sidecar packaging so the backend ships bundled inside the app.

Providers

  • PyAI (default) — speech-to-text and correction.
  • Deepgram — streaming speech-to-text.
  • OpenAI — speech-to-text and correction.
  • Anthropic — correction.
  • Speech-to-text and correction vendors can be mixed (for example Deepgram STT +
    Anthropic correction).
  • Multilingual: non-English dictation routes STT through Deepgram or OpenAI, since PyAI's
    speech-to-text is English-only.

Quality & polish (milestone M5 — in progress; shipped in this tag)

  • Reliability: retry-with-backoff, streaming keepalive, and auto-reconnect wiring.
  • Custom vocabulary: a user term list injected into correction and used to boost STT.
  • Snippet text-expansion.
  • Formatting modes: prose / message / code / raw.
  • Revert-to-raw undo and a paste-last-result hotkey (both configurable).
  • Concurrency guard for overlapping dictations.
  • Opt-in, metadata-only telemetry with latency capture (content is never sent; transport
    is not yet enabled).

Web demo

  • Vite browser app with a Demo (no mic) mode that replays a real captured sample — the
    full live-transcript, correction-diff, and formatted-output flow with no microphone or key.

Developer experience

  • npm-workspaces monorepo: packages/core, apps/widget, apps/backend, apps/web.
  • Headless core CLI pipeline (npm run pipeline) with an offline fixture + mock path.
  • Vitest unit/integration suite (adapters tested against faithful mock servers, no live
    network) and a Playwright end-to-end demo test.
  • CI gates on every pull request: lint, type-check, tests, secret scanning (gitleaks),
    dependency audit (npm audit), and CodeQL.

Known limitations {#known-limitations-v1}

  • macOS only. Windows support is planned for a later release.
  • No published binary. Install from source; builds are not yet code-signed or notarized.
  • Long-input live transcript can occasionally show stitch artifacts from the streaming
    provider; the final (batch-transcribed) output is unaffected.
  • Experimental, not verified end-to-end: Meetings ("Granola mode") and command-mode /
    wake-word features are prototypes. Meetings requires a macOS loopback audio device.
  • Provider availability and exact model behavior depend on your vendor account and keys.

Upgrade notes

  • First release — no migration required. If you had checked out the short-lived v0.1.0 tag,
    re-tag/pull to v1.0.0; v0.1.0 has been removed.
  • Copy .env.example to .env for standalone/local development, or enter keys in the
    desktop app's Settings window (stored in the OS keychain).