Skip to content

Repository files navigation

EchoType

Two powerful productivity tools for macOS — voice typing and clipboard manager — completely free, no subscription, no account.

EchoType is a lightweight macOS menu-bar app that combines:

  • Push-to-talk voice typing — speak into any app, on-device Whisper transcription, zero internet
  • Smart clipboard manager — persistent history, fuzzy search, pinned items, images & files — triggered by a single hotkey

Both features are 100% free and run entirely on your Mac.


Demo

Voice Typing

Hold shortcut Speak Release Text appears
⌥ Space "Hey John, attaching the updated deck." Hey John, attaching the updated deck.

Clipboard Manager

Trigger Browse & Search Press Enter Done
⌘ Shift V fuzzy-search your full clipboard history pastes into active app

Features

Voice Typing

  • Push-to-talk — hold global hotkey, speak, release; text is instantly injected at your cursor
  • Offline transcription — WhisperKit (on-device Whisper) — no internet, no cloud, nothing leaves your Mac
  • Works everywhere — Cursor, VS Code, Chrome, Slack, Notion, Figma, Terminal, email apps
  • Minimal UI — lives in your menu bar; floating overlay shows listening / processing / done state
  • Configurable — model size, microphone, typing speed, shortcut key

Clipboard Manager

  • Persistent history — stores up to 200 clipboard items across sessions (SQLite-backed)
  • All content types — text, URLs, images (with thumbnails), and files
  • Fuzzy search — find anything instantly by typing; exact → prefix → substring → fuzzy ranking
  • Pinned items — pin frequently-used snippets so they stay at the top (⌘P)
  • Keyboard-first↑/↓ navigate, Return pastes, ⌘P pins, ⌘Delete removes, Esc closes
  • Password manager safe — automatically ignores copies from 1Password, Bitwarden, LastPass, Dashlane
  • Deduplication — consecutive identical copies don't create duplicate entries
  • Relative timestamps — see when each item was copied (just now / 5m ago / 2h ago)

Free Forever

No subscription. No account. No telemetry. Both tools are completely free.


Requirements

Item Minimum
macOS 14 Sonoma
Architecture Apple Silicon (arm64)
Swift 5.10+ (via Xcode CLT)

Intel Macs are not supported — WhisperKit targets Apple Silicon.


Quick Start

# Clone
git clone https://github.com/Rishurajgautam24/EchoType.git
cd EchoType

# Build release .app bundle
make app

# Launch
make run

On first launch:

  1. Grant Microphone, Accessibility, and Input Monitoring permissions
  2. Hold ⌥ Space anywhere to start voice typing
  3. Press ⌘ Shift V anywhere to open the clipboard palette
  4. The first voice-typing session downloads the Whisper model (~150 MB)

Build Targets

Command Description
make app Release build → build/EchoType.app
make debug Debug build → build/EchoType-debug.app
make run Build release + open
make run-debug Build debug + open
make dmg Package release into build/EchoType.dmg
make clean Remove .build/ and build/

Project Structure

EchoType/
├── Sources/EchoTypeApp/
│   ├── App/                    # AppDelegate, AppState, coordinator
│   ├── Audio/                  # AVAudioEngine capture pipeline
│   ├── Whisper/                # WhisperKit engine + model catalog
│   ├── Injection/              # CGEvent + pasteboard text injection
│   ├── Hotkey/                 # Global hotkey manager
│   ├── Overlay/                # Floating status panel (SwiftUI)
│   ├── MenuBar/                # Status bar controller
│   ├── Permissions/            # Onboarding + permission checks
│   ├── Settings/               # SettingsStore + SettingsView
│   └── Clipboard/
│       ├── Models/             # ClipboardItem model
│       ├── Monitoring/         # NSPasteboard watcher (0.3s poll)
│       ├── Storage/            # SQLite database + store
│       ├── Search/             # Fuzzy search engine
│       ├── Overlay/            # Palette UI (SwiftUI, 600×400)
│       └── Paste/              # Injection back into active app
├── Resources/
│   ├── Info.plist
│   ├── EchoType.entitlements
│   └── AppIcon.icns
├── Tests/
├── scripts/
├── Package.swift
└── Makefile

Permissions

Permission Why
Microphone Capture audio for voice transcription
Accessibility Inject text into the focused app via CGEvent
Input Monitoring Listen for global hotkeys

The app guides you through granting these on first launch.


Architecture

Voice Typing Pipeline

Microphone
    ↓
AVAudioEngine  (PCM buffer capture)
    ↓
WhisperKit     (on-device Whisper inference, Apple Silicon)
    ↓
Text output
    ↓
CGEvent injection  (typed into active window)

Clipboard Pipeline

NSPasteboard (polled every 300ms)
    ↓
ClipboardMonitor  (filters password managers, deduplicates)
    ↓
ClipboardStore    (SQLite-backed, 200 item limit, pinned items)
    ↓
⌘ Shift V  →  ClipboardPalette  (fuzzy search + keyboard nav)
    ↓
CGEvent / Pasteboard injection

Key technical choices:

  • Hotkey: NSEvent.addGlobalMonitorForEvents — avoids deprecated Carbon APIs
  • Transcription: WhisperKit via argmax-oss-swift — multiple model sizes, 100% offline
  • Clipboard storage: SQLite via custom ClipboardDatabase — persists across launches
  • No App Sandbox: CGEvent injection and global monitors are incompatible with sandboxing

Roadmap

v1 (current — free)

  • Global push-to-talk voice typing
  • WhisperKit on-device transcription
  • CGEvent system-wide text injection
  • Floating voice status overlay
  • Clipboard manager with persistent SQLite history
  • Fuzzy clipboard search
  • Pinned clipboard items
  • Image + file clipboard support
  • Password manager exclusion

v1.5

  • Streaming transcription (text appears while speaking)
  • Smart voice commands ("new paragraph", "delete last sentence")
  • AI cleanup pass (auto-capitalisation, punctuation)

v2

  • Rewrite modes (Professional / Concise / Friendly)
  • Context-aware formatting (coding vs email vs chat)
  • Custom vocabulary

Contributing

Contributions are welcome! See CONTRIBUTING.md.


License

MIT — see LICENSE.

About

AI-powered push-to-talk voice typing for macOS — on-device Whisper transcription, works everywhere

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages