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.
Dual-target
Section titled “Dual-target”programs, executions, start, send, and cancel accept --remote.
programs
Section titled “programs”trigora programstrigora programs --remoteexecutions
Section titled “executions”trigora executionstrigora executions --remotetrigora executions inspect <execution>trigora executions inspect <execution> --remotetrigora 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.
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.
cancel
Section titled “cancel”trigora cancel <execution>trigora cancel <execution> --remoteCloud-only
Section titled “Cloud-only”deploy, whoami, and secrets always talk to Trigora Cloud. They require TRIGORA_TOKEN. They do not take --remote.
deploy
Section titled “deploy”trigora deploytrigora deploy --program <name>Compiles discovered Programs and uploads them.
whoami
Section titled “whoami”export TRIGORA_TOKEN=...trigora whoamiPrints the workspace for that token.
secrets
Section titled “secrets”trigora secrets listtrigora secrets set OPENAI_API_KEYtrigora secrets delete OPENAI_API_KEYLists, 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.
trigora inittrigora init --language python --name approval --exampletrigora init --language rust --no-exampletrigora 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:
| Language | Project file | Program |
|---|---|---|
| TypeScript | package.json | src/program.ts |
| Python | pyproject.toml | src/program.py |
| Rust | Cargo.toml | src/lib.rs |
See trigora.toml.
trigora devtrigora dev --host localhost --port 3477Local HTTP runtime. Default URL http://localhost:3477.
trigora→ trigora-local→ tcc-host-sqlite→ TCC Enginetrigora 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.
trigora bench <program>trigora bench <program> --input <json> --out bench.jsonMeasures one healthy local run. See Benchmark and verify.
verify
Section titled “verify”trigora verify <program>trigora verify <program> --faults sampletrigora verify <program> --faults all --effects fixtures.json --out verify.jsonCrashes 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.