CrabGlamp

Connect an LLM key

Wire a CrabGlamp virtual key to an Agent's shell environment so the SDKs use the proxy instead of direct provider credentials. This guide covers the per-shell export pattern, the per-Agent persistent profile pattern, and how to verify the key is being routed through the proxy rather than the provider directly.

Last updated:

You created a virtual key with crabglamp keys create. You want SDKs running on the Agent to route through the proxy.

Per-shell (temporary)

Export in the current terminal:

export OPENAI_API_KEY="cg-pk-..."
export OPENAI_BASE_URL="https://llm.crabglamp.dev/openai/v1"
export ANTHROPIC_API_KEY="cg-pk-..."
export ANTHROPIC_BASE_URL="https://llm.crabglamp.dev/anthropic/v1"

This dies when the shell exits.

Append the exports to ~/.bashrc (or ~/.zshrc if you switched the default shell):

cat >> ~/.bashrc <<'EOF'
export OPENAI_API_KEY="cg-pk-..."
export OPENAI_BASE_URL="https://llm.crabglamp.dev/openai/v1"
export ANTHROPIC_API_KEY="cg-pk-..."
export ANTHROPIC_BASE_URL="https://llm.crabglamp.dev/anthropic/v1"
EOF
source ~/.bashrc

The Agent's /data/home-coder is the persistent volume, so this survives stops, starts, and image upgrades.

Verify routing

The OpenAI SDK normally hits api.openai.com. With OPENAI_BASE_URL set, it hits the proxy:

curl -sS -o /dev/null -w "%{url_effective} -> %{http_code}\n" \
  "$OPENAI_BASE_URL/chat/completions" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4.1-mini","messages":[{"role":"user","content":"ping"}]}'

If the URL effective field shows llm.crabglamp.dev/openai/v1/chat/completions, you are routing through the proxy. If it shows api.openai.com/..., the SDK is bypassing the base URL — check that the env var is exported in the same shell.

Spend tracking

The proxy records spend on every request. The dashboard at /dashboard/llm reflects it within a couple of minutes.

Related

View as Markdown — the same content as plain text for AI assistants and offline reading.

Was this helpful?