Skip to content

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"
EOF

No 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:latest
bash
git clone [email protected]:skaft-software/hlid.git && cd hlid
cargo run --release   # reads hlid.toml from the current directory

3. 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-local

The 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

MIT licensed · built at the workbench