Skip to main content
Use sovara record when an instrumented application should print its run ID and project metadata in the terminal:
The only supported form is:
Everything after -- is executed unchanged. The application SDK still owns the project name, run name, persistent client run ID, tracing, and execution timeouts.

What record does

  1. Gives the child process a private result-file path through SOVARA_RUN_FILE.
  2. Runs the command with its original arguments and terminal streams.
  3. Waits for the SDK to finish and publish its run metadata.
  4. Prints JSON with the child status, exit code, duration, and observed run.
  5. Exits with the child’s exit code.
When a run is observed, the output includes fields such as:
If the command creates several top-level runs, the last completed run is reported.

What record does not do

record does not instrument an arbitrary Python or Node.js program. An uninstrumented command still runs, but the result contains "run_observed": false and a message explaining that no SDK-created run was seen. Add the run boundary in application code first:
  • Python: SovaraClient(project_name="...").run(...)
  • TypeScript: new SovaraClient({ projectName: "..." })
Run names and durable application IDs also belong in those SDK calls.

Normal execution is supported

The wrapper is optional. This records the same run without printing metadata:
After record, continue with the emitted inspect_command or see Inspect runs.