Skip to content
Talk to our solutions team

Automation & Execution

Flows, scripts, sandboxes and data pipelines. Captured from kis --help, so this matches the binary rather than describing it.

Run automation workflows from the command line (alias: automate)

kis flow [flags]
FlagPurpose
-d, --dryrunIs the execution just a dry run
-e, --env stringEnvironment yaml file path
-f, --flow stringFlow yaml file path
-n, --name stringEnvironment name (default “default”)
-s, --start stringFlow start task
-t, --tasks stringsList of tasks to be executed
-v, --vars stringToStringVariables (default [])
-w, --workers intNumber of workers (default 1)

Run automation workflows from the command line (alias: automate)

kis flow [flags]
FlagPurpose
-d, --dryrunIs the execution just a dry run
-e, --env stringEnvironment yaml file path
-f, --flow stringFlow yaml file path
-n, --name stringEnvironment name (default “default”)
-s, --start stringFlow start task
-t, --tasks stringsList of tasks to be executed
-v, --vars stringToStringVariables (default [])
-w, --workers intNumber of workers (default 1)

Execute scripts directly from the CLI — same engine and calling convention as the flow YAML script: task. A script that runs in a flow runs here too.

Examples: kis script run hello.js kis script run greet.js anand 7 # positional -> main(“anand”, 7) kis script run x.js —vars name=anand # bare-global ‘name’ kis script run x.js —func handler 3 4 # call exported handler(3, 4) kis script run plugin.wasm kis script bench hello.js —iterations 1000

kis script [command]
SubcommandPurpose
benchBenchmark plugin execution performance
compileTest compilation for different runtimes
rulesBatch-process JSON files through a Maya plugin
runExecute a plugin file directly
validateValidate plugin syntax
versionShow script-engine version information

Benchmark plugin execution performance

kis script bench <plugin-file> [flags]
FlagPurpose
-f, --func stringFunction to call (default “main”)
-i, --input stringInput JSON (inline or file path) (default ”{}“)
-n, --iterations intNumber of iterations (default 1000)
-r, --runtime stringRuntime to use (e.g., v8, goja for JavaScript)
-w, --warmup intWarmup iterations (default 100)

Test compilation for different runtimes

kis script compile <plugin-file> [flags]
FlagPurpose
-r, --runtime stringRuntime to test (auto-detect by default)

Process all JSON files in a directory through a Maya plugin.

Reads JSON files matching a glob pattern, merges in facts and variables, optionally loads bbox OCR documents, executes the plugin for each file, and optionally writes results back (in-place or to an output directory).

Examples: kis script rules transform.js —input ./data —update kis script rules —input ./docs —bbox invoice=ocr.json —update extract.lua kis script rules —input ./in —output ./out —pattern “*.json” process.js kis script rules —with-bbox —update classify.js —input ./pages

kis script rules <plugin-file> [flags]
FlagPurpose
-b, --bbox stringArrayBbox OCR JSON files ([name=]path)
-e, --env stringEnvironment YAML file
-f, --func stringFunction to call in the plugin (default “main”)
-i, --input stringInput directory with JSON files (default ”.”)
-k, --key stringNest results under this key
-n, --name stringEnvironment name (default “default”)
-o, --output stringOutput directory (default: same as input)
-p, --pattern stringGlob pattern for files to process (default “*.json”)
-r, --runtime stringRuntime override (e.g., v8, goja)
-t, --timeout intExecution timeout in milliseconds (default 5000)
-v, --vars stringArrayVariables as key=value pairs
-w, --workers intNumber of parallel workers (default 1)

Execute a plugin file directly without requiring pointcut definitions.

Supported languages are auto-detected by file extension: .js JavaScript (Goja) .lua Lua .go Go (Yaegi interpreter) .star Starlark .cel CEL .expr expr .wasm WebAssembly (wazero)

Two channels deliver data into the script:

Positional args (after the file) -> function arguments, variadic. —args (repeatable) -> also function arguments, appended to the positional ones. —vars k=v / —env file.yaml -> bare globals (kis ambient scope) — same as flow YAML’s vars: block.

Each arg value is JSON-parsed best-effort; string fallback otherwise.

Examples:

kis script run greet.js anand 7 -> main(“anand”, 7) kis script run process.js ‘[1,2,3]’ ’{“k”:1}’ -> main([1,2,3], {k:1}) kis script run hello.js -> main() no args kis script run x.js —args anand —args 7 -> same as positional ‘anand 7’ kis script run x.js —vars name=anand -> main() with bare-global ‘name’

