EAA's React control center, backed by Pi and community extensions. This repository owns the frontend, MathJax assets, HTTP/SSE adapter, and browser extension bridges. It consumes the independently installable pi-experiment-ops bundle for Pi, community resources, Python provisioning, and the toy workflow. A versioned bundle tarball is included in vendor/, so installation needs no sibling checkout.
Requirements: native Linux, Node.js 22.19 or newer, Git, Bash, and uv. The installer provisions Python 3.12 and the locked graph dependencies. A C/C++ toolchain may be needed if a PTY binary is unavailable for your platform.
bash scripts/install.sh /tmp/my-eaa-demo
node bin/eaa-pi.mjs demo --workspace /tmp/my-eaa-demoTo use eaa-pi in place of node bin/eaa-pi.mjs, run this once from the repository root:
mkdir -p "$HOME/.local/bin"
ln -s "$PWD/bin/eaa-pi.mjs" "$HOME/.local/bin/eaa-pi"
export PATH="$HOME/.local/bin:$PATH"The shortcut works from any directory. If needed, add the export line to ~/.bashrc to keep it available in new terminals. See command setup for tarball installations and removing the link.
Open http://127.0.0.1:8010. The demo uses a local deterministic model endpoint and simulated MCP instrument; no provider credentials are required. Try hello, request approval, run background job, or review in background. Use Sessions & tools → select toy → enter a task → Run workflow to exercise generator → reviewer → image creation.
For a real provider, initialize an EAA workspace:
eaa-pi init --workspace /path/to/workspaceIf the workspace is already configured for experiment-ops, its provider settings and sessions are ready to use. Otherwise configure the provider with pi-experiment-ops configure, or edit .pi-experiment-ops/agent/models.json and set defaultProvider/defaultModel in .pi-experiment-ops/agent/settings.json. Both interfaces read these native Pi files directly. eaa-pi.json contains only the web host and port.
See configuration and authentication for custom endpoints and legacy workspace migration.
Then start EAA:
eaa-pi serve --workspace /path/to/workspaceNative execution has the permissions of your operating-system account. The supplied container configuration provides a filesystem boundary for the server and all agent descendants. The service defaults to local, single-user access.
Launch the installed experiment-ops TUI in your workspace:
eaa-pi pi --workspace /path/to/workspace -- --provider argo --model gpt55Replace argo and gpt55 with a provider/model configured in .pi-experiment-ops/agent. The command delegates to the installed pi-experiment-ops launcher, including its native terminal extensions. The TUI and WebUI share primary sessions; use one interface per session at a time. See TUI and CLI usage for configuration details.
- Installation, packaging, upgrades, and uninstall
- Configuration, authentication, and MCP
- Frontend, sessions, jobs, interactive shells, and recovery
- Workflow authoring and toy example
- Containers and execution policy
- Repository separation and bundle upgrades
- Architecture and HTTP/SSE API
- Compatibility and capability validation
- Upstream provenance and notices
To test changes in a sibling pi-experiment-ops checkout without repacking it, use the local development link. Restart EAA after bundle code changes; the saved release dependency remains pinned.
npm run check
npm run build
npm test
PLAYWRIGHT_BROWSERS_PATH="$PWD/.runtime/browsers" npx playwright install chromium
npm run test:browser
npm run test:package
npm run test:containerThe acceptance suite exercises installed Pi packages and actual pi-graph child processes. The deterministic provider tests transport, tool calls, images, orchestration, persistence, and policy enforcement; optional live-provider validation is described separately in the validation guide.