Skip to main content

Config format

You can export and import scenarios as .conf text files. The format is human-readable and version-control friendly, making it easy to track changes, diff models, or script bulk edits.

Who it's for

The .conf format is intended for advanced users who want to:

  • Store process models in version control alongside other project files
  • Share models as plain text files without needing an account
  • Automate scenario creation or modification with scripts

Core concepts

A .conf file is the canonical serialization of a process model. Every scenario in the app maps to exactly one valid .conf file, and a valid .conf file can be loaded into any scenario. The format is designed to be diffable — each logical change (adding a node, adjusting a distribution) produces a minimal, readable diff.

The file is divided into up to five sections separated by ---:

SectionContents
NodesNode type and label for each node
DistributionsArrival and service time distributions
ConnectionsEdges and routing probabilities
ResourcesResource pool definitions
Resource allocationsWhich resources are assigned to which nodes

Comments start with # and can appear anywhere in the file.

Full example

# My process model

---
S:Intake
T:Review
T:Approval
Q:Buffer
E:Done

---
Intake ~ exponential(rate=2), constant(value=1)
Review ~ normal(mean=5, std=1)
Approval ~ lognormal(mean=2, sigma=0.5)

---
Intake -> Review
Review -> Buffer
Buffer -> Approval : 0.8
Buffer -> Done : 0.2
Approval -> Done

---
R:Analyst $50/hour #4a90d9
R:Manager $100/day

---
Analyst(1) -> Review
Manager(1) -> Approval

How to export a scenario to .conf

  1. Open the scenario you want to export.
  2. Click Scenarios in the top toolbar.
  3. Click Export.
  4. Your browser downloads a .conf file named after the scenario.

How to import a .conf file

  1. Click Scenarios in the top toolbar.
  2. Click Import.
  3. Select the .conf file from your file system.
  4. The app loads the scenario and opens it on the canvas.
tip

Imported scenarios appear as new scenarios and do not overwrite existing ones.

Nodes section

One node per line: <prefix>:<label>

PrefixType
S:Start
T:Task
Q:Queue
E:End

Distributions section

One distribution per line: <label> ~ <dist>

  • Task nodes: <label> ~ <distribution>
  • Start nodes: <label> ~ <frequency_dist>, <severity_dist>
  • Queue and End nodes have no distribution.

Distribution syntax: <name>(<param>=<value>, ...)

DistributionParameters
constantvalue
exponentialrate
normalmean, std
uniformlow, high
poissonmu
lognormalmean, sigma
gammashape, scale
weibullscale, shape
triangularlow, mode, high

Connections section

One connection per line: <from> -> <to> or <from> -> <to> : <probability>

Review -> Approval
Review -> Rejected : 0.1
note

If you omit the probability on a connection, it defaults to 1.0.

warning

When multiple connections leave the same node, their probabilities must sum to 1.0. An unbalanced routing probability will cause a validation error on import.

Resources section

One resource per line: R:<name> $<cost>/<period> #<hex-color>

Cost and color are optional.

R:Analyst $50/hour #4a90d9
R:Manager

Resource allocations section

One allocation per line: <resource_name>(<count>) -> <node_label>

Analyst(1) -> Review
Manager(2) -> Approval

Validation errors

If the .conf file contains errors, the import will fail with a message describing the problem — for example, an unknown distribution name or a connection that references a node that does not exist. Fix the reported line and re-import.