GoModel is a free, open source monitoring & observability project written in Go and released under MIT. It has 1,167 GitHub stars, 101 forks and 80 open issues, and was last pushed 4 hours ago. On this registry it ranks #213 of 271 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available.

What is GoModel?

GoModel is an MIT-licensed AI gateway, control plane and proxy written in Go that exposes one OpenAI-compatible endpoint at /v1 and one Anthropic-compatible endpoint at /v1/messages in front of OpenAI, Anthropic, Gemini, Groq, xAI, Ollama, vLLM and many other providers, for teams that run their own LLM traffic and want routing, caching, spend control and observability in a single self-hosted service.

What it is

GoModel sits between an application and a set of LLM providers. It is a Go binary that accepts requests in two wire formats, so the official OpenAI and Anthropic SDKs work unchanged once their base URLs point at it: http://localhost:8080/v1 for the OpenAI SDK and http://localhost:8080 for the Anthropic SDK, which appends /v1/messages itself. Behind that facade it speaks to a long provider list, including OpenAI, Anthropic, xAI (Grok), Google Gemini, Cohere, Vertex AI, DeepSeek, Groq, Fireworks AI, Meta (Muse Spark), OpenRouter, Z.ai, Alibaba Cloud Model Studio (Bailian), Kilo AI, MiniMax, Xiaomi MiMo, OpenCode Go, Azure OpenAI, Oracle, Ollama, SGLang, vLLM, llm-d, Amazon Bedrock Runtime, Bedrock Mantle, the ChatGPT Codex backend and Claude, ElevenLabs for text-to-speech and speech-to-text, and any OpenAI-compatible provider.

The concrete problem is provider sprawl. Without a gateway, every model vendor means another SDK, another key to rotate, another place where spend and failure are invisible. GoModel replaces LiteLLM, which the README states was hacked recently, and Portkey, which the README states is no longer maintained on GitHub. It centralises keys, routing and configuration in one process: settings resolve through good defaults, then config.yaml, then .env, then exported environment variables, and the most important settings can be edited in the dashboard at /admin/dashboard. The repository has 1,167 stars, 101 forks and 80 open issues.

Key capabilities

  • Serves both compatibility surfaces at once: OpenAI-compatible at /v1 and Anthropic-compatible at /v1/messages, so existing SDK code and base-URL configuration carry over.
  • Exact and semantic response caching, so repeated prompts are answered without a new upstream call and cost nothing.
  • Cost tracking with per-request cost estimates, usage analytics and spending breakdowns shown in the dashboard.
  • Budgets that enforce hard spend limits per user, per team or per key, alongside rate limits.
  • Intelligent routing, sticky sessions and failover across the configured providers.
  • Observability and real-time logs with usage tracking for every request passing through the gateway.
  • Guardrails and streaming support, with configuration through .env.template, config/config.example.yaml, a config.yaml file or the dashboard.

Who uses it and how

  • Teams that already use the OpenAI or Anthropic SDKs and only need to repoint a base URL to move traffic through one gateway.
  • Self-hosters running a single container with docker run --rm -p 8080:8080 -e OPENAI_API_KEY="your-openai-key" enterpilot/gomodel, or installing on macOS and Linux with the shell installer and on Windows with the PowerShell installer.
  • Platform and FinOps-minded operators who need per-user, per-team and per-key budgets, cost dashboards and real-time logs as governance over LLM spend.
  • Local and GPU-backed workloads, where Ollama, vLLM, SGLang and llm-d are routed through the same interface as hosted providers.
  • Infrastructure-heavy deployments that run the supplied Docker Compose profiles, bringing up Redis, PostgreSQL, MongoDB and Adminer as infrastructure only, or the full stack with GoModel and Prometheus added.

Getting started

Install and start GoModel with curl -fsSL https://gomodel.enterpilot.io/install.sh | sh on macOS or Linux, irm https://gomodel.enterpilot.io/install.ps1 | iex on Windows, or the container image with docker run --rm -p 8080:8080 -e OPENAI_API_KEY="your-openai-key" enterpilot/gomodel, then open http://localhost:8080/admin/dashboard.

How it compares

The README positions GoModel against LiteLLM and Portkey as the gateway it replaces. The licence is MIT, so the software itself carries no per-seat or per-request fee beyond the provider API costs a user already pays, whereas the alternatives are the products the project names as either compromised or abandoned upstream. Because GoModel runs as a local process, a Docker container or a compose stack, request content, keys and configuration stay on infrastructure the operator controls, with .env, config.yaml and the dashboard as the only configuration surfaces.

When to use it — and when not to

Pick GoModel when you are willing to operate a gateway: the full compose profile stands up Redis, PostgreSQL, MongoDB, Adminer and Prometheus, so there is real state and monitoring to run even though the binary itself is small. Do not pick it if you want a fully managed, zero-operations service, if a single provider and a direct API call already meet your needs, or if you need long-term stability signals stronger than the current 80 open issues suggest. The README excerpt is also thin in places, with some feature sections cut off mid-list, so read the linked documentation before committing to a production rollout.

project readme (upstream, from github) — read inline

GoModel - The last AI gateway you will ever need

CI GO Version Docker Pulls Discord

Hacker News docs GoModel

GoModel on Hacker News

