Igris is a governance-first LLM gateway. If you’re coming from Portkey, most of your mental model
transfers directly — connections, a unified API endpoint, provider routing. The differences are
in the policy engine, observability depth, and architectural philosophy.This guide covers SDK migration, connection mapping, and a feature-by-feature comparison.
Terminology mapping: What Portkey (and earlier versions of LiteLLM) calls a
“virtual key” is called a connection in Igris. The two are equivalent —
a named pointer to an upstream provider with stored credentials.
If you’re using the portkey-ai package’s withPortkey() wrapper or a manual baseURL override,
the Igris equivalent is the connectLlm() method or a subpath adapter:
import OpenAI from "openai";import { PORTKEY_GATEWAY_URL, createHeaders } from "portkey-ai";const openai = new OpenAI({ baseURL: PORTKEY_GATEWAY_URL, defaultHeaders: createHeaders({ apiKey: "PORTKEY_API_KEY", virtualKey: "openai-prod" }),});
These Portkey features are not available in Igris v1:Routing strategies (fallback / load balance): Portkey supports fallback chains and weighted load
balancing across multiple providers. Igris v1 routes to a single connection per request. Multi-key
routing is on the roadmap.Semantic caching: Portkey offers vector-similarity caching for identical or near-identical
prompts. Igris v1 does not cache. This is planned for a future release.Prompt management: Portkey has a prompt library with versioning and A/B testing. Igris does not
include prompt management — use a dedicated prompt registry or keep prompts in your application.Webhook retries: Portkey’s webhook delivery includes automatic retries. Igris alert webhooks
are fire-and-forget in v1.