RunMat
  • Pricing
RunMat
GitHub
GitHub
DownloadSign InTry in Browser
DesktopRuntimeServer
RunMat

Run math blazing fast

GitHubX (Twitter)LinkedIn

Company

  • About
  • Pricing
  • Contact
  • License
  • Privacy

Learn

  • Docs
  • Blog
  • Benchmarks
  • RunMat vs MATLAB Online

Get product updates and release notes from the RunMat team.

© 2026 Dystr · Made withfor the scientific community.

RunMat™ is a registered trademark of Dystr, Inc. MATLAB® is a registered trademark of The MathWorks, Inc. RunMat is not affiliated with, endorsed by, or sponsored by The MathWorks, Inc.

/
    • Installation
    • Run Your First Script
    • Command Line Interface
    • Projects
    • Configuration
    • MATLAB Compatibility
    • MATLAB Language Extensions
Docs>Runtime>Getting Started

Configuration Reference

RunMat utilizes a hierarchical configuration system that manages project-level metadata, source organization, and runtime execution parameters. The configuration is primarily driven by a manifest file (runmat.toml or runmat.json) and can be overridden by environment variables and CLI arguments.

For a user-facing guide to project layout, source roots, dependencies, and named entrypoints, see Projects. This page is the reference for manifest and runtime settings.

Configuration Resolution Order

RunMat resolves configuration settings using a specific precedence. Lower-numbered levels are overridden by higher-numbered levels:

  1. Built-in Defaults
  2. Project Manifest: Settings found in runmat.toml or runmat.json. The system automatically discovers this file by walking up the directory tree from the source file being executed
  3. Environment Variables: Variables such as RUNMAT_CONFIG or RUNMAT_JIT_THRESHOLD
  4. CLI Arguments: Explicit flags passed to the runmat binary (e.g., --no-jit or --gc-preset)

Example Project Manifest (runmat.toml)

[package]
name = "my-project"
version = "0.1.0"
runmat-version = ">=0.4.0"

[dependencies]
utils = { path = "../utils", version = "0.1.0" }

[sources]
roots = ["src"]

[entrypoints.hello]
path = "hello.m"

[runtime.language]
compat = "runmat"

You can then execute the project's hello entrypoint with:

runmat run hello

Project Reference

Project sections describe package identity, source layout, dependencies, and named entrypoints.

[package]

KeyTypeDefaultNotes
namestringrequiredPackage identifier.
versionstringunsetPackage version metadata.
runmat-versionstringunsetMinimum RunMat version gate. Accepts >=x.y.z or x.y.z.

[sources]

KeyTypeDefaultNotes
rootsstring[]requiredSource root directories, relative to the config file directory.

[dependencies]

Each dependency is keyed by alias.

[dependencies]
utils = { path = "../utils", version = "0.1.0" }
FieldTypeDefaultNotes
pathstringunsetLocal dependency path; mutually exclusive with remote source fields.
gitstringunsetCredential-free HTTPS or SSH Git repository URL.
revstringunsetExact Git commit selector.
tagstringunsetMutable Git tag selector; mutually exclusive with rev and branch.
branchstringunsetMutable Git branch selector.
subdirstring""Package subdirectory inside a Git repository.
projectstringunsetRunMat Server project ID.
servicestringactive ServerCredential-free HTTPS Server origin.
snapshotstringmainServer snapshot tag or exact snap_... ID.
versionstringunsetVersion requirement or metadata for the dependency declaration.

[entrypoints.<name>]

Define named targets that can be executed from CLI.

[entrypoints.main]
module = "app.main"
function = "main"
[entrypoints.batch]
path = "scripts/run_batch.m"
FieldTypeDefaultNotes
pathstringunsetFile target. .m is inferred when omitted; FEA study files should use .fea.
modulestringunsetModule path under source roots.
functionstringunsetFunction name for module target.

Exactly one target mode is required: path or module + function.

Entrypoint CLI examples:

runmat run main
runmat run studies/bracket_static.fea
runmat benchmark main --iterations 25 --jit

Desktop Project Reference

Desktop project settings are stored in the same runmat.toml or runmat.json document as package, source, test, and runtime configuration. Updating Desktop settings preserves unrelated sections and comments.

Legacy .runmat settings are migrated automatically into the project’s runmat.toml or runmat.json file.

[desktop.artifacts]
root = ".artifacts"

[desktop.run_history]
mode = "budgeted"
trace = true
logs = "all"

[desktop.script]
clear_workspace_before_run = true
clear_figures_before_run = true

[desktop.notebook]
on_error = "stop"
rerun_after_cancel = "remaining"
Section and keyTypeDefaultAllowed values / notes
desktop.artifacts.rootstring".artifacts"Project-relative subdirectory; absolute paths, .., and overlap with RunMat configuration/internal-state paths are rejected.
desktop.run_history.modestring"budgeted"off, budgeted, full.
desktop.run_history.tracebooleantruePersists the trace channel with retained runs.
desktop.run_history.logsstring"all"off, errors, all.
desktop.script.clear_workspace_before_runbooleantrueClears workspace state before a script run.
desktop.script.clear_figures_before_runbooleantrueClears figures before a script run.
desktop.notebook.on_errorstring"stop"stop, continue.
desktop.notebook.rerun_after_cancelstring"remaining"remaining, all.

Runtime Reference

All runtime settings are under [runtime]. Runtime settings control the behavior of the RunMat runtime.

[runtime]

KeyTypeDefaultNotes
callstack_limitinteger200Max retained call stack frames for diagnostics.
error_namespacestring""Error ID namespace. Empty value is normalized at startup by language compatibility mode (set to RunMat in compat = "runmat" mode).
verbosebooleanfalseEnables verbose execution output.

[runtime.language]

KeyTypeDefaultAllowed valuesNotes
compatstring"runmat"runmat, matlab, strictLanguage compatibility mode.

See MATLAB Language Compatibility for the compatibility modes and MATLAB Language Extensions for the RunMat-only behavior controlled by those modes.

[runtime.jit]

KeyTypeDefaultNotes
enabledbooleantrueEnables JIT compilation.
thresholdinteger10Executions before JIT tiering triggers.
optimization_levelstring"speed"none, size, speed, aggressive.

[runtime.gc]

KeyTypeDefaultNotes
presetstringunsetlow-latency, high-throughput, low-memory, debug.
young_size_mbintegerunsetYoung generation size override (MB).
threadsintegerunsetGC worker thread override.
collect_statsbooleanfalseEnables GC statistics collection.

[runtime.accelerate]

KeyTypeDefaultNotes
enabledbooleantrueEnables acceleration subsystem.
providerstring"wgpu"auto, wgpu, inprocess.
allow_inprocess_fallbackbooleantrueFalls back to in-process provider if hardware provider fails.
wgpu_power_preferencestring"auto"auto, high-performance, low-power.
wgpu_force_fallback_adapterbooleanfalseForces WGPU fallback adapter selection.

[runtime.accelerate.auto_offload]

KeyTypeDefaultNotes
enabledbooleantrueEnables auto-offload planner.
calibratebooleantrueEnables calibration mode for planner profile generation.
profile_pathstringunsetOptional profile cache path.
log_levelstring"trace"off, info, trace.

[runtime.plotting]

KeyTypeDefaultNotes
modestring"auto"auto, gui, headless.
force_headlessbooleanfalseForces non-interactive rendering behavior.
backendstring"auto"auto, wgpu, static, web.
scatter_target_pointsintegerunsetOptional scatter decimation target.
surface_vertex_budgetintegerunsetOptional surface vertex LOD budget.

[runtime.plotting.gui]

KeyTypeDefaultNotes
widthinteger1200Default GUI window width.
heightinteger800Default GUI window height.
vsyncbooleantrueEnables VSync.
maximizedbooleanfalseStarts window maximized.

[runtime.plotting.export]

KeyTypeDefaultNotes
formatstring"png"png, svg, pdf, html.
dpiinteger300Raster export DPI.
output_dirstringunsetDefault export output directory.
scene_budget_bytesinteger8388608Maximum serialized figure-scene payload size used by Desktop/browser export and replay.

[runtime.fea]

FEA settings configure study execution, run artifact storage, geometry prep artifacts, and coupled-field artifact roots.

KeyTypeDefaultNotes
artifact_storestringfilesystemfilesystem or in_memory FEA run store.
artifact_rootstring"artifacts"Filesystem root used by FEA run artifacts and derived evidence roots.
artifact_max_runsintegerunsetOptional global retained run limit.
artifact_max_runs_per_kindintegerunsetOptional retained run limit per physics family.
study_artifact_rootstring"artifacts/studies"Study validate, plan, run, and sweep evidence root.
geometry_prep_artifact_rootstring"artifacts/geometry-prep"Geometry prep artifact root.
geometry_prep_max_artifactsintegerunsetOptional global retained prep artifact limit.
geometry_prep_max_artifacts_per_geometryintegerunsetOptional retained prep artifact limit per geometry id.
geometry_prep_max_age_secondsintegerunsetOptional prep artifact age limit.
geometry_prep_require_latest_revisionbooleanunsetWhen true, prep-aware runs reject stale geometry revisions.
thermo_field_artifact_rootstring"artifacts/thermo-fields"Thermo-field artifact root for coupled thermal paths.

Example:

[runtime.fea]
artifact_store = "filesystem"
artifact_root = "artifacts"
artifact_max_runs = 1000
artifact_max_runs_per_kind = 100
study_artifact_root = "artifacts/studies"
geometry_prep_artifact_root = "artifacts/geometry-prep"
geometry_prep_max_artifacts = 500
geometry_prep_max_artifacts_per_geometry = 20
geometry_prep_max_age_seconds = 2592000
geometry_prep_require_latest_revision = true
thermo_field_artifact_root = "artifacts/thermo-fields"

[runtime.telemetry]

