Skip to content
Trigora
Start building →

CLI reference

trigora is a Rust CLI. There is no login command.

Node 22 is required when using the npm trigora launcher or when a TypeScript or JavaScript project uses the TypeScript adapter. Projects that use only Python or Rust do not require Node.

TRIGORA_TOKEN authenticates Trigora Cloud. It does not choose the target of a dual-target command. Those commands target trigora dev by default. --remote selects Cloud and requires the token.

programs, executions, start, send, and cancel accept --remote.

Terminal window
trigora programs
trigora programs --remote
Terminal window
trigora executions
trigora executions --remote
trigora executions inspect <execution>
trigora executions inspect <execution> --remote
Terminal window
trigora start <program>
trigora start <program> --input <json>
trigora start <program> --remote

--input is JSON text or a path to a JSON file. A JSON array is the ordered argument vector. A single JSON value is one argument. Omitting it sends {}. See Programs.

Terminal window
trigora send <execution> <event>
trigora send <execution> <event> --payload <json>
trigora send <execution> <event> --remote

--payload is JSON text or a path to a JSON file.

Terminal window
trigora cancel <execution>
trigora cancel <execution> --remote

deploy, whoami, and secrets always talk to Trigora Cloud. They require TRIGORA_TOKEN. They do not take --remote.

Terminal window
trigora deploy
trigora deploy --program <name>

Compiles discovered Programs and uploads them.

Terminal window
export TRIGORA_TOKEN=...
trigora whoami

Prints the workspace for that token.

Terminal window
trigora secrets list
trigora secrets set OPENAI_API_KEY
trigora secrets delete OPENAI_API_KEY

Lists, sets, or deletes project secrets for the project named in trigora.toml. set reads the value from a hidden prompt, or from stdin when the value is piped. The value is not an argument. list and delete print names only. See Secrets.

Terminal window
trigora init
trigora init --language python --name approval --example
trigora init --language rust --no-example
trigora init --force

--language is typescript, python, or rust. --name sets the project name. --example writes a starter program. --no-example omits that file. --force overwrites existing files.

A terminal prompts for language, name, and whether to create an example. Without a terminal and without --language, init stays TypeScript. The example is on unless you pass --no-example.

Each scaffold writes trigora.toml and .env.example. With the example, it also writes the program file:

LanguageProject fileProgram
TypeScriptpackage.jsonsrc/program.ts
Pythonpyproject.tomlsrc/program.py
RustCargo.tomlsrc/lib.rs

See trigora.toml.

Terminal window
trigora dev
trigora dev --host localhost --port 3477

Local HTTP runtime. Default URL http://localhost:3477.

trigora
→ trigora-local
→ tcc-host-sqlite
→ TCC Engine

trigora spawns trigora-local. That process drives tcc-host-sqlite, which persists continuations in .trigora/state.db. The Node helper compiles TypeScript and JavaScript and runs live effects for those Programs. Python-only and Rust-only projects do not start Node.

Terminal window
trigora bench <program>
trigora bench <program> --input <json> --out bench.json

Measures one healthy local run. See Benchmark and verify.

Terminal window
trigora verify <program>
trigora verify <program> --faults sample
trigora verify <program> --faults all --effects fixtures.json --out verify.json

Crashes after committed boundaries on a temporary in-process SQLite host and checks recovery against the healthy baseline. --faults is sample (the default) or all. These commands do not start trigora dev and do not target Trigora Cloud.

--effects is required when the program has effects. live runs real handlers only while recording the baseline. Fault runs replay those recorded results. Any other value is a JSON file of effect key to result.

--events is a JSON object of event name to payload, or to an array of payloads. --input matches trigora start.