Small app that combines:
- the Claude Agent SDK for orchestration
- the local AutonomyX Model Runner as a callable tool
- a packaged macOS desktop shell that can be built into a
.dmg
The backend starts a Claude agent request and exposes the selected AutonomyX runner model as an in-process MCP tool. Claude can call that tool during the turn, inspect the local-model output, and then produce the final answer.
The frontend lets you:
- choose a Claude model
- refresh and choose runner models from
RUNNER_BASE_URL - load the selected runner model
- edit the model selection config from the UI
- cancel a running request and switch to another model immediately
- choose from 9 memory types for the agent run
- inject dynamic context per run without changing saved config
- attach a per-run decision log for explicit prior decisions and rationale
- attach evaluation criteria for quality and acceptance checks
- attach per-run feedback and guardrails
- attach prompt registry, skill registry, model registry, and LangGraph components
- attach decide components
- emit optional Langfuse traces for each agent run
- submit a prompt to the Claude agent
server.js: Express app and Claude Agent SDK integrationpublic/: static frontend.env.example: required environment variablesconfig.json: runtime-persisted UI config for model selection and runner URL
The app exposes 9 built-in memory types: working, episodic, semantic, procedural, preference, project, task, decision, and artifact.
The app treats AutonomyX Model Runner as the runtime source of truth. The built-in defaults are limited to the local AutonomyX runner models.
-
Start the AutonomyX Model Runner:
cd /Users/apple/organization/products/model-runner/repo ./run.sh -
Install app dependencies:
cd /Users/apple/organization/products/claude-agent-runner-app/repo npm install -
Create
.env:cp .env.example .env
-
Set at least:
ANTHROPIC_API_KEY=... RUNNER_BASE_URL=http://127.0.0.1:8765
Optional Langfuse tracing:
LANGFUSE_PUBLIC_KEY=... LANGFUSE_SECRET_KEY=... LANGFUSE_BASE_URL=https://cloud.langfuse.com
-
Start the app:
npm run dev
This launches the Electron desktop app and starts the local Express server inside it.
If you only want the browser version:
npm run dev:webcd /Users/apple/organization/products/claude-agent-runner-app/repo
npm install
npm run dist:dmgThe generated .dmg will be written to dist/.
Build the production image:
cd /Users/apple/organization/products/claude-agent-runner-app/repo
docker build -t your-dockerhub-user/claude-agent-runner-app:latest .Run it:
docker run --rm -p 3000:3000 \
-e ANTHROPIC_API_KEY=... \
-e RUNNER_BASE_URL=http://host.docker.internal:8765 \
your-dockerhub-user/claude-agent-runner-app:latest- The runner model must be loaded before the Claude agent can use it.
- The app defaults to a small list of Claude models. Change
CLAUDE_MODELSin.envif you want a different set. - The integration keeps built-in Claude tools disabled and only auto-approves the two MCP tools defined in
server.js. - Langfuse tracing is only enabled when both Langfuse keys are present.
- The DMG build is unsigned by default. macOS may warn before first launch unless you sign and notarize it.