Sharing, self-hosting and tracing
promptfoo share turns a kept run into a link, promptfoo view can run as a server your team reaches, and tracing sends timing to an OpenTelemetry collector: three ways a run leaves your own terminal.
Last updated: 15 Oct, 2026 · Promptfoo 0.124.1
The runs so far stayed on one machine, listed and reopened locally. Three features send them further: a shared link, a self-hosted web view and a trace. Each needs an account, a running server or a collector, so this lesson names what they do and what each one needs rather than standing one up here.
Sharing a run as a link
promptfoo share uploads a kept eval and returns a URL. Reading its help shows two facts worth knowing before you run it: shares are private by default now, and the old -y flag no longer does anything. The help text is keyless and offline, so it is the one command here that runs.
promptfoo share --helpUsage: promptfoo share [options] [id]
Create a shareable URL of an eval or a model audit (defaults to most recent)
Options:
--show-auth Show username/password authentication
information in the URL if exists (default:
false)
-y, --yes Flag does nothing (maintained for backwards
compatibility only - shares are now private by
default) (default: false)
-v, --verbose Show debug logs (default: false)
--env-file, --env-path <path> Path(s) to .env file(s). Repeat the flag or use
comma-separated values for multiple files.
(default: [])
-h, --help display help for command- Shares are private by default. A shared link is no longer public the moment it is made; it is tied to your account.
-ydoes nothing. The flag is kept for old scripts but has no effect, because there is no longer a public-share prompt to skip.- It defaults to the most recent run. With no id,
shareuploads the last eval or model audit you ran.
Self-hosting the web view
promptfoo view starts the browser view on port 15500. Run on a server your team can reach rather than on your laptop, it becomes a shared dashboard of every kept run. It is a long-lived server, so it is shown here, not run.
# run the web UI as a long-lived server others can reach
promptfoo view --port 15500
Tracing with OpenTelemetry
Promptfoo can emit OpenTelemetry traces of a run, the timing of each call, to a collector you point it at with an environment variable. It needs a running collector to receive them, so this is shown as the shape of it rather than run.
# point promptfoo at an OpenTelemetry collector you run
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
promptfoo eval
What each one needs
| Feature | What it does | What it needs |
|---|---|---|
promptfoo share | Uploads a run and returns a private link | An account to tie the link to |
promptfoo view on a server | Serves the browser view to a team | A host others can reach |
| Tracing | Emits per-call timing as OpenTelemetry | A collector to receive the traces |
-y to force a public share does nothing; the flag is kept only so old scripts do not break.Where these help
- A link in a pull request, where a reviewer opens the run instead of reading pasted terminal text.
- A team dashboard, where a self-hosted view holds every run in one place others can reach.
- A latency investigation, where traces show which call in a run was the slow one.
Related
- Previous: promptfoo from Node, not the CLI
- Next: Moving the suite to a hosted model
- Reference: Promptfoo documentation
- Run
promptfoo share --helpand read the line that says shares are private by default. - Start
promptfoo viewon your own machine and open the browser view it prints. - Run
promptfoo view --helpand find the flag that skips the open-in-browser prompt.
Slow is fine. Stopping is the only problem.