simulate clones your environment in memory, applies a hypothetical change, recomputes capabilities and attack paths through the same pipeline as a real scan, and compares before with after. Your configuration is never touched; the last line of every run says so.
What you can change
Flags are repeatable and combine, so you can evaluate a whole hardening change at once.
Output
--json emits the versioned aspex-simulate/v1 schema: before/after environments, capability deltas, and attack paths added and removed.
Where simulation shows up elsewhere
aspex explain "…"ends every YES answer with the controls that break the path, each simulated so you see which one removes it on its own.aspex tightenruns each recommendation through the simulator and shows its security impact next to the functional impact.aspex inspect <command|path>simulates adding a server you have not installed yet.aspex mcpexposesaspex_simulate_changeso your coding agent can check a proposed.mcp.jsonbefore it writes it.