kis script run <plugin-file> [args...] [flags]
FlagPurpose
-a, --args stringArrayFunction argument (repeatable). Each occurrence is one positional arg; JSON-parsed best-effort, falls back to string. Combines with positional args after the file.
-d, --debugDebug output
-e, --env stringEnvironment yaml file path
-f, --func stringFunction to call (default “main”)
-n, --name stringEnvironment name (default “default”)
-r, --runtime stringRuntime to use (e.g., v8, goja for JavaScript)
-t, --timeout intExecution timeout in milliseconds (default 5000)
-v, --vars stringToStringVariables (default [])

Validate plugin syntax and check if it compiles correctly.

kis script validate <plugin-file> [flags]
FlagPurpose
-r, --runtime stringRuntime to validate against (auto-detect by default)

Show script-engine version information

kis script version [flags]

Drive the isolation-and-clone engine directly.

Backends available on this host are wired at build time: process and wasm everywhere, seatbelt and apple-container on macOS, oci/bubblewrap/landlock/ firecracker on Linux. Tier selection picks the most-restrictive available backend unless —backend pins one.

kis sandbox [command]
SubcommandPurpose
backendsList the sandbox backends wired into this build and their capabilities
createCreate a long-lived session and print its id
execRun a command in a long-lived session (created on first use)
runClone a base and run one command in a confined workspace
sessionManage long-lived sandbox sessions (create, list, destroy)
shellOpen a durable shell in a confined workspace and run lines from stdin

List the sandbox backends wired into this build and their capabilities

kis sandbox backends [flags]

Create a persistent sandbox. An id may be given; otherwise one is generated. The runtime stays alive until session destroy.

kis sandbox session create —tier microvm —base-kind oci_image —base ubuntu:24.04 kis sandbox session create mywork —tier container —base /tmp/rootfs

kis sandbox create [id] [flags]

Run one command against a persistent session. If the session does not exist, it is created from the clone flags; otherwise the existing runtime is reused (files and background processes persist). The runtime is left alive — end it with kis sandbox session destroy <id>.

kis sandbox exec —session mywork —tier microvm —base-kind oci_image
—base ubuntu:24.04 — sh -c ‘echo hi > /work; cat /work’

kis sandbox exec --session <id> [flags] -- command [args...]

Materialize a copy-on-write workspace at the chosen tier and run one command in it, streaming stdout/stderr and exiting with the command’s code.

Examples: kis sandbox run — /bin/echo hi # empty workspace, host tier kis sandbox run —base . — ls -la # clone the current directory kis sandbox run —tier wasm —base prog.wasm # run a WASI module kis sandbox run —tier process —allow-process-tier — env

kis sandbox run [flags] -- command [args...]

A session is a persistent sandbox whose runtime stays alive across invocations. Create one, then run commands against it with kis sandbox exec --session <id> or kis sandbox shell --session <id>. Sessions need a container or microVM tier (a runtime that can outlive the CLI).

Pass —server to any session command to drive a workspace.svc instance instead of a local runtime — the sandbox then lives on the service’s host.

kis sandbox session [command]
SubcommandPurpose
createCreate a long-lived session and print its id
destroyDestroy a session and its runtime
listList sessions

Materialize a workspace and open a persistent shell whose cwd and env survive across commands. Each line read from stdin is run in the session; output is printed, then a [exit N] line. Ends on EOF (Ctrl-D) or Ctrl-C.

Example: echo -e ‘cd /tmp\npwd’ | kis sandbox shell —base .

kis sandbox shell [flags]

Execute data pipeline workflows from the command line.

If —env is not given, ./env.yaml is auto-loaded when present. If —dotenv is not given, ./.env is auto-loaded when present. Precedence (highest to lowest): —vars > env.yaml > .env > flow file vars.

kis datapipes [flags]
FlagPurpose
-e, --env stringEnvironment YAML file path (auto-loads ./env.yaml if not set)
-f, --flow stringFlow YAML file path
-n, --name stringEnvironment name (default “default”)
-s, --start stringFlow start task
-t, --tenantkey stringCustom tenant key
-v, --vars stringToStringVariables (default [])
-w, --workers intNumber of workers to start for execution (default 1)