Skip to main content

Dynamical CLI

Release CI Python License

Dynamical CLI is an open-source execution interface for scientific agents and facilities. It lets agents compose executable virtual laboratories from admitted capabilities, run campaigns, and route physical requests through a fail-closed authority gate.

Virtual laboratories let agents explore counterfactual campaigns, learn how instruments and workflows behave, and generate model-derived observations and verified execution trajectories. Connected facilities can then supply the physical evidence that virtual environments cannot establish.

Dynamical is designed for agent use. The Codex plugin and portable Agent Skill supply the operating interface. The Python package supplies the runtime.

See the virtual laboratory run

https://github.com/user-attachments/assets/01cbd9b8-33b9-40d7-935b-9b90ab5c8df2

The video pairs a recorded agent campaign with a synchronized Isaac Sim replay. The agent composes a multi-instrument campaign, receives a model-generated scientific observation, revises its request for a physical experiment, and gets HOLD because the campaign has no approved physical route.

The replay visualizes the recorded composition in Isaac Sim. It is not a live physical execution or a calibrated twin of the full workstation.

Install for an agent

Install the runtime with Python 3.11 or later:

python -m pip install dynamical-cli

Add the Codex plugin:

codex plugin marketplace add Dynamical-Systems-Research/dynamical-cli --json
codex plugin add dynamical@dynamical-systems-research --json

The plugin gives Codex the dynamical skill. The same portable skill can run in Claude Code and other compatible agent environments:

git clone https://github.com/Dynamical-Systems-Research/dynamical-cli.git
cd dynamical-cli
npx skills add . --skill dynamical --global --copy --yes

The repository does not include an MCP server.

Run a virtual campaign

Download the example requirement and run the complete virtual workflow:

curl -fsSLO https://raw.githubusercontent.com/Dynamical-Systems-Research/dynamical-cli/main/examples/quickstart/requirement.yaml

dynamical capabilities --json
dynamical compose requirement.yaml -o composition.json
dynamical compile composition.json -o compiled-world
dynamical run compiled-world -o trace.ndjson
dynamical validate trace.ndjson --json

The example transfers one sample into an ultrasonic conditioning station and runs a bounded virtual process. The trace records each action, observation, constraint, sample-state change, cost, and duration.

Use dynamical compose --schema to inspect the requirement schema. Use dynamical capabilities --operation <operation-id> --json to inspect the typed contract for one operation.

How Dynamical works

Dynamical exposes five commands:

  • capabilities lists operations, providers, and admission states.
  • compose binds a research requirement to compatible admitted providers.
  • compile creates a target-specific virtual laboratory and execution contract.
  • run executes a simulation or replays a recorded campaign.
  • validate checks structure, provenance, evidence, and authority.

The reusable unit is a scientific capability. Each capability declares typed inputs, outputs, units, limits, uncertainty, failure states, provenance, and execution authority. A provider can bind that contract to a simulator, a calibrated instrument model, a read-only facility connection, or an approved physical instrument.

The agent controls the scientific objective, experiment parameters, operation order, analysis, and stopping decision. Dynamical controls provider admission, evidence types, trace integrity, facility policy, and physical authority.

Automation contract

Dynamical uses these process exit codes:

  • Exit 0: the command produced an executable or valid result.
  • Exit 1: the command produced a structured domain-negative result, such as HOLD or failed validation.
  • Exit 2: the invocation is invalid or the input is malformed.

Automation must inspect a structured result that returns exit 1. It must not treat the result as an ordinary crash.

Default receipts use public evidence and authority facts: evidence_classes, execution_status, embodied_evidence_bound, claim_boundary, authority_anchor, and validation_reasons. Internal maturity rubrics are not part of the CLI protocol.

Custom --registry and --facility inputs are proposals. They cannot grant themselves authority. In v0.1, the installed bundle is the local authority anchor.

capabilities --registry <path> inspects a proposal without activating it. Its receipt reports effective admission after comparison with the installed authority and preserves any self-declared admission as proposed_admission. Direct manifest compilation creates a validation-only world with no campaign execution route; its next_command is validate, not run.

Portable worlds and trace-bound execution

OpenUSD carries the portable compiled world, including the scene, instrument assets, and campaign composition. NVIDIA Isaac Sim supplies the embodied visualization layer. Dynamical can compile the same campaign composition for each target while preserving the bindings needed to compare and replay it.

Instrument models produce scientific observations. Each model declares its inputs, outputs, units, operating range, uncertainty, and evidence class. One hash-bound trace connects campaign actions, scene state, observations, sample lineage, validation, and replay.

Virtual output remains separate from physical evidence. A physical observation can only come from a facility-authorized execution.

Instrument onboarding

The included dynamical-instrument skill turns source evidence into a candidate integration. It works from manuals, interfaces, calibration records, operating limits, safety controls, facility authority, and licensed assets.

An integration contains 3 reviewable parts:

  1. An instrument skill that describes capabilities, procedures, limits, and recovery.
  2. An adapter that binds the contract to a simulator or physical instrument.
  3. A typed contract for actions, observations, units, state, errors, and provenance.

Conformance tests check the candidate. The facility decides which capabilities and physical routes to approve. An integration cannot admit itself. Missing calibration, licensing, safety, or authority remains an explicit review item.

Evidence and authority

Simulation, calibrated-model output, replay, and physical measurements are different evidence classes. Dynamical preserves that distinction in the capability registry and campaign trace.

Validation confirms that an artifact follows its declared contract. It does not establish scientific truth or optimality. Physical execution requires an admitted provider, facility policy, and independent approval. A missing route or authority record returns a structured HOLD receipt.

Source and licensing

Dynamical is licensed under the Apache License 2.0. Third-party geometry and calibration data keep their original licenses and attribution. See THIRD_PARTY_NOTICES.md for details.

Machine-readable source records bind derived artifacts to source hashes, provenance, license evidence, and known limits. A derived asset does not replace its source or grant new rights.

Development

git clone https://github.com/Dynamical-Systems-Research/dynamical-cli.git
cd dynamical-cli
uv sync --extra dev
uv run ruff check .
uv run ruff format --check .
uv run pytest -q

Metadata

Release files for dynamical-cli 0.1.7

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

Source distribution (sdist)

Source distribution for dynamical-cli 0.1.7
File Size Uploaded
dynamical_cli-0.1.7.tar.gz 1.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dynamical-cli 0.1.7
File Interpreter ABI Platform
dynamical_cli-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 3.7 MB

Release files / dynamical_cli-0.1.7.tar.gz

Download URL dynamical_cli-0.1.7.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
89d1add647b1ad6f24de029cfe4ed612f308c4b80a3b7ae994ad928c191d76d1
BLAKE2b-256 checksum
How to use checksums
723e14f64e7a4de3138bcd6abb307f6c8fdddb36e72a25cfe03e1a2cc71520fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dynamical_cli-0.1.7-py3-none-any.whl

Download URL dynamical_cli-0.1.7-py3-none-any.whl
Size 1.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
c8261486882ec118b945467a8d2e003d3a1ed8a8c921955e5bb03a17f7938392
BLAKE2b-256 checksum
How to use checksums
548093ec0f81e71eb2ac1845b52cbfe76cd4854c9eb98be15bd700aba1cbe00f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.1.22

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

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