Source Code:
src/gaia/Introduction
GAIA is an open-source framework that runs generative AI applications on AMD hardware. GAIA uses ONNX Runtime GenAI via Lemonade Server for running Large Language Models (LLMs). GAIA utilizes both NPU and iGPU on Ryzen AI systems for optimal performance on 300 series processors or above.Before You Start
System Requirements
Driver Requirements:
Software Requirements
- Git - For version control
- Lemonade Server - Download from lemonade-server.ai
Setup and Installation
GAIA uses uv, a fast Python package manager that handles virtual environments, Python installation, and dependencies automatically.Step 1: Install uv
Windows (PowerShell):Step 2: Clone GAIA
Step 3: Create Virtual Environment
Note: GAIA supports Python ≥3.10 (classifiers cover 3.10, 3.11, 3.12 insetup.py), but linting configs (black/mypyinpyproject.toml) are pinned topy312, so 3.12 is recommended for contributors.uvwill download 3.12 automatically if it’s not installed.
Step 4: Activate the Environment
Windows (PowerShell):(.venv) in your terminal prompt when activated.
Step 5: Install Dependencies
The
--extra-index-url https://download.pytorch.org/whl/cpu workaround is
only needed with plain pip. uv reads tool.uv.sources.pytorch-cpu from
pyproject.toml and routes CPU-only torch wheels through the right index
automatically.setup.py for the full list):
Step 6: Claude Code Plugins (Optional)
GAIA ships a.claude/settings.json that declares two recommended Claude Code plugins from the official Anthropic marketplace:
frontend-design— higher-quality, less generic UI generationsuperpowers— structured dev methodology (brainstorm → plan → TDD → review)
“This project declares plugins. Install them?”Accept it once and the plugins become available for the repo. You can verify with:
.claude/settings.local.json with false:
Deactivating
When done working:See also: Agent SDK Documentation
Running GAIA
Verify Installation
Start Chatting
Note: GAIA automatically starts Lemonade Server when needed. For manual start: lemonade-server serve
Running Electron Applications
GAIA includes Electron-based GUI applications. To run the JAX (Jira Agent Experience) app: Windows:Agent UI Development
Start the Agent UI (backend + frontend) with the convenience scripts: Linux / macOS:Linting and Formatting
util/lint.py drives all repo lint tooling. Running it with no flags runs
every check in sequence; pass a specific flag to run one:
Running Tests
tests/conftest.py (api_client, api_server,
require_lemonade, lemonade_available). The require_lemonade fixture
auto-skips integration tests when no Lemonade server is running.
Real-World Testing with Claude Code
Unit and integration tests prove code paths; they don’t prove a feature works end-to-end on real hardware. GAIA ships agaia-testing skill (under
.claude/skills/) for Claude Code: it drives
the real interface — the Agent UI in a browser, the CLI, or the Agent UI MCP
server (gaia mcp serve) — and brings back screenshots, logs, traces, and
per-operation timing as evidence, all collected to your local machine. In a
session, ask it to “test / validate / QA this feature with screenshots”; it
scales from a unit-only run up to a full real-world run gated by a single
approval prompt.
Declaring test machines
The real-world tier runs on a machine you nominate. The skill discovers candidates from your loaded Claude config only — it never scans your filesystem. Declare machines under a## Dev Machines (or ## Test Machines)
heading in either:
- your user-level
~/.claude/CLAUDE.md(shared across all your projects) — which may summarise them inline and point to a detail file it loads, such as~/.claude/memory/dev-machines.md; or - the project
./CLAUDE.mdor.claude/settings.json.
Keep credentials out of committed files. Put sudo passwords, tokens, and keys only in your user-level config (or a memory file it points to) — never in the repo’sCLAUDE.mdor.claude/settings.json. The skill reads them write-only and never echoes them into logs, screenshots, or reports.
Troubleshooting
”uv” command not found (Windows)
After installing uv, the command may not be recognized because PATH hasn’t updated. Solution 1: Restart PowerShell (simplest) Solution 2: Update PATH in current session:Virtual Environment Activation Fails (Windows)
If you see a script execution error:Model Loading Issues
- Check available system memory
- Verify model compatibility with your hardware
- Ensure all dependencies are correctly installed
Environment Variable Issues
- Verify the virtual environment is activated (look for
(.venv)prefix) - Try restarting your terminal
- Re-run the activation command for your platform
Support
Report issues to[email protected] or create an issue on GitHub.