Skip to main content

A sleek (macOS) system tray application providing instant access to LLMs

Project description

AbstractAssistant

One-click, tray-accessible agent host for AbstractFramework.

AbstractAssistant runs agentic loops (ReAct/CodeAct/MemAct) on top of:

  • AbstractAgent (agent patterns)
  • AbstractRuntime (durable runs, waits, ledgers)
  • AbstractCore (providers + tools + media handling)
  • AbstractVoice (STT/TTS)

Docs:

  • docs/getting-started.md
  • docs/architecture.md

Install

pip install "abstractassistant"

Quick start

Tray (macOS):

assistant tray

Alias:

abstractassistant tray

Terminal (one turn):

assistant run --prompt "What is in this repo and where do I start?"

Provider/model override:

assistant run --provider ollama --model qwen3:4b-instruct --prompt "Summarize my changes"

Tool approvals (important)

AbstractAssistant enforces a durable tool boundary:

  • read-only / known-safe tools can auto-run
  • anything else pauses and requires approval (tray dialog or terminal prompt)

This aligns with the framework’s durability + safety model: tools are executed by the host, not persisted as callables inside run state.

Data & durability

By default, assistant state is stored in ~/.abstractassistant/ (configurable via --data-dir):

  • session.json: fast UI snapshot (transcript + last run id)
  • runtime/: run store + ledger + artifacts (source of truth)

Development

pip install -e ".[dev]"
python -m pytest -q
assistant tray --debug
  • 📱 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.10+
  • Qt Framework: PyQt5, PySide2, or PyQt6 (automatically detected)
  • Core deps: AbstractAgent + AbstractRuntime + AbstractCore + AbstractVoice (installed with abstractassistant)
  • Audio note: audio attachments are auto-transcribed via AbstractVoice (first run may download model weights)
  • Video note: frame-sampling fallback may require ffmpeg on your PATH

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

See ACKNOWLEDGMENTS.md for complete attribution.


Built with ❤️ for macOS users who want AI at their fingertips

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

abstractassistant-0.4.2.tar.gz (141.0 kB view details)

Uploaded Source

Built Distribution

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

abstractassistant-0.4.2-py3-none-any.whl (137.5 kB view details)

Uploaded Python 3

File details

Details for the file abstractassistant-0.4.2.tar.gz.

File metadata

  • Download URL: abstractassistant-0.4.2.tar.gz
  • Upload date:
  • Size: 141.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for abstractassistant-0.4.2.tar.gz
Algorithm Hash digest
SHA256 65210bafc33b7aebb80ac4898303a990daf1cdbb427b4ea471fff05b7bbe8180
MD5 6593fc80efa5bac1791f6924ffd817ac
BLAKE2b-256 5877acd1efa3ec8665d16c4f08aa2f40b84bb5370fa13b25b24c60b1d25359ea

See more details on using hashes here.

File details

Details for the file abstractassistant-0.4.2-py3-none-any.whl.

File metadata

File hashes

Hashes for abstractassistant-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bf667e7846da6e06765ea0f96acbe3aa2c0de0710d7edc9bd15ce444edb3e1a6
MD5 f6e7fe2c919301bf8fa46a484a791608
BLAKE2b-256 b6e18b368c64f676c712f014432d5073531614eaa1791b20676f444059df5997

See more details on using hashes here.

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