docs: update README with flexible LLM configuration and environment variable support
This commit is contained in:
parent
83d845284d
commit
4b3eea54f7
1 changed files with 142 additions and 4 deletions
146
README.md
146
README.md
|
|
@ -1,7 +1,145 @@
|
||||||
# Tauri + React + Typescript
|
# Handy App
|
||||||
|
|
||||||
This template should help get you started developing with Tauri, React and Typescript in Vite.
|
A user-friendly desktop application that makes the [Handy voice assistant](https://github.com/cjpais/handy) more accessible and easier to distribute. This app provides a native interface for voice-controlled AI interactions, making it simple for users to get started without dealing with Python setup.
|
||||||
|
|
||||||
## Recommended IDE Setup
|
## Core Purpose
|
||||||
|
|
||||||
- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
|
- 📦 Make Handy easily distributable and installable for everyone
|
||||||
|
- 🎯 Provide the same powerful voice-controlled AI capabilities as the CLI version
|
||||||
|
- 🧠 Support flexible LLM configuration (local or remote)
|
||||||
|
- ⚙️ Offer simple configuration for keyboard shortcuts
|
||||||
|
- 🪟 Enable floating windows for AI chat interactions
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
### V1 (Primary Focus)
|
||||||
|
- 🎙️ Voice-to-text transcription using MLX Whisper
|
||||||
|
- 🤖 Flexible AI model support:
|
||||||
|
- Remote APIs (OpenRouter, OpenAI, Anthropic, etc.)
|
||||||
|
- Local models (llama.cpp, MLX models, etc.)
|
||||||
|
- Custom API endpoints
|
||||||
|
- 💬 Floating chat windows for AI interactions
|
||||||
|
- ⚡ Native desktop app experience
|
||||||
|
- ⚙️ User-friendly configuration UI
|
||||||
|
|
||||||
|
### Future Enhancements
|
||||||
|
- 📋 Smart clipboard management for context
|
||||||
|
- 📸 Screenshot capabilities
|
||||||
|
- 🔄 MCP provider functionality
|
||||||
|
- 📝 Extended context window management
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- macOS (currently macOS-only)
|
||||||
|
- Internet connection for remote AI services (optional)
|
||||||
|
- API keys for remote services (optional)
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
1. Download the latest release from the releases page
|
||||||
|
2. Install the application
|
||||||
|
3. Launch and grant necessary permissions
|
||||||
|
4. Configure your AI preferences:
|
||||||
|
- Use existing environment variables if set
|
||||||
|
- Configure through UI:
|
||||||
|
- Select local or remote models
|
||||||
|
- Add API keys if needed
|
||||||
|
- Customize model parameters
|
||||||
|
5. Start using voice commands with the default shortcuts!
|
||||||
|
|
||||||
|
## Environment Variables
|
||||||
|
|
||||||
|
The app automatically detects and uses common environment variables:
|
||||||
|
```bash
|
||||||
|
# Remote API Keys
|
||||||
|
OPENAI_API_KEY=your_openai_key
|
||||||
|
OPENROUTER_API_KEY=your_openrouter_key
|
||||||
|
ANTHROPIC_API_KEY=your_anthropic_key
|
||||||
|
|
||||||
|
# Model Configuration
|
||||||
|
DEFAULT_MODEL=gpt-4 # Example model choice
|
||||||
|
MODEL_BASE_URL=http://localhost:8080 # For custom API endpoints
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
The app allows you to configure:
|
||||||
|
- AI Model Settings:
|
||||||
|
- Model provider (local or remote)
|
||||||
|
- API endpoints and keys
|
||||||
|
- Model parameters (temperature, context length, etc.)
|
||||||
|
- Keyboard shortcuts
|
||||||
|
- Window preferences for AI chat
|
||||||
|
- Transcription settings
|
||||||
|
|
||||||
|
## Development Setup
|
||||||
|
|
||||||
|
1. Clone the repository:
|
||||||
|
```bash
|
||||||
|
git clone [repository-url]
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Install dependencies:
|
||||||
|
```bash
|
||||||
|
# Using npm
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# Or using Bun
|
||||||
|
bun install
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Run the development version:
|
||||||
|
```bash
|
||||||
|
npm run tauri dev
|
||||||
|
# or
|
||||||
|
bun run tauri dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
- **Frontend**: React + TypeScript for the user interface
|
||||||
|
- **Backend**: Rust-based Tauri for system integration
|
||||||
|
- **Key Plugins**:
|
||||||
|
- `@tauri-apps/plugin-global-shortcut`: Keyboard shortcut management
|
||||||
|
- `tauri-plugin-macos-permissions-api`: System permissions
|
||||||
|
- `@tauri-apps/plugin-window`: Multi-window management
|
||||||
|
|
||||||
|
## Comparison with CLI Version
|
||||||
|
|
||||||
|
This desktop app provides the same core functionality as the [original Handy CLI](https://github.com/cjpais/handy) but with these improvements:
|
||||||
|
- No Python setup required
|
||||||
|
- Easy installation process
|
||||||
|
- Native desktop experience
|
||||||
|
- Configurable through UI
|
||||||
|
- Floating chat windows
|
||||||
|
- More flexible LLM configuration
|
||||||
|
- Future support for visual features
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Contributions are welcome! The priority is currently on:
|
||||||
|
1. Core functionality parity with CLI version
|
||||||
|
2. Installation and configuration experience
|
||||||
|
3. Chat window implementation
|
||||||
|
4. Model configuration interface
|
||||||
|
|
||||||
|
## Roadmap
|
||||||
|
|
||||||
|
### V1
|
||||||
|
- [ ] Core voice-to-text functionality
|
||||||
|
- [ ] Flexible AI model integration
|
||||||
|
- [ ] Settings configuration
|
||||||
|
- [ ] Easy installation process
|
||||||
|
- [ ] Environment variable support
|
||||||
|
|
||||||
|
### Future
|
||||||
|
- [ ] Basic chat windows
|
||||||
|
- [ ] Clipboard management integration
|
||||||
|
- [ ] Screenshot capabilities
|
||||||
|
- [ ] MCP provider functionality
|
||||||
|
- [ ] Extended context management
|
||||||
|
- [ ] Multiple chat window layouts
|
||||||
|
|
||||||
|
## Related Projects
|
||||||
|
|
||||||
|
- [Handy CLI](https://github.com/cjpais/handy) - The original command-line interface version
|
||||||
Loading…
Reference in a new issue