Lens
dyedd/lens
Self-hosted multi-protocol LLM gateway with one base URL across many providers
Lens is a self-hosted LLM gateway that unifies multiple protocols, providers, credentials and models behind one base URL, for clients including Claude Code, Codex, OpenCode, OpenClaw, Grok Build and Hermes Agent.
What Lens does
Lens exposes OpenAI chat, responses, embeddings and image endpoints, Anthropic's messages endpoint, Gemini's generateContent endpoints and a rerank endpoint behind one gateway key, then routes each request by matching protocol and model name to a model group. A site can hold several base URLs and several credentials, auto-syncing available models from an upstream's own /v1/models endpoint, and model groups can poll round-robin across members or fail over to the next credential or channel on a 401, 403, 404, 429 or 5xx response.
A health score per channel and model, computed from a sliding-window success rate, weights the round-robin routing, and request logs record protocol, model, latency, token counts, cost, user agent and the full attempt chain. Lens ships as a Docker Compose deployment, creates an admin account with a randomly generated password on first run, and integrates LiteLLM's pricing library for credential-rate and image-price billing.
Key features
- One base URL and gateway key across OpenAI, Anthropic, Gemini and rerank protocols
- Automatic model sync from each upstream's own model-list endpoint
- Round-robin and failover routing with per-channel, per-model cooldowns
- Health scoring from a sliding-window success rate, used to weight routing
- Request logging with latency, tokens, cost and the full per-request attempt chain
When to use it
- Running one stable endpoint for several model providers behind a single coding agent
- Failing over automatically between credentials or providers when one starts erroring
- Tracking per-model cost and latency across every client that talks through the gateway
Who it is for: Individuals and small teams who run several LLM providers behind multiple agent harnesses and want one managed, observable entry point.
How it fits with Hermes Agent
Lens lists Hermes Agent among the harnesses it serves as a client, routing Hermes' requests through whichever protocol and model group an administrator configures.
How to install Lens
These commands are copied from the project's README. Check the repository for the latest steps before you run them.
mkdir lens && cd lens
curl -fsSLO https://raw.githubusercontent.com/dyedd/lens/main/scripts/docker/deploy.sh
sh deploy.shRequirements: Docker and Docker Compose
FAQ
What is Lens?
Lens is a self-hosted gateway that puts one base URL and one key in front of several LLM providers and protocols, with automatic model sync, failover routing and per-request cost logging.
Does Lens work with Hermes Agent?
Yes, it lists Hermes Agent among the harnesses it serves as a client, alongside Claude Code, Codex, OpenCode, OpenClaw and Grok Build.
How do I install Lens?
Run the Docker Compose deploy script from an empty directory, then docker compose up -d; the first run creates an admin account with a random password written to the data directory.
Similar models for Hermes Agent
All modelsLocal Rust model router with an OpenAI-compatible API that learns routing policies for agent workflows
icoretech Codex PoolerSelf-hosted gateway that fronts Codex accounts with stable Pool API keys for agents and teams
EfficientContext ContextPilotContext reuse layer that cuts redundant tokens before they reach the model
Socialpranker agentburnLocal profiler that shows which 5-hour window burned your usage, and where tokens went
SouthpawIN TurbofitAdaptive local-inference provider that fits the best sustainable model to your hardware
tuxevil tuxevil-rotatorOpenAI-compatible proxy that rotates free-tier LLM accounts with per-model quota routing
Related guides: How to install Hermes Agent