abstractassistant


Nameabstractassistant JSON
Version 0.2.7 PyPI version JSON
download
home_pageNone
SummaryA sleek (macOS) system tray application providing instant access to LLMs
upload_time2025-10-21 05:23:58
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords ai llm macos system-tray assistant
VCS
bugtrack_url
requirements abstractcore pystray Pillow PyQt5 markdown pygments abstractvoice coqui-tts openai-whisper PyAudio pyperclip plyer tomli tomli-w
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 1.20902s