A sleek (macOS) system tray application providing instant access to LLMs
Project description
AbstractAssistant
AbstractAssistant is a macOS-first tray app and CLI.
The tray app is gateway-first: it connects to AbstractGateway, discovers available providers/models there, and keeps only local UI/session state.
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
What it does
- Tray UI: menu bar/system tray bubble with sessions, attachments, tool approvals, and voice.
- Media settings: Gateway-backed Voice, TTS, STT, and Image selectors for generated speech, transcription, and image generation.
- CLI: run a single agentic turn in the terminal.
- Durable tool boundary: tool calls are surfaced as a resumable wait and executed only through the gateway after approval.
High-level flow:
Tray UI / CLI -> AbstractGateway -> AbstractRuntime -> AbstractCore -> Provider(s)
Install
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.
- For tray mode, an AbstractGateway instance must be available.
Quick start
Tray UI:
assistant
CLI (one turn):
assistant run --prompt "What is in this repo and where do I start?"
Gateway startup (local dev):
export ABSTRACTGATEWAY_FLOWS_DIR="$PWD/abstractgateway/flows/bundles"
export ABSTRACTGATEWAY_AUTH_TOKEN="your-shared-token"
abstractgateway serve --host 127.0.0.1 --port 8080
assistant
Optional assistant-side overrides:
assistant --gateway-url http://127.0.0.1:8080 --gateway-token "$ABSTRACTGATEWAY_AUTH_TOKEN"
The Media settings dialog is populated from Gateway catalog routes:
/api/gateway/voice/voices, /api/gateway/audio/speech/models,
/api/gateway/audio/transcriptions/models, /api/gateway/vision/provider_models,
and /api/gateway/vision/models. If it only shows default, verify that the
running Gateway is the current package version and not an older server process.
Data & durability
Default data directory: ~/.abstractassistant/.
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)
Documentation
Start here: docs/README.md
Core guides:
Development
pip install -e ".[dev]"
python -m pytest -q
Contributing / Security / License
- Contributing: CONTRIBUTING.md
- Security reporting: SECURITY.md
- License: LICENSE
- Acknowledgments: ACKNOWLEDGMENTS.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file abstractassistant-0.4.4.tar.gz.
File metadata
- Download URL: abstractassistant-0.4.4.tar.gz
- Upload date:
- Size: 210.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26142450c071d23d076a5636f7eeea7be20562f7f53debcf7e7813e8406e992a
|
|
| MD5 |
792f2124e0a1bf6956f2d75aa1dd7815
|
|
| BLAKE2b-256 |
eb972569a70a36dd0dc57594d7eb8c4fafb38cffc5d03058b81b712df0dd07dd
|
Provenance
The following attestation bundles were made for abstractassistant-0.4.4.tar.gz:
Publisher:
release.yml on lpalbou/AbstractAssistant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abstractassistant-0.4.4.tar.gz -
Subject digest:
26142450c071d23d076a5636f7eeea7be20562f7f53debcf7e7813e8406e992a - Sigstore transparency entry: 1518719810
- Sigstore integration time:
-
Permalink:
lpalbou/AbstractAssistant@d0437a0cf2c695744f85887cb1ad6a5122a9662c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lpalbou
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d0437a0cf2c695744f85887cb1ad6a5122a9662c -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file abstractassistant-0.4.4-py3-none-any.whl.
File metadata
- Download URL: abstractassistant-0.4.4-py3-none-any.whl
- Upload date:
- Size: 212.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebe4e82441fda8b3b87c3d6edfe01376f7054c1241967ef77b92bd5aa7d7671b
|
|
| MD5 |
36b0049cef8bb46db92f226a7cd5b300
|
|
| BLAKE2b-256 |
a14803f64957e51a01058f01df728884e8d4d6c84163ba9feb25b6ac711f2e2a
|
Provenance
The following attestation bundles were made for abstractassistant-0.4.4-py3-none-any.whl:
Publisher:
release.yml on lpalbou/AbstractAssistant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abstractassistant-0.4.4-py3-none-any.whl -
Subject digest:
ebe4e82441fda8b3b87c3d6edfe01376f7054c1241967ef77b92bd5aa7d7671b - Sigstore transparency entry: 1518719903
- Sigstore integration time:
-
Permalink:
lpalbou/AbstractAssistant@d0437a0cf2c695744f85887cb1ad6a5122a9662c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lpalbou
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d0437a0cf2c695744f85887cb1ad6a5122a9662c -
Trigger Event:
workflow_dispatch
-
Statement type: