Quickstart
Five minutes from nothing to an agent talking through hlid. You need one thing already running: an LLM server (llama.cpp, vLLM, SGLang) or a cloud API key.
1. Create a config
bash
cat > hlid.toml << 'EOF'
bind_addr = "0.0.0.0:8080"
[[backends]]
model_pattern = "*"
url = "http://localhost:8081"
dialect = "openai-chat"
EOFNo local model running?
Point url at OpenAI instead: url = "https://api.openai.com" and add credential_ref = "OPENAI_API_KEY".
2. Start hlid
bash
docker run -p 8080:8080 -v ./hlid.toml:/app/hlid.toml ghcr.io/skaft-software/hlid:latestbash
git clone [email protected]:skaft-software/hlid.git && cd hlid
cargo run --release # reads hlid.toml from the current directory3. Try it
bash
curl -s http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "Hello!"}]}' | jq .4. Point your agent at it
bash
# Claude Code, Aider (anthropic mode), and other Anthropic-dialect agents
export ANTHROPIC_BASE_URL=http://localhost:8080
export ANTHROPIC_API_KEY=sk-hlid-local
# OpenAI SDK, Continue, Cursor, and other OpenAI-dialect agents
export OPENAI_BASE_URL=http://localhost:8080
export OPENAI_API_KEY=sk-hlid-localThe key values don't matter until you configure auth — agents just need something to send.
5. See what happened
bash
curl -s http://localhost:8080/hlid/requests | jq .Every request hlid handled: model, backend, dialect, whether it was translated, latency, and token usage. That's the whole loop — an agent, a gate, a backend, and a record of the trip.
Next
- Configuration — multiple backends, auth, env overrides
- Point your agent at it — per-agent setup recipes
- Observability — what the capture contains