Skip to main content

Installer for VoiceMode - handles system dependencies and installation

Project description

voice-mode-install

A standalone installer package for VoiceMode that handles system dependency detection and installation.

Overview

voice-mode-install simplifies the VoiceMode installation process by:

  1. Detecting your platform - Identifies your OS, distribution, and architecture
  2. Checking dependencies - Scans for required system packages
  3. Installing packages - Uses your system's package manager (apt, dnf, brew)
  4. Installing VoiceMode - Runs uv tool install voice-mode
  5. Hardware recommendations - Suggests optimal configuration for your system
  6. Logging everything - Saves installation logs for troubleshooting

Quick Start

# Install and run
uvx voice-mode-install

# Dry run (see what would be installed)
uvx voice-mode-install --dry-run

# Install specific version
uvx voice-mode-install --voice-mode-version=5.1.3

# Skip service installation
uvx voice-mode-install --skip-services

# Non-interactive mode
uvx voice-mode-install --non-interactive

Prerequisites

  • uv - Required to run the installer (curl -LsSf https://astral.sh/uv/install.sh | sh)
  • Python 3.10+ - Usually pre-installed on modern systems
  • sudo access - Needed to install system packages (Linux)
  • Homebrew (macOS) - The installer will offer to install it if missing

Supported Platforms

  • macOS - Intel and Apple Silicon (via Homebrew)
  • Ubuntu/Debian - Using apt package manager
  • Fedora/RHEL - Using dnf package manager

Features

Phase 1 (Included)

Dry-run Mode - Preview what will be installed ✅ Installation Logging - Detailed logs saved to ~/.voicemode/install.logShell Completion - Auto-configures tab completion for bash/zsh ✅ Health Check - Verifies installation after completion ✅ Version Pinning - Install specific VoiceMode versions ✅ Hardware Detection - Recommends optimal setup for your system ✅ Homebrew Auto-Install - Offers to install Homebrew on macOS if missing

Phase 2 (Future)

⏱️ Config Validation - Check for conflicting settings ⏱️ Uninstall Support - Clean removal of VoiceMode

How It Works

  1. Platform Detection - Identifies OS, distribution, and architecture
  2. Dependency Checking - Compares installed packages against dependencies.yaml
  3. Package Manager Setup (macOS only) - Checks for Homebrew and offers to install if missing
  4. Package Installation - Uses platform-specific package managers:
    • macOS: brew install (installs Homebrew first if needed)
    • Ubuntu/Debian: sudo apt install
    • Fedora: sudo dnf install
  5. VoiceMode Installation - Runs uv tool install voice-mode[==version]
  6. Post-Install - Configures shell completion and verifies installation

Installation Logs

Logs are saved to ~/.voicemode/install.log in JSONL format:

{"timestamp": "2025-10-12T10:30:00", "type": "start", "message": "Installation started"}
{"timestamp": "2025-10-12T10:30:15", "type": "check", "message": "Checked core dependencies"}
{"timestamp": "2025-10-12T10:30:45", "type": "install", "message": "Successfully installed system packages"}
{"timestamp": "2025-10-12T10:31:30", "type": "complete", "message": "Installation completed"}

Troubleshooting

VoiceMode command not found after installation

Restart your shell or run:

source ~/.bashrc  # or ~/.zshrc for zsh

Permission denied during package installation

The installer needs sudo access to install system packages. Run:

sudo -v  # Refresh sudo credentials
uvx voice-mode-install

Network errors during installation

  • Check your internet connection
  • Try again with: uvx voice-mode-install
  • Use uvx --refresh voice-mode-install to get the latest installer

Installation hangs or fails

  1. Check the log file: ~/.voicemode/install.log
  2. Try a dry run: uvx voice-mode-install --dry-run
  3. Report issues with log file attached

Development

Building from Source

cd installer/
uv build

Testing Locally

cd installer/
uv pip install -e .
voice-mode-install --dry-run

Project Structure

installer/
├── pyproject.toml          # Package definition
├── voicemode_install/
│   ├── __init__.py        # Version and exports
│   ├── cli.py             # Main CLI entry point
│   ├── system.py          # Platform detection
│   ├── checker.py         # Dependency checking
│   ├── installer.py       # Package installation
│   ├── hardware.py        # Hardware detection
│   ├── logger.py          # Installation logging
│   └── dependencies.yaml  # System dependencies
└── README.md

Design Decisions

See DECISIONS.md in the task directory for detailed rationale behind:

  • Version management strategy
  • Dependency synchronization approach
  • Error handling philosophy
  • Platform coverage priorities
  • Service installation scope

Contributing

This installer is part of the VoiceMode project.

License

MIT License - Same as VoiceMode

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

voice_mode_install-8.0.7.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

voice_mode_install-8.0.7-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file voice_mode_install-8.0.7.tar.gz.

File metadata

  • Download URL: voice_mode_install-8.0.7.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for voice_mode_install-8.0.7.tar.gz
Algorithm Hash digest
SHA256 d08abe30ccd35aa869bfb96de2033caa6709aec11c44d27c0b11bbca950b661f
MD5 e36ba20d4157bc474c122abbec4bbbe9
BLAKE2b-256 e79f5b257661bfb5719819de0b0a9a7b6f4fe46fdb4af87c634e6c1b14b72073

See more details on using hashes here.

Provenance

The following attestation bundles were made for voice_mode_install-8.0.7.tar.gz:

Publisher: publish-pypi-and-mcp.yml on mbailey/voicemode

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file voice_mode_install-8.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for voice_mode_install-8.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3d4d2625f28a58420ca43681792f5a46f5ca92b1d1d4e6909c41e35635929c65
MD5 5e49c2b5d39fcadc7814c414b5ec4c85
BLAKE2b-256 ee34bcca0e27d9d6a257618ca53ffaf2af9e6c032fc04451e9ab9543bed73836

See more details on using hashes here.

Provenance

The following attestation bundles were made for voice_mode_install-8.0.7-py3-none-any.whl:

Publisher: publish-pypi-and-mcp.yml on mbailey/voicemode

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page