saikuro-runtime

The Saikuro runtime server. Routes invocations between adapters over TCP, WebSocket, and Unix domain sockets.

saikuro-runtime [OPTIONS]

Options

Flag Default Description
--schema <PATH> - Load a frozen schema JSON at startup
--tcp-port <PORT> 7700 Port for TCP connections. 0 = OS-assigned
--ws-port <PORT> 7701 Port for WebSocket connections. 0 = OS-assigned
--unix <PATH> - Path for Unix domain socket listener
--bind <ADDR> 127.0.0.1 Bind address for TCP/WebSocket
--mode <MODE> development Runtime mode: development or production
--log-level <LEVEL> info Minimum log level: error, warn, info, debug, trace
--json-logs - Emit logs as newline-delimited JSON
--no-tcp - Disable the TCP listener
--no-ws - Disable the WebSocket listener

Examples

Start the runtime in production mode with a frozen schema:

saikuro-runtime \
  --schema ./schema.json \
  --mode production \
  --tcp-port 7700 \
  --unix /tmp/saikuro.sock \
  --bind 0.0.0.0

Start with WebSocket only:

saikuro-runtime --no-tcp --ws-port 8080

Start with JSON logs for log aggregation:

saikuro-runtime --json-logs --log-level debug

saikuro-codegen

Generate typed client stubs from a schema file.

saikuro-codegen --schema <PATH> --lang <LANG> --out <DIR>
Flag Description
--schema <PATH> Schema JSON file to generate from
--lang <LANG> Target language: typescript, python, csharp, rust, c, cpp
--out <DIR> Output directory

Schema Extraction

Each language adapter provides a CLI to extract a schema from source files:

TypeScript:

npx saikuro-schema <namespace> <file1> [file2...]

Python:

saikuro-schema --namespace <NAME> [--output <FILE>] <FILE>

Environment Variables

Variable Default Description
SAIKURO_LOG info Minimum log level for the runtime