AIDA — AI Data Assistant
Status: 1.0.0. In daily use at APS beamlines 12-ID/9-ID. All ten phases of the original plan are delivered, the test suite is 2,449 tests green on macOS, Windows and Linux, and the config formats and CLI commands are stable: a breaking change to either now means a new major version. Every change is dated in
CHANGELOG.md. Bug reports and rough edges are very much welcome — 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 planning/DESIGN.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
environment.yml already includes the gui, docs and ocr extras. If
aida doctor or aida-gui says PySide6 isn't installed on a headless
Linux machine even though the install above reported no errors, see
GUI fails to import on headless Linux
— it's usually a missing system Qt library, not a missing Python package.
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 Configure menu (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
All ten phases 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, headless automation (aida run, stored workflows, the
in-app scheduler — see docs/workflows.md), and
moving a setup between machines
(docs/moving-and-sharing.md).
What is still open — manual acceptance checks that need a real beamline, a
conda-forge decision, full backup/restore — is in TODO.md.
PLAN.md holds the reasoning behind each item, and its §2 the
things considered and deliberately not committed. What has been delivered,
and why, is in planning/COMPLETED.md; the
per-phase checklists are archived in
planning/completed/.
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.
Metadata
Release files for aida-workbench 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aida_workbench-1.0.0.tar.gz | 5.5 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aida_workbench-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.4 MB
Release files / aida_workbench-1.0.0.tar.gz
| Download URL | aida_workbench-1.0.0.tar.gz |
|---|---|
| Size | 5.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
354358d5905280d0608b7357c55bfd670cc24f8b16c31e0dd39674d2e4a30e80
|
|
BLAKE2b-256 checksum How to use checksums |
e345b7b86de901244318c15cc08fadef09eb87ae91e667d4f31e4f5e34a14018
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / aida_workbench-1.0.0-py3-none-any.whl
| Download URL | aida_workbench-1.0.0-py3-none-any.whl |
|---|---|
| Size | 893.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c82aae23df60fce063d36a6eec565e272c0ed5bcf5523bd035136d3b99966abd
|
|
BLAKE2b-256 checksum How to use checksums |
72e13fc475a80ac14d7cc2d9084dac80a3a0ba2ce53d19e333e29e2fba683121
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logSecurity for aida-workbench 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for aida_workbench-1.0.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.