SkillAgentSearch skills...

Voiceterm

Low-latency Rust terminal overlay for Codex and Claude Code with local Whisper STT, PTY passthrough, wake words, macros, memory tools, and a customizable HUD.

Install / Use

/learn @jguida941/Voiceterm

README

<p align="center"> <img src="img/logo-hero-transparent.png" alt="VoiceTerm" width="740"> </p> <p align="center"> <img src="https://img.shields.io/badge/Rust-stable?style=flat&logo=rust&logoColor=white&labelColor=7C422B&color=2D2F34&logoSize=auto" alt="Rust"> <img src="https://img.shields.io/badge/macOS-supported?style=flat&logo=apple&logoColor=white&labelColor=7C422B&color=2D2F34&logoSize=auto" alt="macOS"> <img src="https://img.shields.io/badge/Linux-supported?style=flat&logo=linux&logoColor=white&labelColor=7C422B&color=2D2F34&logoSize=auto" alt="Linux"> <img src="https://img.shields.io/static/v1?label=Whisper&message=local&style=flat&labelColor=7C422B&color=2D2F34" alt="Whisper"> <a href="https://ratatui.rs"><img src="https://img.shields.io/badge/Ratatui-native?style=flat&logo=ratatui&logoColor=white&labelColor=7C422B&color=2D2F34&logoSize=auto" alt="Ratatui"></a> </p> <p align="center"> <a href="https://github.com/jguida941/voiceterm/releases"><img src="https://img.shields.io/github/v/tag/jguida941/voiceterm?sort=semver&style=flat&label=release&labelColor=7C422B&color=2D2F34" alt="VoiceTerm Version"></a> <a href="LICENSE"><img src="https://img.shields.io/static/v1?label=license&message=MIT&style=flat&labelColor=7C422B&color=2D2F34" alt="MIT License"></a> <a href="https://github.com/jguida941/voiceterm/actions/workflows/rust_ci.yml"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jguida941/voiceterm/master/.github/badges/ci-status.json&style=flat&label=ci&labelColor=7C422B&color=2D2F34&logo=github&logoColor=white&logoSize=auto" alt="CI"></a> <a href="https://github.com/jguida941/voiceterm/actions/workflows/rust_ci.yml"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jguida941/voiceterm/master/.github/badges/clippy-warnings.json&style=flat&label=clippy&labelColor=7C422B&color=2D2F34&logo=rust&logoColor=white&logoSize=auto" alt="Clippy Warnings"></a> <a href="https://github.com/jguida941/voiceterm/actions/workflows/mutation-testing.yml"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jguida941/voiceterm/master/.github/badges/mutation-score.json&style=flat&label=mutation&labelColor=7C422B&color=2D2F34&logo=github&logoColor=white&logoSize=auto" alt="Mutation Score"></a> <a href="https://codecov.io/gh/jguida941/voiceterm"><img src="https://img.shields.io/codecov/c/github/jguida941/voiceterm?style=flat&label=coverage&labelColor=7C422B&color=2D2F34&logo=codecov&logoColor=white&logoSize=auto" alt="Coverage"></a> </p>

VoiceTerm is a voice-first terminal overlay for Codex and Claude. Gemini preset support remains experimental and is currently nonfunctional. It runs Whisper on your machine and types what you say into your existing CLI. Your tools still run in a normal PTY; VoiceTerm just adds a HUD on top. Use push-to-talk or wake phrases (hey codex, hey claude), then say send / submit for hands-free delivery.

Whisper runs locally by default. No cloud API keys required. Release history: dev/CHANGELOG.md.

Quick Nav

Install and Start

Install one supported AI CLI first:

Codex:

npm install -g @openai/codex

Claude Code:

curl -fsSL https://claude.ai/install.sh | bash

Then choose one VoiceTerm setup path:

<details open> <summary><strong>Homebrew (recommended)</strong></summary>
brew tap jguida941/voiceterm
brew install voiceterm
cd ~/your-project
voiceterm

If needed, authenticate once:

voiceterm --login --codex
voiceterm --login --claude
</details> <details> <summary><strong>PyPI (pipx / pip)</strong></summary>
pipx install voiceterm
# or: python3 -m pip install --user voiceterm

cd ~/your-project
voiceterm

If needed, authenticate once:

voiceterm --login --codex
voiceterm --login --claude
</details> <details> <summary><strong>From source</strong></summary>

Requires Rust toolchain. See Install Guide for details.

git clone https://github.com/jguida941/voiceterm.git
cd voiceterm
./scripts/install.sh

If you are running from source while developing, run:

python3 dev/scripts/devctl.py check --profile ci
</details> <details> <summary><strong>macOS App</strong></summary>

