# AbstractAssistant 🤖
Philosophy : *your AI assistant, always here and available in one click*
A sleek macOS system tray application providing instant access to Large Language Models with a modern Qt-based interface. Built with Python and powered by [AbstractCore](https://github.com/lpalbou/abstractcore) and [AbstractVoice](https://github.com/lpalbou/abstractvoice).
## 📦 Installation & Links
- **📋 GitHub Repository**: [https://github.com/lpalbou/abstractassistant](https://github.com/lpalbou/abstractassistant)
- **🐍 PyPI Package**: [https://pypi.org/project/abstractassistant/](https://pypi.org/project/abstractassistant/)
- **📚 Documentation**: See [docs/](docs/) folder for detailed guides
## ✨ Features
- **🎯 System Tray Integration**: Quick access from macOS menu bar - always at your fingertips
- **💬 Modern Qt Interface**: Clean, iPhone Messages-style chat bubble with dark theme
- **🔊 Voice Support**: Text-to-Speech integration with [AbstractVoice](https://github.com/lpalbou/abstractvoice) for conversational AI
- **🔄 Multi-Provider Support**: Seamlessly switch between LMStudio, Ollama, OpenAI, Anthropic, MLX, HuggingFace via [AbstractCore](https://github.com/lpalbou/abstractcore)
- **📊 Real-time Status**: Live token counting, provider/model selection, and animated status indicators
- **💾 Session Management**: Save, load, and view conversation history with markdown rendering
- **⚙️ Smart Controls**: Provider/model dropdowns, TTS toggle, and session buttons
- **🎨 Professional Design**: Rounded corners, smooth animations, and native macOS feel
## 🚀 Quick Start
### 1. Installation
#### 🍎 macOS Users (Recommended)
```bash
# Enhanced installation with Dock integration
python3 install.py
```
This will:
- Install AbstractAssistant from PyPI
- Create a macOS app bundle in `/Applications`
- Add AbstractAssistant to your Dock for easy access
**Alternative**: After installation, create the app bundle manually:
```bash
pip install abstractassistant
create-app-bundle
```
#### 🔧 Standard Installation
```bash
# Install from PyPI
pip install abstractassistant
```
For detailed installation instructions including prerequisites and voice setup, see **[📖 Installation Guide](docs/installation.md)**.
### 2. First Launch
#### 🍎 macOS App Bundle Users
- **Dock**: Click the AbstractAssistant icon in your Dock
- **Spotlight**: Search for "AbstractAssistant" and press Enter
- **Finder**: Open `/Applications/AbstractAssistant.app`
#### 🔧 Terminal Users
```bash
# Launch the assistant
assistant
# Create macOS app bundle after installation
create-app-bundle
```
### 3. Start Using
1. **Find the Icon**: Look for AbstractAssistant in your macOS menu bar (top-right)
2. **Click to Open**: Click the icon to open the chat bubble
3. **Start Chatting**: Type your message and send!
For a complete walkthrough of all features, see **[🎯 Getting Started Guide](docs/getting-started.md)**.
### 📋 Prerequisites
- **macOS**: 10.14+ (Mojave or later)
- **Python**: 3.9+
- **Models**: Local (LMStudio/Ollama) or API keys (OpenAI/Anthropic)
See **[⚙️ Installation Guide](docs/installation.md)** for detailed setup instructions.
## 🎮 Usage Overview
AbstractAssistant provides a clean, intuitive interface for AI conversations:
### 🖱️ Main Interface
- **Chat Bubble**: Modern iPhone Messages-style interface
- **Provider/Model Selection**: Easy switching between AI providers
- **Voice Support**: Optional text-to-speech for responses
- **Session Management**: Save, load, and view conversation history
### 🎙️ Voice Features
- **Text-to-Speech**: Powered by [AbstractVoice](https://github.com/lpalbou/abstractvoice)
- **High-Quality Speech**: Natural-sounding voice synthesis
- **Simple Controls**: One-click enable/disable
### 🔧 System Integration
- **System Tray**: Always accessible from macOS menu bar
- **Native Feel**: Designed for macOS with smooth animations
- **Lightweight**: Minimal resource usage when idle
**👉 For detailed usage instructions, see [🎯 Getting Started Guide](docs/getting-started.md)**
## ⚙️ Configuration
Create a `config.toml` file to customize settings:
```toml
[ui]
theme = "dark"
always_on_top = true
[llm]
default_provider = "lmstudio"
default_model = "qwen/qwen3-next-80b"
max_tokens = 128000
temperature = 0.7
[system_tray]
icon_size = 64
```
### API Keys Setup
Set your API keys as environment variables:
```bash
# For OpenAI
export OPENAI_API_KEY="your_openai_key_here"
# For Anthropic
export ANTHROPIC_API_KEY="your_anthropic_key_here"
# For local models (LMStudio, Ollama), no API key needed
```
## 🏗️ Architecture
AbstractAssistant is built on a modern, modular architecture:
- **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM provider interface
- **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: High-quality text-to-speech engine
- **Qt Interface**: Cross-platform GUI (PyQt5/PySide2/PyQt6 support)
- **System Integration**: Native macOS system tray with `pystray`
- **Session Management**: Persistent conversation history and settings
**👉 For technical details, see [🏗️ Architecture Guide](docs/architecture.md)**
## 🔧 Development
### Running from Source
```bash
# Clone the repository
git clone https://github.com/lpalbou/abstractassistant.git
cd abstractassistant
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install in development mode
pip install -e .
# Run with debug mode
assistant --debug
```
### Project Structure
```
abstractassistant/
├── pyproject.toml # Package configuration
├── requirements.txt # Dependencies
├── config.toml # Default configuration
├── abstractassistant/ # Main package
│ ├── cli.py # CLI entry point
│ ├── app.py # Main application
│ ├── config.py # Configuration management
│ ├── core/ # Business logic
│ │ ├── llm_manager.py # LLM provider management
│ │ └── tts_manager.py # Voice/TTS integration
│ ├── ui/ # User interface
│ │ ├── qt_bubble.py # Main Qt chat interface
│ │ └── toast_window.py # Notification system
│ └── utils/ # Utilities
│ ├── icon_generator.py # Dynamic icon creation
│ └── markdown_renderer.py # Markdown processing
└── docs/ # Documentation
├── ARCHITECTURE.md # Technical documentation
├── INSTALLATION.md # Installation guide
└── USAGE.md # Usage guide
```
## 🌟 Why AbstractAssistant?
- **🎯 Focused**: Designed specifically for quick AI interactions
- **🎨 Beautiful**: Modern Qt interface with native macOS feel
- **⚡ Fast**: Instant access without opening heavy applications
- **🔄 Flexible**: Support for multiple AI providers in one interface
- **🛡️ Robust**: Built with error handling and graceful fallbacks
- **📱 Unobtrusive**: Lives quietly in your menu bar until needed
- **🔊 Conversational**: Optional voice mode for natural AI interactions
## 📚 Documentation
| Guide | Description |
|-------|------------|
| [📖 Installation Guide](docs/installation.md) | Complete setup instructions, prerequisites, and troubleshooting |
| [🎯 Getting Started Guide](docs/getting-started.md) | Step-by-step usage guide with all features explained |
| [🏗️ Architecture Guide](docs/architecture.md) | Technical documentation and development information |
## 📋 Requirements
- **macOS**: 10.14+ (Mojave or later)
- **Python**: 3.9+
- **Qt Framework**: PyQt5, PySide2, or PyQt6 (automatically detected)
- **Dependencies**: [AbstractCore](https://github.com/lpalbou/abstractcore) and [AbstractVoice](https://github.com/lpalbou/abstractvoice) (automatically installed)
## 🤝 Contributing
Contributions welcome! Please read the architecture documentation and follow the established patterns:
- **Clean Code**: Follow PEP 8 and use type hints
- **Modular Design**: Keep components focused and reusable
- **Modern UI/UX**: Maintain the sleek, native feel
- **Error Handling**: Always include graceful fallbacks
- **Documentation**: Update docs for any new features
## 📄 License
MIT License - see LICENSE file for details.
## 🙏 Acknowledgments
AbstractAssistant is built on excellent open-source projects:
### Core Dependencies
- **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM interface - enables seamless multi-provider support
- **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: High-quality text-to-speech engine with natural voice synthesis
### Framework & UI
- **[PyQt5/PySide2/PyQt6](https://www.qt.io/)**: Cross-platform GUI framework for the modern interface
- **[pystray](https://github.com/moses-palmer/pystray)**: Cross-platform system tray integration
- **[Pillow](https://python-pillow.org/)**: Image processing for dynamic icon generation
### Part of the AbstractX Ecosystem
AbstractAssistant integrates seamlessly with other AbstractX projects:
- 🧠 **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM provider interface
- 🗣️ **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: Advanced text-to-speech capabilities
See [ACKNOWLEDGMENTS.md](ACKNOWLEDGMENTS.md) for complete attribution.
---
**Built with ❤️ for macOS users who want AI at their fingertips**
Raw data
{
"_id": null,
"home_page": null,
"name": "abstractassistant",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "ai, llm, macos, system-tray, assistant",
"author": null,
"author_email": "Laurent-Philippe Albou <contact@abstractcore.ai>",
"download_url": "https://files.pythonhosted.org/packages/75/cb/b6b7bc0b5c3ebaeab5a0173be466cfc6746dcc912fbdbcb696bac5685784/abstractassistant-0.2.7.tar.gz",
"platform": null,
"description": "# AbstractAssistant \ud83e\udd16\n\nPhilosophy : *your AI assistant, always here and available in one click*\n\nA sleek macOS system tray application providing instant access to Large Language Models with a modern Qt-based interface. Built with Python and powered by [AbstractCore](https://github.com/lpalbou/abstractcore) and [AbstractVoice](https://github.com/lpalbou/abstractvoice).\n\n## \ud83d\udce6 Installation & Links\n\n- **\ud83d\udccb GitHub Repository**: [https://github.com/lpalbou/abstractassistant](https://github.com/lpalbou/abstractassistant)\n- **\ud83d\udc0d PyPI Package**: [https://pypi.org/project/abstractassistant/](https://pypi.org/project/abstractassistant/)\n- **\ud83d\udcda Documentation**: See [docs/](docs/) folder for detailed guides\n\n## \u2728 Features\n\n- **\ud83c\udfaf System Tray Integration**: Quick access from macOS menu bar - always at your fingertips\n- **\ud83d\udcac Modern Qt Interface**: Clean, iPhone Messages-style chat bubble with dark theme\n- **\ud83d\udd0a Voice Support**: Text-to-Speech integration with [AbstractVoice](https://github.com/lpalbou/abstractvoice) for conversational AI\n- **\ud83d\udd04 Multi-Provider Support**: Seamlessly switch between LMStudio, Ollama, OpenAI, Anthropic, MLX, HuggingFace via [AbstractCore](https://github.com/lpalbou/abstractcore)\n- **\ud83d\udcca Real-time Status**: Live token counting, provider/model selection, and animated status indicators\n- **\ud83d\udcbe Session Management**: Save, load, and view conversation history with markdown rendering\n- **\u2699\ufe0f Smart Controls**: Provider/model dropdowns, TTS toggle, and session buttons\n- **\ud83c\udfa8 Professional Design**: Rounded corners, smooth animations, and native macOS feel\n\n## \ud83d\ude80 Quick Start\n\n### 1. Installation\n\n#### \ud83c\udf4e macOS Users (Recommended)\n```bash\n# Enhanced installation with Dock integration\npython3 install.py\n```\n\nThis will:\n- Install AbstractAssistant from PyPI\n- Create a macOS app bundle in `/Applications`\n- Add AbstractAssistant to your Dock for easy access\n\n**Alternative**: After installation, create the app bundle manually:\n```bash\npip install abstractassistant\ncreate-app-bundle\n```\n\n#### \ud83d\udd27 Standard Installation\n```bash\n# Install from PyPI\npip install abstractassistant\n```\n\nFor detailed installation instructions including prerequisites and voice setup, see **[\ud83d\udcd6 Installation Guide](docs/installation.md)**.\n\n### 2. First Launch\n\n#### \ud83c\udf4e macOS App Bundle Users\n- **Dock**: Click the AbstractAssistant icon in your Dock\n- **Spotlight**: Search for \"AbstractAssistant\" and press Enter\n- **Finder**: Open `/Applications/AbstractAssistant.app`\n\n#### \ud83d\udd27 Terminal Users\n```bash\n# Launch the assistant\nassistant\n\n# Create macOS app bundle after installation\ncreate-app-bundle\n```\n\n### 3. Start Using\n1. **Find the Icon**: Look for AbstractAssistant in your macOS menu bar (top-right)\n2. **Click to Open**: Click the icon to open the chat bubble\n3. **Start Chatting**: Type your message and send!\n\nFor a complete walkthrough of all features, see **[\ud83c\udfaf Getting Started Guide](docs/getting-started.md)**.\n\n### \ud83d\udccb Prerequisites\n- **macOS**: 10.14+ (Mojave or later)\n- **Python**: 3.9+\n- **Models**: Local (LMStudio/Ollama) or API keys (OpenAI/Anthropic)\n\nSee **[\u2699\ufe0f Installation Guide](docs/installation.md)** for detailed setup instructions.\n\n## \ud83c\udfae Usage Overview\n\nAbstractAssistant provides a clean, intuitive interface for AI conversations:\n\n### \ud83d\uddb1\ufe0f Main Interface\n- **Chat Bubble**: Modern iPhone Messages-style interface\n- **Provider/Model Selection**: Easy switching between AI providers\n- **Voice Support**: Optional text-to-speech for responses\n- **Session Management**: Save, load, and view conversation history\n\n### \ud83c\udf99\ufe0f Voice Features\n- **Text-to-Speech**: Powered by [AbstractVoice](https://github.com/lpalbou/abstractvoice)\n- **High-Quality Speech**: Natural-sounding voice synthesis\n- **Simple Controls**: One-click enable/disable\n\n### \ud83d\udd27 System Integration\n- **System Tray**: Always accessible from macOS menu bar\n- **Native Feel**: Designed for macOS with smooth animations\n- **Lightweight**: Minimal resource usage when idle\n\n**\ud83d\udc49 For detailed usage instructions, see [\ud83c\udfaf Getting Started Guide](docs/getting-started.md)**\n\n## \u2699\ufe0f Configuration\n\nCreate a `config.toml` file to customize settings:\n\n```toml\n[ui]\ntheme = \"dark\"\nalways_on_top = true\n\n[llm]\ndefault_provider = \"lmstudio\"\ndefault_model = \"qwen/qwen3-next-80b\"\nmax_tokens = 128000\ntemperature = 0.7\n\n[system_tray]\nicon_size = 64\n```\n\n### API Keys Setup\n\nSet your API keys as environment variables:\n\n```bash\n# For OpenAI\nexport OPENAI_API_KEY=\"your_openai_key_here\"\n\n# For Anthropic\nexport ANTHROPIC_API_KEY=\"your_anthropic_key_here\"\n\n# For local models (LMStudio, Ollama), no API key needed\n```\n\n## \ud83c\udfd7\ufe0f Architecture\n\nAbstractAssistant is built on a modern, modular architecture:\n\n- **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM provider interface\n- **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: High-quality text-to-speech engine\n- **Qt Interface**: Cross-platform GUI (PyQt5/PySide2/PyQt6 support)\n- **System Integration**: Native macOS system tray with `pystray`\n- **Session Management**: Persistent conversation history and settings\n\n**\ud83d\udc49 For technical details, see [\ud83c\udfd7\ufe0f Architecture Guide](docs/architecture.md)**\n\n## \ud83d\udd27 Development\n\n### Running from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/lpalbou/abstractassistant.git\ncd abstractassistant\n\n# Create virtual environment\npython3 -m venv .venv\nsource .venv/bin/activate\n\n# Install in development mode\npip install -e .\n\n# Run with debug mode\nassistant --debug\n```\n\n### Project Structure\n\n```\nabstractassistant/\n\u251c\u2500\u2500 pyproject.toml # Package configuration\n\u251c\u2500\u2500 requirements.txt # Dependencies\n\u251c\u2500\u2500 config.toml # Default configuration\n\u251c\u2500\u2500 abstractassistant/ # Main package\n\u2502 \u251c\u2500\u2500 cli.py # CLI entry point\n\u2502 \u251c\u2500\u2500 app.py # Main application\n\u2502 \u251c\u2500\u2500 config.py # Configuration management\n\u2502 \u251c\u2500\u2500 core/ # Business logic\n\u2502 \u2502 \u251c\u2500\u2500 llm_manager.py # LLM provider management\n\u2502 \u2502 \u2514\u2500\u2500 tts_manager.py # Voice/TTS integration\n\u2502 \u251c\u2500\u2500 ui/ # User interface\n\u2502 \u2502 \u251c\u2500\u2500 qt_bubble.py # Main Qt chat interface\n\u2502 \u2502 \u2514\u2500\u2500 toast_window.py # Notification system\n\u2502 \u2514\u2500\u2500 utils/ # Utilities\n\u2502 \u251c\u2500\u2500 icon_generator.py # Dynamic icon creation\n\u2502 \u2514\u2500\u2500 markdown_renderer.py # Markdown processing\n\u2514\u2500\u2500 docs/ # Documentation\n \u251c\u2500\u2500 ARCHITECTURE.md # Technical documentation\n \u251c\u2500\u2500 INSTALLATION.md # Installation guide\n \u2514\u2500\u2500 USAGE.md # Usage guide\n```\n\n## \ud83c\udf1f Why AbstractAssistant?\n\n- **\ud83c\udfaf Focused**: Designed specifically for quick AI interactions\n- **\ud83c\udfa8 Beautiful**: Modern Qt interface with native macOS feel\n- **\u26a1 Fast**: Instant access without opening heavy applications\n- **\ud83d\udd04 Flexible**: Support for multiple AI providers in one interface\n- **\ud83d\udee1\ufe0f Robust**: Built with error handling and graceful fallbacks\n- **\ud83d\udcf1 Unobtrusive**: Lives quietly in your menu bar until needed\n- **\ud83d\udd0a Conversational**: Optional voice mode for natural AI interactions\n\n## \ud83d\udcda Documentation\n\n| Guide | Description |\n|-------|------------|\n| [\ud83d\udcd6 Installation Guide](docs/installation.md) | Complete setup instructions, prerequisites, and troubleshooting |\n| [\ud83c\udfaf Getting Started Guide](docs/getting-started.md) | Step-by-step usage guide with all features explained |\n| [\ud83c\udfd7\ufe0f Architecture Guide](docs/architecture.md) | Technical documentation and development information |\n\n## \ud83d\udccb Requirements\n\n- **macOS**: 10.14+ (Mojave or later)\n- **Python**: 3.9+\n- **Qt Framework**: PyQt5, PySide2, or PyQt6 (automatically detected)\n- **Dependencies**: [AbstractCore](https://github.com/lpalbou/abstractcore) and [AbstractVoice](https://github.com/lpalbou/abstractvoice) (automatically installed)\n\n## \ud83e\udd1d Contributing\n\nContributions welcome! Please read the architecture documentation and follow the established patterns:\n\n- **Clean Code**: Follow PEP 8 and use type hints\n- **Modular Design**: Keep components focused and reusable\n- **Modern UI/UX**: Maintain the sleek, native feel\n- **Error Handling**: Always include graceful fallbacks\n- **Documentation**: Update docs for any new features\n\n## \ud83d\udcc4 License\n\nMIT License - see LICENSE file for details.\n\n## \ud83d\ude4f Acknowledgments\n\nAbstractAssistant is built on excellent open-source projects:\n\n### Core Dependencies\n- **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM interface - enables seamless multi-provider support\n- **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: High-quality text-to-speech engine with natural voice synthesis\n\n### Framework & UI\n- **[PyQt5/PySide2/PyQt6](https://www.qt.io/)**: Cross-platform GUI framework for the modern interface\n- **[pystray](https://github.com/moses-palmer/pystray)**: Cross-platform system tray integration\n- **[Pillow](https://python-pillow.org/)**: Image processing for dynamic icon generation\n\n### Part of the AbstractX Ecosystem\nAbstractAssistant integrates seamlessly with other AbstractX projects:\n- \ud83e\udde0 **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM provider interface\n- \ud83d\udde3\ufe0f **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: Advanced text-to-speech capabilities\n\nSee [ACKNOWLEDGMENTS.md](ACKNOWLEDGMENTS.md) for complete attribution.\n\n---\n\n**Built with \u2764\ufe0f for macOS users who want AI at their fingertips**\n",
"bugtrack_url": null,
"license": null,
"summary": "A sleek (macOS) system tray application providing instant access to LLMs",
"version": "0.2.7",
"project_urls": {
"Homepage": "https://github.com/lpalbou/abstractassistant",
"Issues": "https://github.com/lpalbou/abstractassistant/issues",
"Repository": "https://github.com/lpalbou/abstractassistant"
},
"split_keywords": [
"ai",
" llm",
" macos",
" system-tray",
" assistant"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6d93a060b5083e89dd82194158a72ddbd18141d2254e00e7321901528c090ef6",
"md5": "550e208458c4779bb3cc88293bbf07a5",
"sha256": "284da8959bae351df360e0f42bd93bffc44cba6dbbb120413c037617a65dc63a"
},
"downloads": -1,
"filename": "abstractassistant-0.2.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "550e208458c4779bb3cc88293bbf07a5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 76374,
"upload_time": "2025-10-21T05:23:57",
"upload_time_iso_8601": "2025-10-21T05:23:57.070843Z",
"url": "https://files.pythonhosted.org/packages/6d/93/a060b5083e89dd82194158a72ddbd18141d2254e00e7321901528c090ef6/abstractassistant-0.2.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "75cbb6b7bc0b5c3ebaeab5a0173be466cfc6746dcc912fbdbcb696bac5685784",
"md5": "058d6ea305a913627e408ad1dedfde55",
"sha256": "30e2589676f8e0525c6d98191fa011983f7fd9902d641b62fa20944235f266b6"
},
"downloads": -1,
"filename": "abstractassistant-0.2.7.tar.gz",
"has_sig": false,
"md5_digest": "058d6ea305a913627e408ad1dedfde55",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 107507,
"upload_time": "2025-10-21T05:23:58",
"upload_time_iso_8601": "2025-10-21T05:23:58.892034Z",
"url": "https://files.pythonhosted.org/packages/75/cb/b6b7bc0b5c3ebaeab5a0173be466cfc6746dcc912fbdbcb696bac5685784/abstractassistant-0.2.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-21 05:23:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lpalbou",
"github_project": "abstractassistant",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "abstractcore",
"specs": [
[
">=",
"2.4.2"
]
]
},
{
"name": "pystray",
"specs": [
[
">=",
"0.19.4"
]
]
},
{
"name": "Pillow",
"specs": [
[
">=",
"10.0.0"
]
]
},
{
"name": "PyQt5",
"specs": [
[
">=",
"5.15.0"
]
]
},
{
"name": "markdown",
"specs": [
[
">=",
"3.5.0"
]
]
},
{
"name": "pygments",
"specs": [
[
">=",
"2.16.0"
]
]
},
{
"name": "abstractvoice",
"specs": [
[
">=",
"0.1.1"
]
]
},
{
"name": "coqui-tts",
"specs": [
[
">=",
"0.27.0"
]
]
},
{
"name": "openai-whisper",
"specs": [
[
">=",
"20230314"
]
]
},
{
"name": "PyAudio",
"specs": [
[
">=",
"0.2.13"
]
]
},
{
"name": "pyperclip",
"specs": [
[
">=",
"1.8.2"
]
]
},
{
"name": "plyer",
"specs": [
[
">=",
"2.1.0"
]
]
},
{
"name": "tomli",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "tomli-w",
"specs": [
[
">=",
"1.0.0"
]
]
}
],
"lcname": "abstractassistant"
}