Trust

Closed source, and checkable.

ParetoOps reads your eval results and tells you what they cost and whether a change made things worse. You can't read the source, so this page says exactly what the software does, and how to check it yourself.

What ships

  • Native binaries only. The command line tool, the Python package and the container image are built from the same compiled code. Packages contain no engine source.
  • No telemetry. The software doesn't collect or send usage data, crash reports or analytics. (This website has its own, separate privacy policy.)
  • Nothing phones home. License keys are signed tokens checked against a public key built into the binary. Checking a key makes no network request.

What it reads and writes

  • In: the result files your eval tool already wrote (Promptfoo, LangSmith, Braintrust, DeepEval, CSV or JSON).
  • Out: a report, a job summary, and an exit code.
  • It never calls a model API. It does arithmetic on numbers already in your files. It doesn't run your evals, and it never sees your keys for model providers.

Three commands can touch a network, and only when you set them up to:

  • pareto-ops ci posts one comment to the pull request through the GitHub API, using the token you provide. Pass --pr-comment never and use no git baseline (or a --baseline-file), and it makes no network calls.
  • The baseline commands (Pro) use git against your own remotes and credentials, writing to a dedicated branch.
  • pricing --sync (Enterprise) downloads a signed pricing catalog from a URL you configure, and rejects it unless the signature verifies.

analyze, gate and watch contain no code that opens a network connection.watch launches the eval command you give it, and that command does whatever it normally does, including calling model APIs; watch itself only reads the results it writes. Details for security reviews are in the security overview.

The GitHub Action is open source (MIT), so you can read every line it runs. It installs the pareto-ops package from npm at the start of each job, with install scripts disabled, then runs the CLI. To review once and keep it fixed, pin the action to a commit SHA and set its version input to an exact release.

Why it's closed source

ParetoOps is a commercial product, and the engine is what customers pay for. We'd rather say that plainly than hide behind a licence label. Closed source doesn't have to mean unverifiable, so here is what we do in place of publishing the code:

  • Every release artifact is scanned before it ships for source files, build-machine paths and test-only code paths.
  • Deterministic output. Same results in, same verdict out. The gate is arithmetic, not another model's judgment, so you can re-run it and compare.
  • Stable formats. The JSON and report formats are documented and kept stable, so your CI doesn't break between releases.
  • Third-party notices. Every release lists the open-source components inside it, with their licenses.
  • Tests on Linux, macOS and Windows run before anything is published.

How to verify the no-network claim yourself

Run it where networking is off. If the claim were false, these would fail or hang.

# Container with no network at all
docker run --rm --network none -v "$PWD:/work" -w /work \
  ghcr.io/certiqa/pareto-ops:v1 analyze results.json --min-acc 0.9

# Or a Linux CI step with its own network namespace
unshare --net -- pareto-ops gate results.json --config my-config --min-acc 0.9

You can also run it on a CI runner with egress blocked, or watch its connections with the network monitor you already use. Apart from the three cases listed above, and the eval command watch launches for you, everything works with no network.

Who's behind it

ParetoOps is a product of Certiqa. Our releases and the GitHub Action are published under the certiqa GitHub organization. You can reach us at [email protected] and ask security or procurement questions directly.