Skip to content

lpalbou/AbstractAssistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

31 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

AbstractAssistant ๐Ÿค–

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 and AbstractVoice.

๐Ÿ“ฆ Installation & Links

โœจ 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 for conversational AI
  • ๐Ÿ”„ Multi-Provider Support: Seamlessly switch between LMStudio, Ollama, OpenAI, Anthropic, MLX, HuggingFace via 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

# Install from PyPI (recommended)
pip install abstractassistant

For detailed installation instructions including prerequisites and voice setup, see ๐Ÿ“– Installation Guide.

2. First Launch

# Launch the assistant
assistant

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.

๐Ÿ“‹ Prerequisites

  • macOS: 10.14+ (Mojave or later)
  • Python: 3.9+
  • Models: Local (LMStudio/Ollama) or API keys (OpenAI/Anthropic)

See โš™๏ธ Installation Guide 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
  • 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

โš™๏ธ Configuration

Create a config.toml file to customize settings:

[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:

# 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: Universal LLM provider interface
  • 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

๐Ÿ”ง Development

Running from Source

# 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 Complete setup instructions, prerequisites, and troubleshooting
๐ŸŽฏ Getting Started Guide Step-by-step usage guide with all features explained
๐Ÿ—๏ธ Architecture Guide 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 and 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: Universal LLM interface - enables seamless multi-provider support
  • AbstractVoice: High-quality text-to-speech engine with natural voice synthesis

Framework & UI

  • PyQt5/PySide2/PyQt6: Cross-platform GUI framework for the modern interface
  • pystray: Cross-platform system tray integration
  • Pillow: Image processing for dynamic icon generation

Part of the AbstractX Ecosystem

AbstractAssistant integrates seamlessly with other AbstractX projects:

  • ๐Ÿง  AbstractCore: Universal LLM provider interface
  • ๐Ÿ—ฃ๏ธ AbstractVoice: Advanced text-to-speech capabilities

See ACKNOWLEDGMENTS.md for complete attribution.


Built with โค๏ธ for macOS users who want AI at their fingertips

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages