This release is a pre-release and may not be stable for production use.
AIDA — AI Data Assistant
Status: beta (0.1.0b5). Everything described below works today and is in daily use. Config formats and CLI commands are stable enough to build on; breaking changes before 1.0 will be called out in
CHANGELOG.md. Bug reports and rough edges are exactly what this beta is for — open an issue.
AIDA is a local scientific agent workbench: a simple, reliable desktop GUI (and CLI) for using AI agents in scientific work — conversation with local or cloud LLMs, correct use of domain MCP servers (pyIrena, bait_mcp, ...), correct display of rich tool results (especially PNG plots), reading and producing documents, and controlled access to your own data folders.
It is built for pyIrena and USAXS-instrument users and is deliberately not
a general-purpose AI platform — see PLAN.md §1 for the rationale.
What it does
- Chat with any model you can reach — Ollama / LM Studio / any OpenAI-compatible endpoint, OpenAI itself, Claude direct, or Claude through the ANL Argo proxy. Named profiles, switchable mid-conversation.
- Use MCP servers properly — a PNG a tool returns is decoded and shown as an image, not flattened to text. Servers are grouped so a small local model isn't drowned in 100+ tool schemas.
- Work in your folders — named workspaces bundle source folders, a target folder, a provider profile, an MCP group, and skills. The agent reads, writes, searches, and (optionally) runs scripts there under a safety model you configure.
- Produce documents — Markdown in Obsidian layout (images in a sidecar folder, linked relatively) or DOCX, written into your target folder.
- Search your own documentation — optional local RAG over folders you choose, with local or cloud embeddings.
- Keep the documents you attach — an attached paper is copied into the conversation's own folder with the text that was extracted from it, and deleted again with the conversation. Ask about a figure and the agent fetches that one by label rather than being handed every image in the file. Optional Mistral OCR makes those labels reliable on multi-column journal PDFs — off by default, per workspace, and it asks before a document leaves your machine.
- Keep conversations sorted — label them by person on a shared beamline machine, or by project on a laptop, and filter the list by it. Labels are organization, not security.
- Stay out of black boxes — token counts and cost estimates per session,
a tool-call log, a raw MCP result inspector, and
aida doctor.
Install
From PyPI (recommended):
pip install "aida-workbench[gui,docs]"
aida doctor
aida-gui
The PyPI distribution name is aida-workbench; the import package and the
console scripts are aida / aida-gui. Extras: gui (PySide6 desktop app),
docs (PDF/DOCX/XLSX/PPTX reading, image handling), ocr (the optional
Mistral OCR backend for figure extraction).
Already using pyIrena? Install both — in either order, in one environment or two — and wire up its MCP tools with a single command:
pip install "aida-workbench[gui,docs]" "pyirena[all]"
aida mcp add-pyirena
See docs/pyirena.md for the compatibility details and
the GUI equivalent.
From a git checkout, for development:
git clone https://github.com/jilavsky/aida.git
cd aida
conda env create -f environment.yml # or: pip install -e ".[dev,gui,docs]"
conda activate aida
aida doctor
First run
aida doctor— confirms Python, config files, keychain, and folders.- Launch
aida-gui. On a fresh install it offers to set up a provider profile and a first workspace; you can also do both from the toolbar (Providers…, Workspaces…) or from the CLI (aida workspace new). - Pick a workspace and profile in the toolbar and start typing.
docs/installation.md →
docs/providers-and-secrets.md →
docs/workspaces.md is the full path from nothing to a
working session.
Documentation
Task-oriented setup and configuration guides — providers, workspaces, the
safety model, MCP servers, scripting, RAG, a GUI tour — live in
docs/. Fully-commented example config files are in
examples/config/.
Status and roadmap
Phases 1–10 of PLAN.md are implemented: config and diagnostics,
the provider layer and agent loop, MCP with typed artifacts, persistence and
workspaces, the PySide6 GUI, documents and the safety model, MCP management
UI, RAG, coding/scripting, and headless automation — aida run, stored
workflows, and the in-app scheduler (see docs/workflows.md).
Distribution (real PyPI/conda release automation) is what remains open.
Completed per-phase checklists live in planning/; what is
still open is at the top of PLAN.md.
Released and unreleased changes, version by version, are in
CHANGELOG.md.
Requirements
Python >= 3.11. Tested on macOS, Windows, and Linux.
License
MIT — see LICENSE.
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 aida_workbench-0.1.0b5.tar.gz.
File metadata
- Download URL: aida_workbench-0.1.0b5.tar.gz
- Upload date:
- Size: 986.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
459e0517e9bf127a9330dfc5a7cf89a41afd8c06de6581ed8895d074d55a4edd
|
|
| MD5 |
fbd400acb5effbccc6dde18e29b64175
|
|
| BLAKE2b-256 |
2ec2a10408a9c3eda278f0bbc736af0be393e4b078ef2fb7fdf183787da1ad7c
|
Provenance
The following attestation bundles were made for aida_workbench-0.1.0b5.tar.gz:
Publisher:
publish.yml on jilavsky/aida
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aida_workbench-0.1.0b5.tar.gz -
Subject digest:
459e0517e9bf127a9330dfc5a7cf89a41afd8c06de6581ed8895d074d55a4edd - Sigstore transparency entry: 2730057179
- Sigstore integration time:
-
Permalink:
jilavsky/aida@655a9b13142b11bb78b7cddee9e5fe98d3ac4f22 -
Branch / Tag:
refs/tags/v0.1.0b5 - Owner: https://github.com/jilavsky
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@655a9b13142b11bb78b7cddee9e5fe98d3ac4f22 -
Trigger Event:
release
-
Statement type:
File details
Details for the file aida_workbench-0.1.0b5-py3-none-any.whl.
File metadata
- Download URL: aida_workbench-0.1.0b5-py3-none-any.whl
- Upload date:
- Size: 475.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
122230d8ab4a6f41e9180dbf0fa3f78567ae0197b4f3aff0e06af756b1446612
|
|
| MD5 |
27db9731151bb22e5f2c8f640cae4c8c
|
|
| BLAKE2b-256 |
adbf914d35c5e2644cbe573fee5a1fbcccabf4d3a924f19966a09ee1c6bf5095
|
Provenance
The following attestation bundles were made for aida_workbench-0.1.0b5-py3-none-any.whl:
Publisher:
publish.yml on jilavsky/aida
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aida_workbench-0.1.0b5-py3-none-any.whl -
Subject digest:
122230d8ab4a6f41e9180dbf0fa3f78567ae0197b4f3aff0e06af756b1446612 - Sigstore transparency entry: 2730057262
- Sigstore integration time:
-
Permalink:
jilavsky/aida@655a9b13142b11bb78b7cddee9e5fe98d3ac4f22 -
Branch / Tag:
refs/tags/v0.1.0b5 - Owner: https://github.com/jilavsky
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@655a9b13142b11bb78b7cddee9e5fe98d3ac4f22 -
Trigger Event:
release
-
Statement type: