> ## Documentation Index
> Fetch the complete documentation index at: https://docs.square1.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Compatible clients

> Set up RisuAI, SillyTavern, and other OpenAI-compatible apps

Anything that can talk to an "OpenAI-compatible" endpoint works with
Square1. The two settings are always the same:

* **Base URL** — `https://inference.square1.dev/v1`
* **API key** — your `sq-arca-...` key

## RisuAI

### Chat

<Steps>
  <Step title="Open model settings">
    **Settings → AI Model** and choose the custom / OpenAI-compatible
    provider type.
  </Step>

  <Step title="Point it at Square1">
    Set the request URL to `https://inference.square1.dev/v1/chat/completions`
    (or the base URL `https://inference.square1.dev/v1`, depending on the
    field RisuAI shows) and paste your key.
  </Step>

  <Step title="Pick a model">
    Enter a model id from [`GET /v1/models`](/api-reference) — for
    example `deepseek-v4-pro` or `kimi-k2.6`.
  </Step>
</Steps>

<Tip>
  Streaming, reasoning models, and the quota receipt all work through
  RisuAI unchanged. If a response stops mid-generation, check your quota
  standing on the dashboard — `429` with `session_exhausted` /
  `weekly_exhausted` is the usual cause.
</Tip>

### Lightboard (삽화)

RisuAI's Lightboard speaks the NovelAI protocol, and Square1 implements
it directly — see the [Illustration API](/guides/illustration-api):

1. Configure your illustration preset on the dashboard (**Images →
   ILLUSTRATION**) — checkpoint, LoRAs, and quality settings live there.
2. In RisuAI, set the NovelAI-compatible image endpoint to
   `https://inference.square1.dev/v1/images/nai/generate-image` with your
   Square1 key as the token.

## SillyTavern

Add a **Custom (OpenAI-compatible)** chat completion source:

* Custom endpoint: `https://inference.square1.dev/v1`
* API key: your `sq-arca-...` key
* Model: any id from `GET /v1/models`

## Anything else

If a tool accepts `base_url` + `api_key` for OpenAI, it works — see
[Using OpenAI SDKs](/guides/openai-sdk) for library examples, and
[Errors](/concepts/errors) for the codes your client should treat as
retryable.

<Note>
  Client apps run in trusted environments (your own device). Don't paste
  your key into shared or hosted frontends you don't control — anyone
  holding the key spends your quota.
</Note>
