Rivet CLI - run Command
Run a Rivet graph in a project using provided input values.
Quick Start
# Run with basic input
npx @valerypopoff/rivet2-cli run my-project.rivet-project --input name=Alice
# Run with JSON input
echo '{"name": "Alice"}' | npx @valerypopoff/rivet2-cli run my-project.rivet-project --inputs-stdin
# Run specific graph
npx @valerypopoff/rivet2-cli run my-project.rivet-project "My Graph" --input name=Alice
Description
The run command executes a Rivet graph with specified inputs. This is particularly useful for:
- Testing graphs with specific inputs
- Integrating Rivet into command-line scripts and tools
- Automating graph execution from other programming languages
- Development and debugging of graph implementations
Usage
The basic usage will run the main graph in the provided project file, with no input values:
npx @valerypopoff/rivet2-cli run my-project.rivet-project
You can also specify a specific graph in the file to run:
npx @valerypopoff/rivet2-cli run my-project.rivet-project "My Graph"
Inputs
Inputs can be provided in two ways. The first way is to use the --input flag for each input value:
npx @valerypopoff/rivet2-cli run my-project.rivet-project --input input1=5 --input input2=10
This is useful for basic input values and allows for easy testing of various scenarios.
The second way is to provide the inputs using a JSON object from standard input. This is useful for more complex input values:
echo '{"input1": 5, "input2": 10}' | npx @valerypopoff/rivet2-cli run my-project.rivet-project --inputs-stdin
This is useful for more complex input values, such as arrays or objects, as well as piping input values from other commands or scripts.
Standard-input JSON must be an object. Arrays, strings, numbers, booleans, and null are rejected because Rivet graph inputs are keyed by input name.
For --input and --context, the CLI splits on the first =. Empty string values are allowed, and additional = characters stay inside the value:
npx @valerypopoff/rivet2-cli run my-project.rivet-project --input query="name=Alice" --input optional=
Outputs
The Rivet CLI outputs JSON data to standard output. Each Graph Output node in the graph will correspond to a key in the output JSON object.
The value of each property will be a Data Value object, with a type property and a value property.
For example, if a graph has two Graph Output Nodes, output1 (a string) and output2 (a number), the output JSON object will look like this:
{
"output1": {
"type": "string",
"value": "Hello, World!"
},
"output2": {
"type": "number",
"value": 42
}
}
Options
Input Configuration
--input- Specify an input value for the graph. Can be used multiple times.--inputs-stdin- Read input values from standard input as a JSON object. Overrides any input values provided with--input.--context- Specify a single context value for the graph. Can be used multiple times. Context can be used to pass global values to the graph. Context is specified using the same format as--input.
Output Configuration
--include-cost- Includes the cost of the graph execution in the output JSON object. The cost is included as acostproperty on the output JSON.