A sleek (macOS) system tray application providing instant access to LLMs
Project description
AbstractAssistant
AbstractAssistant is a gateway-native desktop assistant for the AbstractFramework ecosystem.
It ships as a macOS-first tray app with a compact top-right palette and a small CLI. The desktop client stays thin: AbstractGateway owns workflow discovery, durable runs, multimodal capability defaults, provider connections, and media routing. The assistant keeps only local UX state such as sessions, window placement, downloads, and optional hotkey preferences.
High-level flow:
Tray / Palette / CLI -> AbstractGateway -> AbstractRuntime -> AbstractCore -> Providers
What You Get
- A tray-first desktop assistant with a compact top-right query palette.
- One published gateway assistant workflow,
abstractassistant-orchestrator, as the runtime path for tray and CLI turns. - Gateway-backed multimodal defaults for text, voice, image, video, sound, and music routes.
- Local microphone capture and local playback while STT/TTS execution stays on the gateway.
- Workflow-routed image, video, sound, and music generation through gateway defaults.
- Durable tool approvals through gateway waits instead of local side channels.
- Gateway-backed capability-default editing, including advanced route options where the selected route supports them.
Install
pip install "abstractassistant"
Practical requirements:
- Python 3.10+
- An AbstractGateway instance the assistant can reach
- macOS is the primary tray target; Linux and Windows may work but are not yet packaged to the same standard
Quick Start
Start a local gateway for development:
export ABSTRACTGATEWAY_FLOWS_DIR="$PWD/abstractgateway/flows/bundles"
export ABSTRACTGATEWAY_AUTH_TOKEN="your-shared-token"
abstractgateway serve --host 127.0.0.1 --port 8080
Launch the tray assistant:
assistant
Run a single terminal turn:
assistant run --prompt "Search the web for the latest OpenAI news and summarize it with sources."
Optional connection overrides:
assistant --gateway-url http://127.0.0.1:8080 --gateway-token "$ABSTRACTGATEWAY_AUTH_TOKEN"
The tray app does not ask you to choose a workflow. It uses the published
abstractassistant-orchestrator workflow from the gateway tenant catalog.
Defaults And Durability
Gateway is the source of truth for:
- the published
abstractassistant-orchestratorworkflow and its catalog entrypoint - provider/model defaults for multimodal routes
- media routing and execution
- durable run history, waits, and artifacts
The desktop client stores only local state under ~/.abstractassistant/, including:
sessions.json: session registry and active session- session transcript snapshots and last run ids
gateway_connection.json: gateway URL plus bearer-token or session auth state- local downloads and tray/palette preferences
The desktop assistant stays intentionally thinner than Flow. Settings exposes
gateway capability-default routes plus a bounded advanced options JSON
surface. That JSON is passed through unchanged for route features such as
count, seeds, lora_adapters, guidance_2, and flow_shift when the
selected route supports them.
Documentation
Start with docs/README.md.
Core guides:
- docs/INSTALLATION.md
- docs/getting-started.md
- docs/api.md
- docs/architecture.md
- docs/faq.md
- docs/troubleshooting.md
Architecture records:
Development
pip install -e ".[dev]"
python -m pytest tests/basic tests/integration -q
Project Links
- Contributing: CONTRIBUTING.md
- Security: SECURITY.md
- Changelog: CHANGELOG.md
- License: LICENSE
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.10.tar.gz.
File metadata
- Download URL: abstractassistant-0.4.10.tar.gz
- Upload date:
- Size: 278.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f05751caee5b5b1eb522bc197a99087f4b12f2d1141829748caf96a9641951b3
|
|
| MD5 |
bf34615fa0870e5a885c1dd75f4a52c2
|
|
| BLAKE2b-256 |
139052340c7fea7c1586f6eb52a582ebd9c773db5ca5f009857269ab3f843f0b
|
Provenance
The following attestation bundles were made for abstractassistant-0.4.10.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.10.tar.gz -
Subject digest:
f05751caee5b5b1eb522bc197a99087f4b12f2d1141829748caf96a9641951b3 - Sigstore transparency entry: 1819241934
- Sigstore integration time:
-
Permalink:
lpalbou/AbstractAssistant@01ee6c194c6b2c0fcf1c03ec8f65de3af4dc910a -
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@01ee6c194c6b2c0fcf1c03ec8f65de3af4dc910a -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file abstractassistant-0.4.10-py3-none-any.whl.
File metadata
- Download URL: abstractassistant-0.4.10-py3-none-any.whl
- Upload date:
- Size: 278.0 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 |
abdd41725bedd0fba2fe16bc4e4fc514c33fe673c77050e1e99474b8475d4615
|
|
| MD5 |
d90d2437287191478892df11c34ae005
|
|
| BLAKE2b-256 |
3a9aa9ae509f66195b7405f188b3a1a36a7abcab331c5581c6da399ecb291e4a
|
Provenance
The following attestation bundles were made for abstractassistant-0.4.10-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.10-py3-none-any.whl -
Subject digest:
abdd41725bedd0fba2fe16bc4e4fc514c33fe673c77050e1e99474b8475d4615 - Sigstore transparency entry: 1819242065
- Sigstore integration time:
-
Permalink:
lpalbou/AbstractAssistant@01ee6c194c6b2c0fcf1c03ec8f65de3af4dc910a -
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@01ee6c194c6b2c0fcf1c03ec8f65de3af4dc910a -
Trigger Event:
workflow_dispatch
-
Statement type: