Skip to content

CLI reference

Every verb and flag of the rayrf command line, generated from the live argument parsers, so this page always matches the shipped build. Workflows and worked examples are on CLI overview, spec authoring on Scripting and specs.

Local verbs

`rayrf auth`

Manage the local license cache. Activation binds the key + machine id pair on the RayRF licensing service and persists the result so the desktop UI and the CLI both pick it up on next launch. The auth subcommand does not require the headless capability.

FlagValueDefaultMeaning
--license-keyLICENSE_KEYLicense key to activate on this machine. Format: the same string you received by email after subscribing. Case is normalized to upper, surrounding whitespace stripped.
--machine-nameMACHINE_NAMEOptional human-readable label for this machine (shown in the account dashboard's seat list). Defaults to the host name.
--statusPrint the cached license state and perform a fresh server check. Default action when no other flag is given.
--deactivateRelease this machine's seat on the licensing service and clear the local cache.

`rayrf run`

Run one project or all projects in a folder (sequential).

FlagValueDefaultMeaning
--project, -pPROJECTPath to a single .rfsim/.emflux project file.
--folder, -fFOLDERPath to a folder containing .rfsim/.emflux projects.
--recursiveWhen using --folder, search recursively.
--backendBACKENDBackend to run: cpu, cuda, or a path to a backend executable. Overrides the job file's backend field. If omitted, auto-detected next to the app (CUDA preferred).
--air-around, --air-around-mmAIR_AROUND_MMOverride FDTD air around (mm).
--air-above, --air-above-mmAIR_ABOVE_MMOverride FDTD air above (mm).
--air-below, --air-below-mmAIR_BELOW_MMOverride FDTD air below (mm).
--dx, --dx-mmDX_MMOverride dx (mm).
--dy, --dy-mmDY_MMOverride dy (mm).
--dz, --dz-mmDZ_MMOverride dz (mm).
--meshuniform / gradedMesh-style override for manual/advanced meshing. 'uniform' disables grading so dx/dy/dz are the literal cell size everywhere (a true uniform mesh); 'graded' enables board refinement by the per-axis grading multipliers. Default: leave the project's saved setting (in advanced mode that can silently refine the board to dx/mult).
--freq-min, --freq-min-mhzFREQ_MIN_MHZOverride frequency band minimum in MHz.
--freq-max, --freq-max-mhzFREQ_MAX_MHZOverride frequency band maximum in MHz.
--boundary-conditionBC_ALLOverride boundary condition (e.g. PML8).
--eps-rEPS_ROverride dielectric eps_r.
--thickness, --thickness-mmTHICKNESS_MMOverride dielectric thickness (mm).
--loss-tangentLOSS_TANGENTOverride every dielectric layer's loss tangent (tan d). 0 = lossless; typical FR4 ~0.02; low-loss substrates ~0.001-0.005.
--fft-length-multiplier, --fft-multFFT_LENGTH_MULTIPLIERForce override FFT length multiplier used for S-parameter post-processing (zero-padding). Must be >= 1.
--jobJOB_FILEPath to a YAML/JSON JobSpec. Overrides all other run flags.
--qualityQUALITYAuto-mode quality. Name ("low"|"medium"|"high"|"very-high"|"med-high") or float in [0,3].
--quality-fracQUALITY_FRACAuto-mode quality as a slider fraction in [0, 1] (multiplied by 3).
--sim-modeauto / advancedForce simulation mode (auto re-derives from --quality).
--convergence, --no-convergenceEnable or disable the mesh-convergence study (--convergence / --no-convergence). When enabled the run repeats up to conv_max_passes backend passes, refining dx/dy/dz by conv_mesh_refine_factor per pass, until the deepest S-parameter dips stabilize within the conv_* thresholds. Omit to use the project's saved setting.
--perf-modePerformance-benchmark mode: keep mesh/domain at the chosen quality but loosen ringdown to a fixed -20 dB (1e-2 energy ratio) and disable the convergence study so a high-quality CPU run finishes in minutes instead of 30+ minutes. Used by the perf harness.
--max-stepsMAX_STEPSHard cap on backend steps. Use to run a fixed-length throughput-only benchmark (e.g. --max-steps 100). When the cap is hit before ringdown, the S-parameter / radiation results are NOT physically valid; intended for kernel-throughput measurement only.
--vram-budget-mbVRAM_BUDGET_MBPre-flight VRAM budget in MB. When the auto-derive engine estimates the run will need more VRAM than this, the CLI bails out before launching the backend (writes a manifest with status='vram_overflow_predicted'). No effect in advanced mode. Default: no pre-flight check.
--no-surface-currentsForce-disable surface current capture regardless of the project's saved setting.
--no-nf2ffForce-disable NF2FF far-field capture regardless of the project's saved setting. The far-field DFT is VRAM-resident and scales with the Huygens surface x frequency count, so skipping it on an S-parameter-only run avoids large VRAM use for results that are not needed.
--no-raw-fieldsForce-disable the 3D field VTK dumps (every type: E, H, and total energy density) regardless of the project's saved setting.
--skip-geometry-exportDo not write geometry.vtk/geometry.vdb when NF2FF or 3D field export would normally request it. Useful for very large domains when the mesh is not needed.
--dry-runApply overrides, validate, export the case, and print the mesh estimate, then stop before launching the backend. Exit 2 if validation finds a blocking error.
--per-face-bcFACE=TYPE[:MM][]Set a per-face boundary condition (repeatable). FACE is one of x_lo, x_hi, y_lo, y_hi, z_lo, z_hi; TYPE is PML, PEC, or PMC; an optional :MM sets a fixed gap from the geometry to that face, realized exactly as given and overriding the air margins there. Faces without :MM follow the air margins. Example: --per-face-bc z_lo=PEC:2.0. Any per-face setting forces bc_all to Custom. Always give PEC/PMC faces an explicit gap.
--mesh-preview-sizeMESH_PREVIEW_SIZEPixel size of the mesh-preview PNG written by --export-mesh.
--save-after-runAfter the run, save the updated project (in-place unless --save-as is given).
--save-asSAVE_ASPath to save the project as after the run (implies --save-after-run).
--externalize-resultsproject / run / offWhere to store run results when the project is saved. 'project' writes results to a sidecar .rfsimout next to the .rfsim and makes that the project's saved default (so the .rfsim can be committed and the .rfsimout gitignored). 'run' does the same for this run only without changing the saved default. 'off' keeps results inside the .rfsim. Omit to use the project's own setting.
--out-dirOUT_DIRDirectory to write exports + run_manifest.json. Default: <project_dir>/_sim_result/<case>.
--export-sparamsall / s11 / s21 / noneallS-parameter CSV/PNG export selection.
--export-touchstoneAlso write Touchstone (.s1p/.s2p).
--export-smithWrite Smith chart PNG.
--export-polarWrite polar radiation pattern PNG (E-plane + H-plane).
--polar-freq-mhzPOLAR_FREQ_MHZTarget frequency (MHz) for polar plot; nearest available is used.
--export-rad3dWrite 3D radiation pattern PNG (PyVista off-screen).
--rad3d-freq-mhzRAD3D_FREQ_MHZTarget frequency (MHz) for 3D radiation plot; nearest available is used.
--export-rad3d-vtkAlso write radiation pattern as a VTK/VTP file.
--export-rad-patternWrite a flat radiation-pattern CSV (freq_hz,theta,phi,gain) from NF2FF data. Not a 3D render; runs under --no-3d-renders.
--export-meshWrite mesh preview PNG (PyVista off-screen).
--export-mesh-vtkAlso copy geometry.vtk into the out dir.
--export-currentsWrite surface-currents heatmap PNG at nearest frequency.
--currents-freq-mhzCURRENTS_FREQ_MHZTarget frequency (MHz) for surface currents.
--export-allConvenience: enable every export artifact.
--no-3d-rendersSkip PyVista off-screen exports (mesh preview, rad3d).
--setVAR_SET[]Variable override name=value applied before the run (repeatable; parametric-studio).
--settingNAME=VALUE[]Set any FDTD setting by name (repeatable), gated by the same value gate as the GUI. An unknown name, bad type/enum, or hard-bound value exits 2; a soft-bound value prints one warning and runs as set. See 'rayrf schema --what settings' for the field list.

`rayrf reprocess`

Recompute S-parameter CSV/PNG from embedded port time-series without running the backend. Updates the project file with refreshed embedded outputs.

FlagValueDefaultMeaning
--project, -pPROJECTPath to a single .rfsim/.emflux project file.
--folder, -fFOLDERPath to a folder containing .rfsim/.emflux projects.
--recursiveWhen using --folder, search recursively.
--fmin, --fmin-mhzFMIN_MHZOverride fmin (MHz).
--fmax, --fmax-mhzFMAX_MHZOverride fmax (MHz).
--fft-length-multiplier, --fft-multFFT_LENGTH_MULTIPLIEROverride FFT length multiplier used for reprocessing (>= 1).

`rayrf project`

Build / inspect / mutate a project from a declarative spec.

`rayrf project build`

Build a project from a spec file.

FlagValueDefaultMeaning
--specSPECSpec file (.json/.yaml).
--outOUTOutput project (.rfsim).

`rayrf project export-spec`

Export a project back to a spec.

FlagValueDefaultMeaning
--projectPROJECTProject (.rfsim).
--outOUTOutput spec (.json/.yaml).

`rayrf project query`

Machine-readable project readout.

FlagValueDefaultMeaning
--projectPROJECTProject (.rfsim).
--jsonEmit JSON (default).

`rayrf project dump-settings`

Print every FDTD setting with its value, default, units, and description.

FlagValueDefaultMeaning
--projectPROJECTProject (.rfsim).
--jsonEmit a machine-readable JSON list.
--changed-onlyOnly show settings that differ from their default.
--categoryCATEGORYOnly show one category (e.g. boundary, mesh, frequency, field_export).
--advanced, --no-advancedRestrict to advanced-only (--advanced) or to non-advanced (--no-advanced) settings.

`rayrf project set`

Set variable values (validated).

FlagValueDefaultMeaning
--projectPROJECTProject (.rfsim).
--varVAR_SET[]name=value (repeatable).
--outOUTOutput project (defaults to in-place).

`rayrf schema`

Print the JSON Schema / reference for a file format or contract.

FlagValueDefaultMeaning
--whatspec / query / settings / shapes / ports / boundaries / manifest / allallspec, query, settings, shapes, ports, boundaries, manifest, or all.

`rayrf guide`

Built-in reference: orientation and topics (workflow, geometry, ports, boundaries, meshing, settings, diagnostics, remote, pitfalls).

FlagValueDefaultMeaning
topicTOPICTopic to print; omit for the orientation and the topic list.

`rayrf validate`

Validate a project, spec, or job without running the backend; prints blocking errors and advisory warnings.

FlagValueDefaultMeaning
--project, -pPROJECTProject (.rfsim) to validate.
--specSPECProject spec (.json/.yaml) to build and validate.
--jobJOBJobSpec (.json/.yaml) to validate.
--jsonEmit a machine-readable JSON report.

`rayrf estimate`

Derive the auto-mode mesh and print cell count, VRAM, boundary sizing, and runtime cost without running the backend.

FlagValueDefaultMeaning
--project, -pPROJECTProject (.rfsim).
--qualityQUALITYQuality name or 0..3 to estimate at (default: the project's saved quality).
--jsonEmit a machine-readable JSON report.

`rayrf calc`

RF transmission-line and antenna calculators (microstrip, patch with inset feed, quarter-wave, Smith, cpw, ...). Frequencies in GHz, lengths in mm, impedances in ohm.

FlagValueDefaultMeaning
calc_kindmicrostrip / stripline / cpw / gcpw / diff / embedded / patch / lambda / lambda-diel / qwt / smithWhich calculator to run.
--freqFREQFrequency (GHz).
--erERSubstrate relative permittivity.
--hHSubstrate height (mm).
--wWStrip width (mm); omit to solve from --z0.
--z0Z0Target/reference impedance (ohm); patch feed target defaults to 50.
--sSGap/spacing (mm) for cpw/gcpw/diff.
--bBPlate spacing (mm) for stripline.
--tTCopper thickness (mm) for stripline.
--h2H2Cover height (mm) for embedded microstrip.
--er2ER2Cover permittivity for embedded microstrip.
--tandTANDLoss tangent (microstrip dielectric loss).
--z1Z1Source impedance (ohm) for qwt.
--z2Z2Load impedance (ohm) for qwt.
--rRResistance (ohm) for smith.
--xXReactance (ohm) for smith.
--jsonEmit a machine-readable JSON report.

Remote verbs

The serve and remote verb group runs and drives remote runner boxes. Setup walkthrough: Runner setup.

`rayrf serve`

Run the remote-runner daemon.

FlagValueDefaultMeaning
--state-dirSTATE_DIR
--nameNAMErunner name (default rayrf-runner)
--ownerOWNERowner account email; only this account gets control, everyone else connects view-only
--hostHOSTbind address (default 0.0.0.0)
--portPORTTCP port (default 8787)
--slotsSLOTSconcurrent jobs (default 1)
--backendcpu / cudadefault backend when the JobSpec does not pin one (default cpu)
--backend-dirBACKEND_DIRdirectory containing the backend binary (searched first)
--advertiseADVERTISEreachable host:port to register with the broker so the desktop can discover this runner (e.g. 45.76.170.248:8787). A licensed runner defaults to this machine's own address; on a NAT or container host pass the externally mapped address instead, and pass 'off' to skip account discovery and stay direct-connect only. --install persists it to runner.json.
--license-keyLICENSE_KEYaccount license key (or set RAYRF_LICENSE_KEY). A Pro account key licenses the runner with no seat consumed: the website signs a machine-bound token per job, and the same key registers with the broker for 'discover by account'. --install persists it to runner.json. The key is never sent to a peer.
--allow-unlicenseddevelopment option for a trusted LAN: run jobs without the backend license gate on a runner with no activated license. Without this flag an unlicensed runner refuses to serve. The mode is reported to every connecting client in the handshake.
--open-ownertrusted-LAN option: with no --owner configured, grant owner control to any connecting peer instead of the default view-only role
--installgenerate identity + config, print fingerprint
--autostartalso emit a run-on-startup service unit
--healthprint status JSON and exit
--serversprint this box's hardware and current load, then exit
--windowrun the runner with a status window instead of the console; the editor's "Use this computer as a runner" button starts this.

`rayrf remote`

Drive a remote runner.

`rayrf remote ls-jobs`

List jobs on a runner.

FlagValueDefaultMeaning
--hostHOST
--portPORT8787
--fingerprintFINGERPRINTpinned runner SPKI fingerprint (hex)
--accountACCOUNT

`rayrf remote status`

Job status.

FlagValueDefaultMeaning
--hostHOST
--portPORT8787
--fingerprintFINGERPRINTpinned runner SPKI fingerprint (hex)
--accountACCOUNT
job_idJOB_ID

`rayrf remote info`

The runner's advertised hardware and version.

FlagValueDefaultMeaning
--hostHOST
--portPORT8787
--fingerprintFINGERPRINTpinned runner SPKI fingerprint (hex)
--accountACCOUNT

`rayrf remote submit`

Submit a pre-exported case dir.

FlagValueDefaultMeaning
--hostHOST
--portPORT8787
--fingerprintFINGERPRINTpinned runner SPKI fingerprint (hex)
--accountACCOUNT
--case-dirCASE_DIR
--specSPECJobSpec JSON
--metaMETAmetadata JSON
--device-indexDEVICE_INDEXpin a GPU ordinal on a multi-GPU runner
--waitattach and stream to completion

`rayrf remote poll`

Poll status until terminal or timeout.

FlagValueDefaultMeaning
--hostHOST
--portPORT8787
--fingerprintFINGERPRINTpinned runner SPKI fingerprint (hex)
--accountACCOUNT
job_idJOB_ID
--intervalINTERVAL5seconds between status checks (default 5)
--timeoutTIMEOUTgive up after this many seconds (0 = no limit)

`rayrf remote list-files`

List a finished job's result files.

FlagValueDefaultMeaning
--hostHOST
--portPORT8787
--fingerprintFINGERPRINTpinned runner SPKI fingerprint (hex)
--accountACCOUNT
job_idJOB_ID

`rayrf remote fetch`

Download results.

FlagValueDefaultMeaning
--hostHOST
--portPORT8787
--fingerprintFINGERPRINTpinned runner SPKI fingerprint (hex)
--accountACCOUNT
job_idJOB_ID
--destDEST
--artifactsauto / ports / pattern / mesh / currents / fields / all

`rayrf remote cancel`

Cancel a job.

FlagValueDefaultMeaning
--hostHOST
--portPORT8787
--fingerprintFINGERPRINTpinned runner SPKI fingerprint (hex)
--accountACCOUNT
job_idJOB_ID

`rayrf remote describe-schema`

Print the JobSpec / ExportSpec / telemetry contract (no connection)