Metadata-Version: 2.4
Name: claude-purr
Version: 0.1.2
Summary: Local dictation backend for Claude Code (macOS, Apple Silicon) — on-device Whisper, "Hey Claude" wake word, @-file tagging, voice daemon.
Author: DKS-Analytics GmbH
License: MIT
Project-URL: Homepage, https://www.dks-analytics.de
Project-URL: Repository, https://github.com/fabian-pandas/claude_purr
Requires-Python: <3.14,>=3.10
Description-Content-Type: text/markdown
Requires-Dist: sounddevice>=0.4.6
Requires-Dist: numpy>=1.26
Requires-Dist: pynput>=1.7.7
Requires-Dist: requests>=2.31
Requires-Dist: flask>=3.0
Requires-Dist: openwakeword>=0.6
Requires-Dist: onnxruntime>=1.20
Requires-Dist: webrtcvad-wheels>=2.0
Requires-Dist: pyobjc-framework-Quartz>=10.0
Requires-Dist: pyobjc-framework-Cocoa>=10.0
Provides-Extra: mlx
Requires-Dist: mlx-whisper>=0.4.0; extra == "mlx"
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == "dev"

# claude_purr — "Hey Claude" voice for Claude Code

Hands-free voice control for **Claude Code** on macOS (Apple Silicon). Say
**"Hey Claude"**, speak, and your words land in the Claude Code prompt — spoken
filenames become `@file` mentions. Fully **on-device** (WhisperKit on the Apple
Neural Engine); nothing leaves your Mac.

## Install
1. Install the **claude_purr** extension in VS Code or Cursor.
2. Install the backend once (pins Python 3.12 — required for the on-device deps):
   ```
   brew install whisperkit-cli pipx python@3.12
   pipx install claude-purr --python $(brew --prefix python@3.12)/libexec/bin/python
   ```
3. Reload the editor and grant **Microphone** permission. The first run downloads
   the WhisperKit speech model (one time).

## Use
Open a terminal, start `claude`, then say **"Hey Claude …"**. An overlay shows the
state — blue listening, red recording, green sent. Click **`claude_purr`** in the
status bar to pause, stop, or restart.

## Voice commands
While dictating, say an English keyword to act on the prompt (works in any dictation
language):
- **"command enter"** — send the prompt to Claude Code
- **"command paste"** — insert the clipboard contents
- **"command delete"** — clear the whole prompt

The trigger word is `command`, e.g. *"… make it safer command paste and test it
command enter"*.

## How it works
Wake word → on-device transcription → `@`-file tagging → the extension types the
command into the active Claude Code terminal. A local daemon owns the microphone and
the warm model; the extension starts and manages it.

Diagnostics: `claude-purr --doctor`.

---

**claude_purr** — by **DKS-Analytics GmbH** · [www.dks-analytics.de](https://www.dks-analytics.de)