GoModel is the fastest and the most resource-efficient AI Gateway (the self-reproducible benchmarks). It's an alternative to LiteLLM (which was hacked recently) and Portkey (which is no longer maintained on GitHub).

(click on the animation ↑ to see the live demo)

GoModel saves you money and nerves.

Money - because you can remember the responses on this layer (caching), track your spending and do tricks like prompt compression and intelligent routing.

Nerves - because we strive to achieve good quality and reliability. Our ambition is to be the last AI gateway you will need - the most reliable, resource-optimal, feature-rich and fast.

Quick Start

Step 1: Install and start GoModel

macOS / Linux

curl -fsSL https://gomodel.enterpilot.io/install.sh | sh
# OPENAI_API_KEY="your-openai-key" # (optional)
gomodel

Windows (PowerShell)

irm https://gomodel.enterpilot.io/install.ps1 | iex
# $env:OPENAI_API_KEY = "your-openai-key" # (optional)
gomodel

Docker

docker run --rm -p 8080:8080 \
  -e OPENAI_API_KEY="your-openai-key" \
  enterpilot/gomodel

ℹ️ Configure GoModel with .env, a config.yaml file, or manage the most important settings directly in the dashboard.

ℹ️ See .env.template for the complete list of environment variables, including all available providers.

Step 2: Open the dashboard

http://localhost:8080/admin/dashboard

Step 3: Make an API call

curl http://localhost:8080/v1/responses \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5-chat-latest",
    "input": "Hello!"
  }'

GoModel and official SDKs

GoModel accepts requests in two compatible formats:

  • OpenAI-compatible at /v1
  • Anthropic-compatible at /v1/messages

The official SDKs therefore work unchanged. Configure their base URLs as follows:

  • OpenAI SDK: http://localhost:8080/v1
  • Anthropic SDK: http://localhost:8080 (the SDK appends /v1/messages)

List of Supported LLM Providers

  • OpenAI
  • Anthropic
  • xAI (Grok)
  • Google Gemini
  • Cohere
  • Vertex AI
  • DeepSeek
  • Groq
  • Fireworks AI
  • Meta (Muse Spark)
  • OpenRouter
  • Z.ai
  • Alibaba Cloud Model Studio (Bailian)
  • Kilo AI
  • MiniMax
  • Xiaomi MiMo
  • OpenCode Go
  • Azure OpenAI
  • Oracle
  • Ollama
  • SGLang
  • vLLM
  • llm-d
  • Amazon Bedrock Runtime and Bedrock Mantle
  • ChatGPT (the Codex backend) and Claude
  • ElevenLabs (text-to-speech and speech-to-text)
  • All OpenAI-compatible providers

See the Providers Overview for the full per-provider feature matrix.


Docker Compose

Infrastructure only (Redis, PostgreSQL, MongoDB, Adminer - no image build):

cp .env.template .env
# Add your API keys to .env
docker compose up -d
# or: make infra

Full stack (adds GoModel + Prometheus; builds the app image):

docker compose --profile app up -d
# or: make image

API docs


Gateway Configuration

GoModel resolves configuration in the following order, with each source overriding those to its left:

Good defaultsconfig.yaml.env → exported environment variables

See the Configuration reference for the full list of settings.


Features

  • Caching - exact and semantic response caching, so repeated prompts cost nothing
  • Cost tracking - per-request cost estimates, usage analytics, and spending breakdowns in the dashboard
  • Budgets - hard spend limits per user, team, or key
  • Rate limits - requests, tokens, and concurrency caps per user path, provider, or model
  • Usage API - clients check their own usage, remaining budget, and rate-limit headroom with the key they already use for inference
  • Virtual models - aliases and load balancing (round-robin or cost-based) behind stable model names
  • Session keeping - detect a client session and pin it to one target and provider key, so provider prompt caches stay warm and audit logs read as threads
  • Failover - automatic rerouting to backup providers, with retries and circuit breakers
  • Labelling - tag requests from HTTP headers or API keys and break down usage by label
  • User paths - hierarchical scoping of keys, model access, budgets, usage, and audit logs
  • Model access control - per-group, per-user, and per-key model allowlists that intersect down the user-path tree
  • MCP gateway - aggregate your MCP servers behind one authenticated endpoint
  • Passthrough API - provider-native APIs under /p/{provider}/..., with GoModel auth and tracking
  • Audio and image APIs - OpenAI-compatible text-to-speech, transcription, and image generation and editing with the same access rules, budgets, and cost tracking as chat
  • Provider replay state - preserves Gemini thought signatures and Anthropic thinking blocks across turns, APIs, and providers
  • Guardrails - request and response policies enforced at the gateway
  • Plugins - one contract for guardrails, response and stream filters, header edits, and routing strategies; built in, compiled in, or loaded from a .so at startup
  • Workflows - versioned per-request policies that scope cache, budgets, audit logging, guardrail phases, and

readme truncated — read the full docs on github

Frequently asked questions

Is GoModel free to use?

GoModel is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does GoModel do?

AI gateway / AI control plane / AI proxy written in Go. Unified OpenAI-compatible and Anthropic-compatible API for OpenAI, Anthropic, Gemini, Groq, xAI, Ollama,

What is GoModel written in?

GoModel is primarily written in Go. Its source is publicly available at https://github.com/ENTERPILOT/GoModel, and it has 1,167 GitHub stars.