Skip to content
CAI
Software that uses CAICheck a score

Starmel/OpenSuperWhisper

52.6

Adequate · 30 September 2026

11.2k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

OpenSuperWhisper is a macOS application that provides real-time speech-to-text transcription via a menu bar indicator, supporting both Whisper and FluidAudio engines. It enables users to transcribe audio through microphone input or file drops, with features for auto-copying results, autocorrecting text, and managing input shortcuts. The system also includes an automated agent tool for implementing code changes and managing dependencies.

Features

Added macOS keyboard layout management script

A new shell script, \Scripts/manage\_keyboard\_layouts.sh\, has been added to help users manage keyboard layouts on macOS for testing purposes. The script allows users to save and restore original layouts, list currently enabled layouts, and enable or disable specific input sources (such as US, British, Dvorak, German, French, and various Asian and European layouts) immediately without requiring a logout or login. It utilizes a Swift helper script to interact with the macOS TIS (Text Input Source) API.

Scripts · high confidence

Initial project scaffolding and build infrastructure

This change establishes the foundational structure for the OpenSuperWhisper macOS application. It introduces the core build scripts (run.sh, notarize\_app.sh, make\_release.sh) required to compile the app, sign the binary, and distribute it via DMG. It also adds the necessary configuration files for version control (gitmodules for whisper.cpp and asian-autocorrect submodules, .gitignore) and provides the initial project documentation (README.md) and licensing (LICENSE).

(repo-wide) · high confidence

Introduce FluidAudio transcription engine alongside existing Whisper engine

The Engines module now includes a new FluidAudioEngine implementation that leverages the FluidAudio library for speech-to-text, providing an alternative to the existing Whisper-based engine. This addition introduces a new TranscriptionEngine protocol and specific engine classes (FluidAudioEngine and WhisperEngine) that handle model initialization, audio transcription, progress tracking, and cancellation. Users can now benefit from the FluidAudio backend, which manages its own model loading and progress streaming, while the existing Whisper engine remains available with its own VAD integration and state management.

OpenSuperWhisper/Engines · high confidence

Introduce Swift wrappers for Whisper and Silero VAD processing

This change adds a new Swift module (Whis) that provides type-safe wrappers around the underlying C libraries for Whisper speech recognition and Silero Voice Activity Detection (VAD). For users, this enables audio transcription and voice detection capabilities within the app, with the VAD component specifically configured to run on a single thread to streamline audio processing. The wrappers expose configuration options for model loading, GPU usage, sampling strategies, and detailed timing data, forming the core engine for the application's transcription features.

OpenSuperWhisper/Whis · high confidence

Introduces centralized app preferences and new utility modules for clipboard, autocorrect, and focus management

This change adds a new \AppPreferences\ singleton to \OpenSuperWhisper/Utils\ that centralizes user settings, including engine selection (Whisper vs. FluidAudio), model paths, transcription parameters (temperature, beam search), and new options for clipboard behavior (auto-copy/paste), escape-cancel confirmation, and starting hidden in the menu bar. It also introduces several new utility classes: \ClipboardUtil\ for managing pasteboard operations with layout-aware keyboard simulation, \AutocorrectWrapper\ to integrate a C-based autocorrect library, \FocusUtils\ for resolving input anchors and caret positions via Accessibility APIs, \LanguageUtil\ for managing supported languages across engines, and helper utilities like \AudioUtil\ and \TextUtil\. These utilities support the application's core transcription and input features by providing robust, centralized access to system capabilities and user preferences.

OpenSuperWhisper/Utils · high confidence

Introduces file drop transcription, microphone selection, and alternative recording triggers

Users can now drag and drop audio files into the app to queue them for transcription, select specific input microphones from a list of available devices, and trigger recording using mouse buttons or modifier keys in addition to the standard keyboard shortcut.

OpenSuperWhisper · high confidence

New C-compatible API for autocorrect linting and formatting

The libautocorrect library now exposes a C-compatible interface (autocorrect\_swift.h and lib.rs) allowing external applications to perform text formatting and linting. Users can load configuration, format text for specific file types, and retrieve detailed lint results including file paths, error messages, and line-by-line correction details via opaque handles.

libautocorrect · high confidence

New issue agent tooling for automated code implementation and PR creation

Added a new Python-based agent tooling suite in the \agent\ directory that automates the workflow of resolving GitHub issues. The tooling reads open issues from the public upstream repository, uses an AI model (via OpenRouter) to implement code changes, automatically builds the application, and iteratively fixes build failures. Upon a successful build, it creates a pull request targeting a private fork to keep the work private, while allowing users to review, provide feedback, or skip issues during the process.

agent, python · high confidence

New onboarding flow for language, model, and shortcut configuration

Users are now presented with a dedicated onboarding screen that allows them to select their preferred language, choose between Whisper and Parakeet (FluidAudio) models, and configure the input hotkey. The system defaults to a key-combination shortcut mode to avoid requiring Input Monitoring permissions on first launch, and provides a unified interface to download and select the active transcription model.

