AbstractAssistant is a macOS-first tray app and CLI that hosts a local, durable agent.
It is part of the AbstractFramework ecosystem:
- https://github.com/lpalbou/AbstractFramework
- key components used directly here:
- AbstractCore: https://github.com/lpalbou/abstractcore
- AbstractRuntime: https://github.com/lpalbou/abstractruntime
- Tray UI: menu bar/system tray bubble with sessions, attachments, tool approvals, and optional voice.
- CLI: run a single agentic turn in the terminal.
- Durable tool boundary: tool calls are surfaced as a resumable wait and executed only by the host after approval.
High-level flow (evidence: abstractassistant/core/agent_host.py):
Tray UI / CLI -> AgentHost -> AbstractAgent -> AbstractRuntime -> AbstractCore -> Provider(s)
pip install "abstractassistant"Requirements (summary):
- Python 3.10+
- Tray UI is macOS-first (menu bar/system tray); CLI/backend may work elsewhere but macOS is the primary target.
- A provider must be available (for example LMStudio/Ollama running locally, or cloud API keys set via env vars).
Tray UI:
assistant trayCLI (one turn):
assistant run --prompt "What is in this repo and where do I start?"Provider/model override:
assistant --provider ollama --model qwen3:4b-instruct run --prompt "Summarize my changes"Default data directory: ~/.abstractassistant/ (override with --data-dir).
Contents (evidence: abstractassistant/core/session_index.py):
session.json: transcript snapshot + last run id (fast UX state)sessions.json: session registry + active session idruntime/: AbstractRuntime stores (run state, ledger, artifacts)
Start here: docs/README.md
Core guides:
pip install -e ".[dev]"
python -m pytest -q
assistant --debug tray- Contributing: CONTRIBUTING.md
- Security reporting: SECURITY.md
- License: LICENSE
- Acknowledgments: ACKNOWLEDGMENTS.md