Skip to content
CAI
Software that uses CAICheck a score

zachlatta/freeflow

37.0

Weak · 30 September 2026

16k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

FreeFlow is a macOS application that provides context-aware voice-to-text dictation by capturing screen and window data to guide transcription via an LLM. It features a robust shortcut engine with modifier matching and paste history, alongside a streamlined build and release process for universal binaries. The system includes comprehensive test coverage for its core services and a dedicated marketing website.

Features

Initial release of the FreeFlow marketing website

The website directory now contains a static landing page for FreeFlow, including an HTML file with SEO metadata, structured data (JSON-LD), and a product demo, alongside supporting files like \llms.txt\ for AI agents, \robots.txt\, and \sitemap.xml\ to facilitate search engine indexing and crawler policies.

website · high confidence

Introduce context-aware dictation with screenshot analysis and custom prompts

The app now captures the active application, window title, selected text, and a screenshot of the frontmost window to provide rich context for transcription and post-processing. This context is analyzed by an LLM (defaulting to qwen/qwen3.6-27b) to generate a summary of the user's current activity and intent, which is then used to guide the transcription output. Users can customize the system prompt used for this context synthesis via the settings. The feature includes fallback logic for when the LLM is unavailable or rate-limited, and supports configurable screenshot dimensions and compression to manage bandwidth.

Sources · high confidence

New FreeFlow release preparation skill and validation script

Added a new agent skill (\.agents/skills/freeflow-release\) that guides the preparation and publishing of FreeFlow semver releases. This includes a \SKILL.md\ defining the release workflow (version bumping, changelog generation, tagging) and a \freeflow-release-check.sh\ script that validates preconditions such as semver format, required file existence, tag uniqueness, and changelog section integrity before a release commit.

.agents · high confidence

Behavioural changes

7 commits (1 fix) modifying Resources

A change to existing behaviour in Resources — 7 commits (1 fix), 8 files.

Resources · medium confidence · unverified

FreeFlow rebrand and build system overhaul

The application has been rebranded from 'Voice to Text' to 'FreeFlow' (bundle ID com.zachlatta.freeflow), with the build process refactored to support distinct 'FreeFlow Dev' and release builds, including separate icons and code-signing identities. The Makefile now generates universal binaries (arm64 + x86\_64), creates a styled DMG installer, and enforces stricter verification via \make check\ (type-checking, tests, and validation). New system permissions (Accessibility) are declared in Info.plist, and the repository now includes a maintenance guide (AGENTS.md) and a comprehensive changelog.

(repo-wide) · high confidence

Introduce 'Paste Again' shortcut and refine modifier matching logic

ShortcutCore now supports a new 'Paste Again' keyboard shortcut role alongside the existing Hold and Toggle modes, allowing users to re-execute the last paste action. The core shortcut matching engine has been tightened to handle modifier keys more precisely, ensuring that bindings like Cmd ⌘ or Right Option ⌥ are matched exactly as configured without unintended collisions. Additionally, the system now displays friendly names for modifiers (e.g., 'Cmd ⌘', 'Ctrl ⌃') in presets and bindings, improving clarity in the user interface.

Sources/ShortcutCore · high confidence

Test coverage

Added test coverage for core application services

Added new test suites for AppContextService (verifying Qwen model output summarization and think-tag stripping), LLMCooldownManager (validating rate-limit cooldown logic and malformed duration handling), ModelConfiguration (ensuring model alias consistency and think-tag stripping behavior), SemanticVersion (testing version parsing and ordering), ShortcutCore (covering shortcut matching, hold/toggle lifecycles, and modifier specificity), and TranscriptionErrorPresentationCore (confirming user-facing error messages for connection and offline states).

Tests · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 61 → 37 (-23.6)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 87 → 84 (-3.2)
  • Architecture 98 → 98 (+0.5)
  • Maturity 43 → 43 (-0.1)
  • Readiness 65 → 62 (-2.6)
  • Security 78 → 78 (+0.0)
  • Domain Modelling 100 → 100 (+0.0)
  • Event-Driven 10 (new)

Resolved (4)

  • Documentation: no usage examples (README.md)
  • Hotspot: Sources/AppContextService.swift (Sources/AppContextService.swift)
  • Hotspot: Sources/LLMCooldownManager.swift (Sources/LLMCooldownManager.swift)
  • Off-boarding risk: anonymized user #1

New (49)

  • Duplicated block (11 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (11 lines × 3) (Sources/SettingsView.swift)
  • Duplicated block (12 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (12 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (12 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (12 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (13 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (13 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (13 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (13 lines × 4) (Sources/SetupView.swift)
  • Duplicated block (14 lines × 5) (Sources/SetupView.swift)
  • Duplicated block (16 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (16 lines × 3) (Sources/MenuBarView.swift)
  • Duplicated block (18 lines × 2) (Sources/RecordingOverlay.swift)
  • Duplicated block (20–21 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (22 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (5 lines × 4) (Sources/RecordingOverlay.swift)
  • Duplicated block (54 lines × 2) (Sources/SettingsView.swift)
  • Duplicated block (8–9 lines × 2) (Sources/RecordingOverlay.swift)
  • Duplicated block (9 lines × 2) (Sources/SettingsView.swift)
  • …and 29 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

zachlatta/freeflow was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit ad5c827b5a324c503d58f948d500fa5d9f90e7d8 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.