Quick Start¶
Start All Services¶
Open three terminal tabs from the AutoMOOSE/ root:
Terminal 1 — FastAPI backend (port 8000):
export $(grep -v '^#' config.env | xargs)
uvicorn automoose.server:app --host 127.0.0.1 --port 8000
Terminal 2 — MCP server (port 8001):
export $(grep -v '^#' config.env | xargs)
uvicorn automoose.mcp_server:app --host 127.0.0.1 --port 8001
Terminal 3 — Frontend (port 5174):
cd frontend
npm run dev
Then open http://localhost:5174 in your browser.
Tip
Use 127.0.0.1 rather than localhost to avoid IPv4/IPv6 ambiguity in
local API calls. Stop the backend with Ctrl+C (never Ctrl+Z); if a
port is stuck, free it with lsof -ti:8000 | xargs kill -9.
Run Your First Simulation¶
In the AutoMOOSE UI, type a natural-language prompt such as:
“Run a grain growth simulation at 600 K for 100 seconds with a 50×50 mesh.”
AutoMOOSE will:
Parse your intent (f₁ Architect)
Generate the MOOSE input file (f₂ Input Writer)
Execute the simulation on the configured backend (f₃ Runner)
Recover from any convergence failures (f₄ Reviewer)
Extract kinetics and produce plots (f₅ Visualization)
Verify the result against physics invariants (f₆ Skeptic)
Results are saved under runs/<timestamp>_<physics>/, and the Skeptic
reports a credibility verdict for the run.
Headless / scripted runs¶
You can also drive the full pipeline from the command line, which is the basis for batch benchmarks and HPC sweeps:
python -m automoose.agents.orchestrator --physics grain_growth \
--params '{"T":800,"n_grains":50}'
Choosing where it runs¶
Set the execution backend in config.env (see Execution Backends):
EXECUTION_BACKEND=local # run on this machine
EXECUTION_BACKEND=hpc # run on NERSC Perlmutter via SLURM
Monitor Runs¶
Check run status directly from JSON records:
python3 -c "
import json, glob
for p in sorted(glob.glob('runs/2026*/record.json')):
r = json.load(open(p))
print(r.get('status'), p)
"