Skip to content

every agent. every model. one gate.

A self-hosted proxy between your coding agents and your LLM backends. It routes each request to the right model — local or cloud — and translates dialects only when it has to. One binary, one config file, nothing else to run.

docker run -p 8080:8080 -v ./hlid.toml:/app/hlid.toml ghcr.io/skaft-software/hlid:latest
// how it works

Requests go in. The right model answers.

Agents keep speaking whatever they already speak — Anthropic Messages, OpenAI Chat, Responses, or legacy Completions. hlid matches the model name against your backend registry, forwards bytes untouched when dialects agree, and translates when they don't.

claude codeaideropenai sdkcursorllama.cppvLLManthropic apiopenai apihlid:8080route · translate · observe
// what it does

Four verbs. One binary.

route

Glob patterns map model names to backends. llama-* to the box under your desk, claude-* to Anthropic. First match wins.

translate

Passthrough-first: matching dialects forward byte-for-byte. Cross-dialect requests are converted — system prompts, tools, streaming SSE, token usage.

observe

Every request lands in a ring buffer: model, backend, dialect, latency, tokens, errors. curl /hlid/requests and see.

secure

Backend API keys live in one place and never reach your agents. Optional key on hlid itself; localhost stays frictionless.

// quickstart

Running in five minutes.

1 — describe your backends
cat > hlid.toml << 'EOF'
bind_addr = "0.0.0.0:8080"
[[backends]]
model_pattern = "*"
url = "http://localhost:8081"
dialect = "openai-chat"
EOF
2 — open the gate
docker run -p 8080:8080 \
  -v ./hlid.toml:/app/hlid.toml \
  ghcr.io/skaft-software/hlid:latest
3 — point your agent at it
export ANTHROPIC_BASE_URL=http://localhost:8080
# or
export OPENAI_BASE_URL=http://localhost:8080

the full quickstart →

// scope

Small on purpose.

hlid never runs models. No downloads, no GPU management, no lifecycle. It is the gate in front of the servers you already run — llama.cpp, vLLM, SGLang, or the cloud APIs — and it does exactly four things well.

One Rust binary · 205 tests · MIT licensed

// next

Point an agent at it.

MIT licensed · built at the workbench