Nodes
Each node is one app action. params holds literal values; inputs points at other nodes.
Pipelines
A workflow wires apps together: one node’s output becomes the next node’s input. Build it in the suite’s node editor, save it as JSON, and run it from the editor, the command line or MCP.
Snapshot a folder into a JSON file, tidy that file, then compute statistics on it.
The labels on the arrows show which output feeds which input. Every node runs through the same
path as run_action, so a pipeline behaves exactly like its parts.
Each node is one app action. params holds literal values; inputs points at other nodes.
An input of {"from": "n0", "output": "file"} is the edge. There is no separate edge list.
In the node editor, with python -m omni_kit.workflow --run NAME, or over MCP with run_workflow. Add --dry-run to preview destructive nodes.
This is the exact document behind the graph above. pos only places the node on the editor canvas; the engine never reads it.
{
"name": "snapshot-and-stats",
"version": 1,
"nodes": [
{"id": "n0", "app": "folder-structure", "action": "snapshot",
"params": {"folder": "D:/project", "format": "json"},
"inputs": {},
"pos": [0, 0]},
{"id": "n1", "app": "json-toolkit", "action": "clean",
"params": {"sort_keys": true},
"inputs": {"file": {"from": "n0", "output": "file"}},
"pos": [260, 0]},
{"id": "n2", "app": "json-toolkit", "action": "stats",
"params": {"top_n": 10},
"inputs": {"file": {"from": "n1", "output": "file"}},
"pos": [520, 0]}
]
}
app and action name an app from the registry and one of its actions.params are literal inputs. inputs wires an input to an upstream node’s declared output.--continue-on-error only the nodes downstream of it are skipped.Saved workflows are JSON files in your suite’s data folder, on your own machine. This site does not host or run them: there is no shared gallery yet, and nothing here shows up for your account.
Sharing workflows through the portal is planned. For now, send the JSON file to whoever needs it.