Skip to main content
LiteLLM uses a YAML model_list to map logical model names to provider upstreams. tlane import-litellm reads that file and prints the equivalent Tracelane routing stanza:
--config is the flag the command expects; a bare path argument is not read. Caller-side code that calls litellm.completion(...) keeps working once you set its api_base to Tracelane’s OpenAI-compatible /v1/chat/completions endpoint — you keep the LiteLLM SDK, no swap needed.
What the emitted file is. tracelane.yaml is read by the gateway at start from $TRACELANE_CONFIG or ./tracelane.yaml. It carries the operator-level blocks — failover chain, semantic cache, content-capture allowlist. Credentials and endpoints are still environment variables; the file does not hold secrets. See Providers for the schema it accepts.The importer’s built-in parser reads JSON-formatted config directly, and for YAML it currently handles only a flat key: value subset — a nested model_list: block is not yet parsed, and will emit an empty providers: list. Convert first (yq -o=json litellm_config.yaml) and check providers: is non-empty before you trust the output.

Mapping

What the importer actually reads, and the key it emits (packages/cli/src/commands/import-litellm.ts): router_settings.timeout and router_settings.fallbacks are not read by the importer — carry those across by hand.

What the gateway gives you structurally

These are properties of Tracelane’s own request path. We make no claim here about any other proxy’s security history — check that against its own advisories.
  • No endpoint that rewrites gateway config. Model-to-provider routing is compiled into the binary and fails closed on an unknown model (400 unroutable_model, no default upstream). tracelane.yaml is read once at process start; no endpoint reloads it at runtime. The /v1/* write routes that do exist (BYOK keys, prompt versions, alert rules) are authenticated, tenant-scoped and ledgered; none of them is global configuration.
  • No interpreter on the request path. The gateway is a single Rust binary; it never evals or imports config as code, because there is nothing to eval it with.
  • .pth supply-chain scan. CI fails the step on any stray .pth file in the tree (.github/workflows/ci.yml, secret-scan job).
The first two are structural. The .pth scan is a CI step that exits non-zero on a hit.
Competitor details verified as of 2026-08-26 against public documentation and public repositories. Where a capability is marked absent, we found none documented at that date — not that the vendor lacks it. If anything here is inaccurate, please open an issue.