OpenSuperWhisper/Onboarding · high confidence

Behavioural changes

Enhanced recording state management and cancel confirmation

The Indicator component now implements a more robust recording lifecycle with specific states (idle, connecting, recording, decoding, busy, noMicrophone) and introduces a configurable escape-key cancel confirmation feature to prevent accidental interruptions. The UI window presentation has been optimized using Core Animation for smoother appear/hide transitions, and the system now handles microphone availability checks and recording failures more gracefully by resetting state and notifying the user.

OpenSuperWhisper/Indicator · high confidence

Updated build configuration and linked new dependencies

The Xcode project has been upgraded to version 16.2 and reconfigured to link several new libraries, including GRDB, KeyboardShortcuts, and libautocorrect\_swift.dylib. The build process now explicitly copies libautocorrect\_swift.dylib and libomp.dylib into the app bundle to ensure they are available at runtime, and the project structure has been adjusted to reference the whisper.cpp source build rather than pre-compiled static libraries.

OpenSuperWhisper.xcodeproj · high confidence

Fixes

Fixes ARM i8mm build failures on GitHub Actions runners

The libwhisper build system now explicitly disables the ARM i8mm (matrix multiply int8) feature to resolve compilation failures on GitHub Actions runners. This change, implemented in the new CMakeLists.txt, ensures that the library builds successfully on ARM architectures by undefining the relevant feature macro, addressing a known issue where feature detection passed but compilation failed with newer toolchains.

libwhisper · high confidence

Test coverage

Added comprehensive test coverage for dictation, engine, and recording reliability; Removal of obsolete test files.

Dependencies

Add build tooling and update dependency versions

This change introduces new dependency manifests and updates existing ones across the project. It adds a Ruby Gemfile and lockfile pinning fastlane to 2.229.0 and xcpretty, establishing the tooling for build and signing automation. Swift Package Manager is configured with a resolved file pinning FluidAudio to 0.15.6, GRDB.swift to 7.11.1, and KeyboardShortcuts to 3.0.1. A Rust library for autocorrect is added with its Cargo manifest and lockfile, and a Python agent dependency (aider-chat) is specified. Additionally, an obsolete requirements.txt file in the main app directory has been removed.

(dependencies) · 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 59 → 53 (-6.6)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 88 → 86 (-2.2)
  • Architecture 96 → 98 (+2.3)
  • Maturity 49 → 49 (-0.1)
  • Readiness 61 → 43 (-17.7)
  • Security 81 → 87 (+6.5)
  • Domain Modelling 61 → 61 (+0.0)
  • Performance 66 (new)

Resolved (4)

  • Documentation: no licence statement (README.md)
  • Hotspot: OpenSuperWhisper/MicrophoneService.swift (OpenSuperWhisper/MicrophoneService.swift)
  • Off-boarding risk: anonymized user #1
  • Outdated: fastlane

New (43)

  • ContentView.body (cognitive 44) (OpenSuperWhisper/ContentView.swift)
  • ContentView.body (cyclomatic 26) (OpenSuperWhisper/ContentView.swift)
  • Duplicated block (10 lines × 2) (OpenSuperWhisper/Indicator/IndicatorWindow.swift)
  • Duplicated block (10 lines × 2) (OpenSuperWhisper/Settings.swift)
  • Duplicated block (10 lines × 2) (OpenSuperWhisper/Settings.swift)
  • Duplicated block (10 lines × 8) (OpenSuperWhisper/Settings.swift)
  • Duplicated block (11 lines × 2) (OpenSuperWhisper/Settings.swift)
  • Duplicated block (11 lines × 3) (OpenSuperWhisper/ContentView.swift)
  • Duplicated block (13 lines × 2) (OpenSuperWhisper/Settings.swift)
  • Duplicated block (13 lines × 2) (OpenSuperWhisper/Settings.swift)
  • Duplicated block (13 lines × 3) (OpenSuperWhisper/Settings.swift)
  • Duplicated block (14 lines × 2) (OpenSuperWhisper/ContentView.swift)
  • Duplicated block (14 lines × 2) (OpenSuperWhisper/ContentView.swift)
  • Duplicated block (14 lines × 2) (OpenSuperWhisper/ModifierKeyMonitor.swift)
  • Duplicated block (14 lines × 2) (OpenSuperWhisper/Settings.swift)
  • Duplicated block (17 lines × 2) (OpenSuperWhisper/Settings.swift)
  • Duplicated block (18 lines × 2) (OpenSuperWhisper/ContentView.swift)
  • Duplicated block (18 lines × 2) (OpenSuperWhisper/Settings.swift)
  • Duplicated block (19 lines × 2) (OpenSuperWhisper/Onboarding/OnboardingView.swift)
  • Duplicated block (21 lines × 2) (OpenSuperWhisper/Settings.swift)
  • …and 23 more

Architecture

  • Unchanged — 0 containers · 1 contexts · 0 edges

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

Survey your own repository

Starmel/OpenSuperWhisper 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 c8e6fe79d6851078940f459ab7dbc8ee39e2a97d — 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.