{"service":"llm-proxy","manual":"/info?token=<client key>","providers":{"gemini":{"base":"<this host>/gemini","upstream":"https://generativelanguage.googleapis.com","keys":1,"websocket":true},"anthropic":{"base":"<this host>/anthropic","upstream":"https://api.anthropic.com","keys":1,"websocket":false},"openai":{"base":"<this host>/openai","upstream":"https://api.openai.com","keys":0,"websocket":true}},"auth":"your llm-proxy key goes where the vendor SDK puts its API key; the proxy swaps in the vendor key"}