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.1.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.1-py3-none-any.whl (137.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: abstractassistant-0.4.1.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.1.tar.gz
Algorithm Hash digest
SHA256 f08c402b3ad859a9895a83b1f7efc7b173775edf3605409aa7aab1084643a42b
MD5 13a19281dfb16f8205edc567290f6265
BLAKE2b-256 644476f10674488df86c30f25b8e3f4cec2d46d94804ef394035a2079135b0a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for abstractassistant-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fa6fe7fae6cdd8cdeaa40ac2baeefa43cfe066799c420be67bd08390949d8390
MD5 b6d4149bdee568a9b74547a112fb33a6
BLAKE2b-256 a614dd31a9c2bd70d27087504b043286c747ad6c8a516d774e17befa6e5bba78

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