GoModel: A Lightweight Open-Source AI Gateway Written in Go

GoModel is an open-source AI gateway written in Go that sits between your application and model providers like OpenAI, Anthropic, Gemini, and others. It provides a unified OpenAI-compatible API interface while handling provider-specific differences internally.
Key Features and Differences
The project was built to solve several practical problems: tracking AI usage and cost per client or team, switching models without changing application code, debugging request flows more easily, and reducing AI spending with exact and semantic caching.
Key differentiators from alternatives:
- ~17MB Docker image (LiteLLM's image is ~746MB on amd64, making GoModel 44x lighter)
- Request workflow is visible and easy to inspect
- Configuration is environment-variable-first by default
Quick Start
Basic deployment with Docker:
docker run --rm -p 8080:8080 \
-e OPENAI_API_KEY="your-openai-key" \
enterpilot/gomodel
For production, avoid passing secrets via command line and use:
docker run --env-file .env enterpilot/gomodel
Make your first API call:
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{ "model": "gpt-5-chat-latest", "messages": [{"role": "user", "content": "Hello!"}] }'
Supported Providers
GoModel supports multiple LLM providers with automatic detection based on supplied credentials:
- OpenAI (OPENAI_API_KEY)
- Anthropic (ANTHROPIC_API_KEY)
- Google Gemini (GEMINI_API_KEY)
- Groq (GROQ_API_KEY)
- OpenRouter (OPENROUTER_API_KEY)
- Z.ai (ZAI_API_KEY)
- xAI/Grok (XAI_API_KEY)
- Azure OpenAI (AZURE_API_KEY + AZURE_BASE_URL)
- Oracle (ORACLE_API_KEY + ORACLE_BASE_URL)
- Ollama (OLLAMA_BASE_URL)
The gateway supports chat completions, embeddings, file processing, batch operations, and passthrough capabilities across most providers. For Oracle, you may need to set ORACLE_MODELS=openai.gpt-oss-120b,xai.grok-3 when the upstream /models endpoint is unavailable.
Alternative Setup Methods
You can also run from source (Go 1.26.2+ required) or use Docker Compose for infrastructure components including Redis, PostgreSQL, MongoDB, and Adminer.
This type of gateway is particularly useful for teams managing multiple AI models across different providers, needing cost tracking, or wanting to maintain flexibility to switch providers without code changes. The lightweight Docker image makes it suitable for resource-constrained environments.
📖 Read the full source: HN LLM Tools
👀 See Also

SynapsCAD: Open-Source Desktop App for OpenSCAD with Claude AI Integration
SynapsCAD is an open-source desktop application that combines an OpenSCAD code editor, real-time 3D viewport, and AI assistant. Built entirely in Rust with Bevy 0.15 and egui, it supports Claude API integration for natural language 3D CAD coding.

PixelCheck: An npm Package That Lets AI Agents Visually Verify Web Pages
PixelCheck is an npm package that enables AI agents to open, interact with, and score web pages visually — no more manual screenshot-and-feedback loops.

MCP Context Bloat: Real Costs and a Practical Fix for Claude Code Users
Running 9 MCP servers in Claude Code leads to 38k token cold starts, ~$700/month in tool definition overhead, and degraded model performance. A gateway pattern with BM25 ranking cuts context to 4k.

Slides-grab: Visual Editor for Fixing HTML Slides Generated by Claude Code
Slides-grab is a tool that lets you drag elements on HTML/CSS slides generated by Claude Code, then sends XPath and a highlighted screenshot to the AI agent for precise editing. It addresses the pain point of fixing small layout issues through text prompts alone.