Skip to main content

sim

sim reads existing CAE files and turns them into structured text an agent can use — without launching the solver. It also detects local solver installs, validates scripts before you run them, and can hold a live solver session open when an agent needs to work one verified step at a time.

Python 3.10+ · Apache-2.0 · alpha


Scan existing simulation assets

Point sim scan at a folder of .mph / .inp / .cas.h5 / .aedt files and get back structured JSON an agent can reason over — model inventory, materials, boundary conditions, mesh counts, solve settings. No solver, no license, and no plugin needed:

uv init                  # only if this is not already a uv project
uv add sim-cli-core
uv run sim --json scan ./historical-cases
$ uv run sim --json scan ./cases/beam.inp --full
{
  "schema_version": "sim.scan/v1",
  "assets": [{
    "file_name": "beam.inp",
    "format": "abaqus-inp",
    "summary": {"data": {
      "title": "Cantilever beam thermal-stress",
      "node_count": 3,
      "element_count": 1,
      "materials": ["STEEL"],
      "sections": ["SOLID SECTION:STEEL"],
      "steps": ["STATIC"],
      "boundary_keywords": ["BOUNDARY"],
      "load_keywords": ["CLOAD"],
      "output_keywords": ["NODE PRINT"]
    }}
  }]
}

(abridged — the real envelope also carries ok, engine, request, and a roll-up summary block.)

Solver Files --format id
COMSOL .mph comsol-mph
Abaqus .inp, .inc abaqus-inp
Fluent .cas.h5, .msh.h5 fluent-hdf5
Ansys Electronics Desktop (HFSS / Icepak) .aedt, .aedtz hfss-aedt
Ansys Mechanical .mechdb, .mechdat ansys-mechanical
Icepak Classic .tzr icepak-tzr
Simcenter FloTHERM .pack, .xml, .floxml flotherm-pack, flotherm-floxml

The default view is bounded — lists come back as {total, sample, truncated} so a large scan cannot blow up an agent's context — and absolute paths are redacted unless --include-paths is set. Use --full for the complete parser result on a small input set, --limit and --no-recursive to bound a directory walk, and --format to force a format for an explicitly named file.

Example: what's in this folder?

Scan ./legacy-cases and tell me which models are package-level thermal
studies, which already have solved results, and what total power each one
assumes. Use `uv run sim --json scan`.

Find solvers and validate scripts

These need the solver's plugin installed — sim-cli-core ships with no drivers:

uv add sim-plugin-comsol
uv run sim plugin sync-skills --target .agents/skills --copy
uv run sim check comsol                    # detect local installs and versions
uv run sim plugin doctor comsol --deep     # plugin wiring + solver detection
uv run sim lint <script>                   # validate before running

Use .agents/skills for Codex and GitHub Copilot, .claude/skills for Claude Code. Two things are worth telling the agent explicitly: run through the project with uv run sim ... so it sees the project's installed plugins, and never guess solver API names — inspect the live model or the solver's local docs first.

No uv, or installing from a wheel, git, or a local checkout — and the sim.toml project manifest schema — are covered in docs/plugin-install.md.

Drive a live solver session

When an agent needs the solver held open across steps, sim connect starts a local runtime and keeps the session alive. A bounded step is one modeling, meshing, solving, or postprocessing action that can be inspected and verified before continuing: create a geometry feature, assign a material, generate a mesh, run one study, extract a probe value, export a result table.

Prefer this loop over one large generated script:

  1. uv run sim check <solver>, then uv run sim connect --solver <solver>
  2. uv run sim inspect session.versions before changing state — including after any human GUI edit, since an engineer can cut in through the solver GUI at any time and a previous script may no longer match the real session
  3. uv run sim exec --file step.py --label <step> — one bounded step
  4. uv run sim inspect last.result, verify with numeric evidence (mesh statistics, convergence, probes, conservation checks, tolerances), checkpoint
  5. uv run sim disconnect, then uv run sim stop to free the local runtime

The bundled solver skill enforces the details, so give the agent the engineering goal in plain language rather than a list of sim sub-steps:

Simulate the natural-convection cooling of the attached `pcb.mph` and report the
maximum junction temperature. Use the installed COMSOL skill. If you need a
visible COMSOL Desktop session, connect with `--ui-mode gui`.

Running the solver on a different host — and the security constraints that come with it — is covered in docs/remote-solvers.md.

Solver plugins

Solver knowledge is not in the core CLI. It comes from plugins, each of which provides a driver, so sim can launch or talk to the solver, and a skill, so the agent knows that solver's workflow, pitfalls, and inspection rules.

Solver Package spec Plugin repo
COMSOL sim-plugin-comsol sim-plugin-comsol
Abaqus sim-plugin-abaqus sim-plugin-abaqus
LTspice sim-plugin-ltspice sim-plugin-ltspice

For the curated full list, see sim-plugin-index.

Commands

Every command takes --json and returns a stable envelope with a closed error-code enum — see docs/agent-readability.md.

Command Use it for
uv run sim --json scan <path>... Parse historical simulation assets without launching a solver.
uv run sim plugin list Show plugins visible in this project environment.
uv run sim plugin info <solver> Show plugin metadata and compatibility summary.
uv run sim plugin doctor <solver> --deep Check plugin wiring plus local solver detection.
uv run sim plugin sync-skills --target .agents/skills --copy Materialize installed plugin skills for your agent.
uv run sim check <solver> Detect local or remote solver installs.
uv run sim connect --solver <solver> Open a persistent solver session.
uv run sim exec --file step.py Run one bounded step in the live session.
uv run sim inspect <target> Query session, result, or solver-specific state.
uv run sim run script.py --solver <solver> Run a deterministic one-shot script.
uv run sim logs last --field <name> Read back a one-shot run's parsed result.
uv run sim disconnect Tear down the active session.
uv run sim stop Stop the local runtime that sim connect auto-started.
uv run sim setup Validate sim.toml and report declared plugin package specs.

Run uv run sim --json describe for a machine-readable command manifest, or uv run sim <command> --help for exact options.

Solver ownership

sim-cli does not bundle or redistribute simulation solvers or vendor SDKs. Install and operate each underlying solver according to its vendor terms. See NOTICE for optional SDK dependency notes.

sim-cli is an independent open-source project and is not affiliated with, endorsed by, or sponsored by any solver vendor. Product, solver, and company names remain the property of their respective owners.

Docs

License

Apache-2.0 — see LICENSE.

Metadata

Release files for sim-cli-core 0.3.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sim-cli-core 0.3.9
File Size Uploaded
sim_cli_core-0.3.9.tar.gz 240.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sim-cli-core 0.3.9
File Interpreter ABI Platform
sim_cli_core-0.3.9-py3-none-any.whl Python 3 none any Details

Total release size: 349.1 kB

Release files / sim_cli_core-0.3.9.tar.gz

Download URL sim_cli_core-0.3.9.tar.gz
Size 240.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c81c302b7459f60b15df71208b282ce2840bb27356173014a4c2e58204569366
BLAKE2b-256 checksum
How to use checksums
84fc829c7a72db77977e7c60d748b7806fbc141d6e4118509898f3eec2f704c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Release files / sim_cli_core-0.3.9-py3-none-any.whl

Download URL sim_cli_core-0.3.9-py3-none-any.whl
Size 108.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
91a61797275b0aa8e0a8ba7d57c0b4265210b232536053ca2ed72b241d731239
BLAKE2b-256 checksum
How to use checksums
607e30ee4d855eb24f0d2e34e5f55239bfb68224980b598bcb7119b78accaab4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.9 This release

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page