KeyTypeDefaultNotes
enabledbooleantrueEnables telemetry client.
show_payloadsbooleanfalseEchoes serialized payloads to stdout.
http_endpointstringunsetOptional HTTP override. When unset, runtime uses built-in collector endpoint.
udp_endpointstring"udp.telemetry.runmat.com:7846"UDP collector endpoint.
queue_sizeinteger256Async telemetry queue size (minimum bounded internally).
sync_modebooleanfalseSends telemetry synchronously on caller thread.
drain_modestring"all"none, all.
drain_timeout_msinteger50Max drain wait on shutdown (capped internally).
require_ingestion_keybooleantrueDisables telemetry if key is required but unavailable.

[runtime.logging]

KeyTypeDefaultNotes
levelstring"warn"error, warn, info, debug, trace.
debugbooleanfalseForces debug logging path.
filestringunsetReserved log file path option (runtime currently logs to process logger).

Environment Variables

Config Selection

  • RUNMAT_CONFIG: absolute or relative path to runmat.toml / runmat.json

Service/Auth

  • RUNMAT_API_KEY
  • RUNMAT_SERVER_URL
  • RUNMAT_ORG_ID
  • RUNMAT_PROJECT_ID

Telemetry

  • RUNMAT_TELEMETRY_KEY (ingestion key override)

FEA

FEA runtime config is preferred. These environment variables are supported as fallbacks:

  • RUNMAT_FEA_ARTIFACT_STORE
  • RUNMAT_FEA_ARTIFACT_ROOT
  • RUNMAT_FEA_ARTIFACT_MAX_RUNS
  • RUNMAT_FEA_ARTIFACT_MAX_RUNS_PER_KIND
  • RUNMAT_FEA_STUDY_ARTIFACT_ROOT
  • RUNMAT_GEOMETRY_PREP_ARTIFACT_ROOT
  • RUNMAT_GEOMETRY_PREP_MAX_ARTIFACTS
  • RUNMAT_GEOMETRY_PREP_MAX_ARTIFACTS_PER_GEOMETRY
  • RUNMAT_GEOMETRY_PREP_MAX_AGE_SECONDS
  • RUNMAT_GEOMETRY_PREP_REQUIRE_LATEST_REVISION
  • RUNMAT_THERMO_FIELD_ARTIFACT_ROOT

Full Reference Example

[package]
name = "image-pipeline"
version = "0.1.0"
runmat-version = ">=0.4.0"

[sources]
roots = ["src", "lib"]

[dependencies]
utils = { path = "../utils", version = "0.1.0" }

[entrypoints.main]
module = "app.main"
function = "main"

[entrypoints.batch]
path = "scripts/run_batch.m"

[runtime]
callstack_limit = 200
error_namespace = "RunMat"
verbose = false

[runtime.language]
compat = "runmat"

[runtime.jit]
enabled = true
threshold = 10
optimization_level = "speed"

[runtime.gc]
preset = "low-latency"
young_size_mb = 128
threads = 8
collect_stats = false

[runtime.accelerate]
enabled = true
provider = "wgpu"
allow_inprocess_fallback = true
wgpu_power_preference = "auto"
wgpu_force_fallback_adapter = false

[runtime.accelerate.auto_offload]
enabled = true
calibrate = true
profile_path = ".runmat/auto_offload.json"
log_level = "trace"

[runtime.plotting]
mode = "auto"
force_headless = false
backend = "auto"
scatter_target_points = 250000
surface_vertex_budget = 400000

[runtime.plotting.gui]
width = 1200
height = 800
vsync = true
maximized = false

[runtime.plotting.export]
format = "png"
dpi = 300
output_dir = "artifacts/figures"

[runtime.fea]
artifact_store = "filesystem"
artifact_root = "artifacts"
artifact_max_runs = 1000
artifact_max_runs_per_kind = 100
study_artifact_root = "artifacts/studies"
geometry_prep_artifact_root = "artifacts/geometry-prep"
geometry_prep_max_artifacts = 500
geometry_prep_max_artifacts_per_geometry = 20
geometry_prep_max_age_seconds = 2592000
geometry_prep_require_latest_revision = true
thermo_field_artifact_root = "artifacts/thermo-fields"

[runtime.telemetry]
enabled = true
show_payloads = false
udp_endpoint = "udp.telemetry.runmat.com:7846"
queue_size = 256
sync_mode = false
drain_mode = "all"
drain_timeout_ms = 50
require_ingestion_key = true

[runtime.logging]
level = "warn"
debug = false
On this page
  • Configuration Resolution Order
  • Example Project Manifest (runmat.toml)
  • Project Reference
  • [package]
  • [sources]
  • [dependencies]
  • [entrypoints.<name>]
  • Desktop Project Reference
  • Runtime Reference
  • [runtime]
  • [runtime.language]
  • [runtime.jit]
  • [runtime.gc]
  • [runtime.accelerate]
  • [runtime.accelerate.auto_offload]
  • [runtime.plotting]
  • [runtime.plotting.gui]
  • [runtime.plotting.export]
  • [runtime.fea]
  • [runtime.telemetry]
  • [runtime.logging]
  • Environment Variables
  • Config Selection
  • Service/Auth
  • Telemetry
  • FEA
  • Full Reference Example