Experiential is the open source, zero markup gateway for BYOK, self-hosted and 1000+ marketplace models. It learns from your traffic to cut costs, recommend better models, and train a specialized model you own.
4,469
stars
478
commits
Python
primary language
Sep 11, 2026
updated
Experiential is an open source gateway and router for agent workflows:

Start a local OpenAI-compatible gateway. On first run, the setup wizard uses the shared provider,
model, and reasoning-effort selectors, persists every selected provider connection, then shows
defaults for the public alias, identity, and $50.00 command budget before printing a one-time key:
pip install experiential
exp
Choose a public alias such as opus-5, capture the issued key, and send a request:
export EXP_GATEWAY_KEY=...
curl http://127.0.0.1:8000/v1/chat/completions \
-H "Authorization: Bearer $EXP_GATEWAY_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"opus-5","messages":[{"role":"user","content":"Help me"}]}'
Prefer a managed gateway to running one locally? The hosted platform at
platform.experientiallabs.ai serves the same
OpenAI-compatible (and Anthropic Messages) API at https://api.experientiallabs.ai/v1.
See SETUP.md for copy-paste prompts you hand to your coding agent
(Claude Code, Cursor, Codex, and similar); the agent runs the setup for you. It
collects four prompts:
/v1 call with the OpenAI and Anthropic SDKs using an xpl_ key, and optionally repoint your existing coding agents.Start the local gateway with exp (or exp run); the compiled native data plane
serves every route on loopback. From Python, load a fitted project router as an
official OpenAI client backed by its own private gateway:
import exp
with exp.load_router("my-project") as client:
response = client.chat.completions.create(
model="my-project",
messages=[{"role": "user", "content": "hello"}],
)
First, collect OpenTelemetry traces from your current agent. If you just want to try it out, grab the public terminal-tasks OTLP dataset:
curl -L -o traces.otel.jsonl \
https://huggingface.co/datasets/experiential-labs/wmo-terminal-tasks-traces/resolve/540883e451dc13d34fb50fdd36b143cb0f1fb0db/traces.otel.jsonl
Then build a project. The build command walks you through providers, models, and budget, and asks for your trace file:
# Build simulation from your agent traces and optimize a router against it
exp build support-agent
After collecting traces from your router, fine-tune an open source model you own using Tinker.
exp optimize model support-agent
Anonymous aggregate PostHog product telemetry is enabled by default. It never includes prompts, traces, actions, observations, paths, model names, credentials, or raw customer content.
exp config telemetry status
exp config telemetry disable
exp config telemetry enable
The preference is stored locally in .exp/settings.toml.
uv sync --extra dev
uv run ruff format --check .
uv run ruff check .
uv run ty check
uv run pytest -q
Repository and documentation conventions live in AGENTS.md.
Python
93.8%
Rust
6.2%
Experiential is the open source, zero markup gateway for BYOK, self-hosted and 1000+ marketplace models. It learns from your traffic to cut costs, recommend better models, and train a specialized model you own.
4,469
stars
478
commits
Python
primary language
Sep 11, 2026
updated
Experiential is an open source gateway and router for agent workflows:

Start a local OpenAI-compatible gateway. On first run, the setup wizard uses the shared provider,
model, and reasoning-effort selectors, persists every selected provider connection, then shows
defaults for the public alias, identity, and $50.00 command budget before printing a one-time key:
pip install experiential
exp
Choose a public alias such as opus-5, capture the issued key, and send a request:
export EXP_GATEWAY_KEY=...
curl http://127.0.0.1:8000/v1/chat/completions \
-H "Authorization: Bearer $EXP_GATEWAY_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"opus-5","messages":[{"role":"user","content":"Help me"}]}'
Prefer a managed gateway to running one locally? The hosted platform at
platform.experientiallabs.ai serves the same
OpenAI-compatible (and Anthropic Messages) API at https://api.experientiallabs.ai/v1.
See SETUP.md for copy-paste prompts you hand to your coding agent
(Claude Code, Cursor, Codex, and similar); the agent runs the setup for you. It
collects four prompts:
/v1 call with the OpenAI and Anthropic SDKs using an xpl_ key, and optionally repoint your existing coding agents.Start the local gateway with exp (or exp run); the compiled native data plane
serves every route on loopback. From Python, load a fitted project router as an
official OpenAI client backed by its own private gateway:
import exp
with exp.load_router("my-project") as client:
response = client.chat.completions.create(
model="my-project",
messages=[{"role": "user", "content": "hello"}],
)
First, collect OpenTelemetry traces from your current agent. If you just want to try it out, grab the public terminal-tasks OTLP dataset:
curl -L -o traces.otel.jsonl \
https://huggingface.co/datasets/experiential-labs/wmo-terminal-tasks-traces/resolve/540883e451dc13d34fb50fdd36b143cb0f1fb0db/traces.otel.jsonl
Then build a project. The build command walks you through providers, models, and budget, and asks for your trace file:
# Build simulation from your agent traces and optimize a router against it
exp build support-agent
After collecting traces from your router, fine-tune an open source model you own using Tinker.
exp optimize model support-agent
Anonymous aggregate PostHog product telemetry is enabled by default. It never includes prompts, traces, actions, observations, paths, model names, credentials, or raw customer content.
exp config telemetry status
exp config telemetry disable
exp config telemetry enable
The preference is stored locally in .exp/settings.toml.
uv sync --extra dev
uv run ruff format --check .
uv run ruff check .
uv run ty check
uv run pytest -q
Repository and documentation conventions live in AGENTS.md.
Python
93.8%
Rust
6.2%