llmgw

One OpenAI-compatible endpoint in front of your own GPUs.

Point any OpenAI client at this address. The API is the one you already have a client for — only the base URL changes.

Create an account Sign in

your client editor agent a script llmgw one address fabric fabric
Clients see one address. Work is placed on GPUs that can actually run it — and a model split across machines never straddles two fabrics.
Base URL https://llmgw.mynodes.xyz/v1

Three steps

  1. 1

    Get a key

    Create an account. Someone approves it, and then you issue your own keys from your profile — as many as you need, revoking them yourself when a laptop is retired or a script is done.

    A key is shown once and never again — only its hash is kept here — so put it in a password manager straight away.

  2. 2

    Point your client at it

    Set the base URL above and your key. Every OpenAI SDK, and every tool built on one, takes both as configuration.

    export OPENAI_BASE_URL=https://llmgw.mynodes.xyz/v1
    export OPENAI_API_KEY=$LLMGW_API_KEY
  3. 3

    Pick a model

    GET /v1/models lists what is available to your key. It needs the key, which is why this page does not list them: this page is served to anyone who can reach the address.

    Sending the placeholder <model-name> unchanged is answered with the list of models you may use, rather than with an error.

Connect your client

curl https://llmgw.mynodes.xyz/v1/chat/completions \
  -H "Authorization: Bearer $LLMGW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "<model-name>",
       "messages": [{"role": "user", "content": "hello"}]}'
import os
from openai import OpenAI

client = OpenAI(base_url="https://llmgw.mynodes.xyz/v1",
                api_key=os.environ["LLMGW_API_KEY"])

reply = client.chat.completions.create(
    model="<model-name>",
    messages=[{"role": "user", "content": "hello"}],
)
print(reply.choices[0].message.content)
// ~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "llmgw": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "llmgw",
      "options": {
        "baseURL": "https://llmgw.mynodes.xyz/v1",
        "apiKey": "{env:LLMGW_API_KEY}"
      },
      "models": { "<model-name>": { "name": "<model-name>" } }
    }
  }
}

Anything that speaks the chat-completions API works, whether or not it is listed here — there is nothing llmgw-specific to install. The client guide has more: streaming, tools, embeddings and the Anthropic SDK.

Once you have a key