Push-to-talk voice conversations powered by Whisper and Claude Code
Project description
MicroClaw Streams
Voice calls with Claude – talk it out. Voice in, voice out. Push-to-talk voice conversations powered by Whisper and Claude Code.
Whisper runs entirely on your machine — no audio is sent to the cloud. Only the transcribed text is sent to Claude.
Just three dependencies: numpy, sounddevice, and openai-whisper.
Setup
pip install microclaw-streams
Requires macOS (uses the built-in say command) and Claude Code to be installed and authenticated.
Usage
microclaw-streams
microclaw-streams --model turbo
microclaw-streams --resume <session-id>
microclaw-streams -l sv -e high
Options
| Flag | Description | Default |
|---|---|---|
-m, --model |
Whisper model size (tiny, base, small, medium, large, turbo) |
base |
-l, --language |
Transcription language (e.g. en, sv, de) |
auto |
-e, --effort |
Claude effort level (low, medium, high, max) |
low |
-r, --resume |
Resume a previous Claude Code session by its session ID | — |
--fp16 |
Use half-precision inference (requires CUDA GPU) | off |
Any additional flags you pass are forwarded directly to the claude CLI. For example:
microclaw-streams --max-turns 5 --permission-mode plan --model turbo
Here --model turbo is consumed by MicroClaw (Whisper model), while --max-turns 5 and --permission-mode plan are passed through to Claude Code. See claude --help for all available options.
Controls
| Key | Action |
|---|---|
Enter |
Start/stop recording |
A |
Record with auto-approve (allows edits, writes, bash) |
W |
Record with web search enabled |
T |
Type a message instead of speaking |
E |
Cycle effort level |
L |
Cycle transcription language |
Space |
Interrupt speech output |
How it works
- Record — Press Enter to start recording, press Enter again to stop
- Transcribe — Whisper transcribes your speech locally
- Respond — Claude Code processes your message and streams a response
- Speak — Voice output is spoken via macOS
saycommand
Requirements
- macOS (uses
sayfor text-to-speech) - Python 3.10+
- Claude Code CLI
Example Conversation
Loading Whisper 'turbo' model locally (no audio leaves your machine)...
Ready!
ENTER=record A=auto-approve T=manually type input E=effort [low] L=lang [auto]
Recording ... press ENTER to stop.
Transcribing...
You: Hey what's up how come we have a bunch of html files in this repo?
Voice: Let me take a quick look at what HTML files are in the repo.
[Glob **/*.html]
[Glob result]
index.html
demo.html
Voice: Actually, there are only two HTML files — an **index.html** and a **demo.html**. Not really a bunch. Want me to look into what they're for?
[5.5s | 4 in | 123 out | 10254 cached | $0.0729]
ENTER=record A=auto-approve T=manually type input E=effort [low] L=lang [auto]
Recording ... press ENTER to stop.
Transcribing...
You: Yup, for sure.
Voice: Sure, let me check them out.
[Read /home/user/index.html]
[Read result]
Claude requested permissions to read from /home/user/index.html, but you haven't granted it yet.
[Read /home/user/demo.html]
[Read result]
Claude requested permissions to read from /home/user/demo.html, but you haven't granted it yet.
Voice: Hmm, looks like I need permission to read those files. Could you grant me access?
[6.4s | 4 in | 147 out | 20759 cached | $0.0158]
ENTER=record A=auto-approve T=manually type input E=effort [low] L=lang [auto]
Recording (auto-approve ON) ... press ENTER to stop.
Transcribing...
You: Here you go.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file microclaw_streams-0.1.2.tar.gz.
File metadata
- Download URL: microclaw_streams-0.1.2.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65c98a3bc50a0843a487b0f47c4360dfe47b678fe5f017e8c9bee1aa3fa7553c
|
|
| MD5 |
091a3a75cb8602a34d5255f723651cdd
|
|
| BLAKE2b-256 |
cc9a6b0f4c8bfa660715d41a95c9bd8e71d922cb0e64f233ba209431d1697bc1
|
File details
Details for the file microclaw_streams-0.1.2-py3-none-any.whl.
File metadata
- Download URL: microclaw_streams-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bf878b1eb251281788fc5513683720c62a5b2f820c5e8d24f0d47362105aa5b
|
|
| MD5 |
36d9033c8f550f7a3b26b1925774783d
|
|
| BLAKE2b-256 |
312e3ab2e6971f219f4eb6bdafae49c0c8fb4022a16222bea12b749b0ad9d986
|