Skip to main content
sovara record is deprecated. Run your application directly with SDK instrumentation and configure its recording destination in the SDK (base_url in Python, url in TypeScript). The command still works with a warning for existing scripts. The legacy wrapper prints trace metadata:
The only supported form is:
Everything after -- is executed unchanged. The application SDK still owns the project name, trace name, optional trace ID, tracing, and execution timeouts.

What record does

  1. Gives the child process a private result-file path through SOVARA_TRACE_FILE.
  2. Runs the command with its original arguments and terminal streams.
  3. Waits for the SDK to finish and publish its trace metadata.
  4. Prints JSON with the child status, exit code, duration, and observed trace.
  5. Exits with the child’s exit code.
When a trace is observed, the output includes fields such as:
If the command creates several top-level traces, the last completed trace 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 "trace_observed": false and a message explaining that no SDK-created trace was seen. Add the trace boundary in application code first:
  • Python: SovaraClient(project_name="...").trace(...)
  • TypeScript: new SovaraClient({ projectName: "..." })
Trace names and your own trace identifiers (trace_id) also belong in those SDK calls.

Normal execution is supported

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