Double-click app/macos/VoiceTerm.app, pick a folder, and it opens Terminal with VoiceTerm running.

</details>

For model options and startup/IDE tuning:

How It Works

VoiceTerm listens to your mic, converts speech to text on your machine, and types the result into your AI CLI input.

Recording

Requirements

  • macOS or Linux (Windows needs WSL2)
  • Microphone access
  • ~0.5 GB disk for the default small model (base is ~142 MB, medium is ~1.5 GB)

Features

Main features

| Feature | What it does | |---------|---------------| | Local speech-to-text | Whisper runs on your machine (no cloud calls) | | Fast voice-to-text | Local Whisper turns speech into text quickly | | Keep your CLI as-is | Your backend CLI layout and behavior stay the same | | Auto voice mode | Keep listening on so you can talk instead of typing | | Wake mode + voice send | Say hey codex/hey claude, then say send/submit in insert mode | | Image prompts | Use Ctrl+X for one-shot screenshot prompts, or enable persistent image mode for HUD [rec] (IMG badge) | | Transcript queue | If the CLI is busy, VoiceTerm waits and sends text when ready | | Codex + Claude support | Primary support for Codex and Claude Code |

Everyday tools

  • Voice macros: expand phrases from .voiceterm/macros.yaml (toggle in Settings)
  • Voice navigation: spoken scroll, send, show last error, copy last error, explain last error
  • Dev mode tools: launch with --dev first (look for DEV badge), then use Ctrl+D for Dev panel tools; add --dev-log for JSONL diagnostics
  • Prompt-safe HUD: VoiceTerm suppresses HUD rows for high-confidence Codex/Claude approval prompts and fences PTY scrolling above the HUD so the active input row stays visible
  • Latency clarity: latency badges show completed-turn STT timing and hide while actively recording/processing
  • Transcript history: Ctrl+H to search and replay past text
  • Notification history: Ctrl+N to review recent status messages
  • Saved settings: stored in ~/.config/voiceterm/config.toml
  • Built-in themes: 11 themes including ChatGPT, Catppuccin, Dracula, Nord, Tokyo Night, and Gruvbox
  • Style-pack border settings: VOICETERM_STYLE_PACK_JSON supports components.overlay_border and components.hud_border (HUD applies when border mode is theme)

For full behavior details and controls, see guides/USAGE.md.

Important: if you did not launch with --dev, Ctrl+D is forwarded to the wrapped CLI as EOF (0x04) and can close/exit that CLI session.

Dev panel usage guide: guides/DEV_MODE.md

Supported AI CLIs

VoiceTerm is optimized for Codex and Claude Code. For full backend status and setup details, see Usage Guide -> Backend Support.

Codex

Use the same workflow and controls documented for backend support in guides/USAGE.md.

Claude Code

Claude Backend

IDE Support

Active verified hosts are Cursor terminal and JetBrains terminals. AntiGravity is deferred and not supported in current releases.

| IDE host | Codex | Claude Code | Status | |---|---|---|---| | Cursor terminal | Fully supported | Fully supported | Recommended primary host | | JetBrains terminals (IntelliJ, PyCharm, WebStorm, CLion) | Fully supported | Fully supported | Supported on current release; see troubleshooting for rare host-specific edge cases | | AntiGravity | Not supported | Not supported | Deferred until runtime fingerprint evidence exists (not supported in current releases) | | Other IDE terminals | Unverified | Unverified | Treat as experimental until listed here |

JetBrains + Claude rare edge case (long parallel turns): after very long parallel tool calls or parallel web-search turns, HUD/transcript overlap can appear at turn completion. Quick workaround: resize the terminal once (even by 1 row/column) to force layout recalculation. During these high-churn turns, VoiceTerm already applies a single-line full-HUD fallback for JetBrains+Claude to keep controls reachable while redraw settles. Details: Troubleshooting -> JetBrains + Claude overlay overlap after long parallel output.

Canonical matrix: Usage Guide -> IDE Compatibility.

Hands-Free Quick Start

voiceterm --auto-voice --wake-word --voice-send-mode insert

Think of this like Alexa for your terminal:

  1. Say the wake phrase (hey codex or hey claude)
  2. Speak your prompt
  3. Say send (or submit)

UI Tour

Theme Picker

Theme Picker Press Ctrl+Y to open Theme Studio and choose Theme picker. Use Ctrl+G to cycle themes quickly. Use Tab / Shift+Tab to move between Theme Studio pages (Home, Colors, Borders, Components, Preview, Export). For editor details, see Themes. For theme-file flags/env vars, see CLI Flags.

Settings Menu

![Set

View on GitHub
GitHub Stars12
CategoryDevelopment
Updated18h ago
Forks0

Languages

Rust

Security Score

95/100

Audited on Apr 6, 2026

No findings