White-label

White-label AI API — ship AI in your own brand

Plugsky is OpenAI-compatible and built to be rebranded. Host the dashboard under your domain, fork the open-source CLIs (OpenCode, Aider, Goose), and present AI as your own product — without rewriting a single line of inference code.

Three things make a true white-label AI product: (1) an API you can rebrand end-to-end, (2) a dashboard you can host on your own domain with your own logo, and (3) client apps — IDE plugins, desktop apps, terminal CLIs — that look and feel like yours. Plugsky ships all three.

What is white-label AI?

A white-label AI API is a hosted inference product you can present as your own. The customer never sees the underlying provider — they see your logo, your domain, your docs, your pricing, and your support. You pay the provider, mark up the cost, and keep the margin.

Plugsky is designed for this. Everything user-facing is brand-neutral:

  • API responses — the model field returns your slug (plugsky-pro), not the upstream vendor's id.
  • Dashboard — a single-page static site you can fork and rebrand. Logo, colors, copy, and domain are all yours.
  • Docs — MIT-licensed, written to be forked, with no vendor mentions.
  • Client apps — connect any OpenAI-compatible IDE, desktop app, or CLI to your branded endpoint. No vendor lock-in.

Rebrand the API surface

The fastest rebrand is at the model id level. Every model in the ladder has a slug you control. Ship a yourbrand-pro, yourbrand-fast, yourbrand-embed and present them as your own product line.

bash
# Your customers see this
curl -X POST https://api.yourbrand.com/v1/chat/completions \
  -H "Authorization: Bearer sk-live-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "yourbrand-pro",
    "messages": [{"role":"user","content":"Hello!"}]
  }'

# The response returns your slug, not the upstream
{
  "id": "chatcmpl-...",
  "model": "yourbrand-pro",
  "object": "chat.completion",
  "choices": [{"message":{"role":"assistant","content":"Hi!"}}]
}

OpenAI's SDKs (Python, Node, Go, .NET, Java, Ruby, Rust, PHP) all work against the same /v1 OpenAPI spec — change base_url, change the model name, and ship.

No vendor lock-in

Because Plugsky is 100% OpenAI-compatible, you can swap providers without touching customer code. The day Plugsky raises prices or misses an SLA, point base_url at OpenAI, Anthropic, or your own self-hosted model and keep going.

Customize the dashboard

The Plugsky dashboard (playground.html, dashboard.html, docs.html) is a single static SPA that talks to your branded API. Every visible string, every color, and every logo is in /articles/article.css + a top-level <nav> you ship in the HTML.

What you can rebrand in a single config file:

  • Logo, wordmark, favicon
  • Primary, accent, and background colors (CSS custom properties)
  • Brand name in the title bar and footer
  • Support email, privacy URL, terms URL
  • Custom landing-page hero copy and CTAs

Host it on app.yourbrand.com with a CNAME to your Plugsky bucket, or self-host the static files in your own S3 / Cloudflare R2 / GitHub Pages.

Fork the open-source CLIs

Every terminal AI agent Plugsky integrates with is open source. The four primary recommendations are:

1. OpenCode — github.com/anomalyco/opencode

License: MIT · Docs: opencode.ai/docs · Why: most popular open-source coding agent, cleanest custom-provider config. Recommended flagship.

Custom provider in opencode.json:

json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "yourbrand": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "YourBrand",
      "options": {
        "baseURL": "https://api.yourbrand.com/v1",
        "apiKey": "{env:YOURBRAND_API_KEY}"
      },
      "models": {
        "yourbrand-pro": { "name": "YourBrand Pro" },
        "yourbrand-max": { "name": "YourBrand Max" }
      }
    }
  }
}

White-label points:

  • ASCII startup header → packages/tui/ (Go Bubble Tea TUI). Replace the art with your wordmark.
  • Colors / theme → packages/tui/internal/theme/ or ship a theme JSON and set "theme": "yourbrand".
  • Default model → bundle the provider config above so opencode boots pointing at your endpoint.
  • Docs / site assets → packages/web/.

2. Aider — github.com/Aider-AI/aider

License: Apache-2.0 · Docs: aider.chat/docs · Why: mature, git-native, simplest setup — pure environment variables.

Two env vars and you're done:

bash
export OPENAI_API_BASE=https://api.yourbrand.com/v1
export OPENAI_API_KEY=sk-live-YOUR_KEY
aider --model openai/yourbrand-pro

White-label points:

  • Banner / name / version → aider/__init__.py (version) and aider/main.py (startup banner).
  • Output colors → aider/io.py (InputOutput class) — or set brand hexes via .aider.conf.yml: user-input-color, assistant-output-color, etc.
  • Default model → bundle .aider.conf.yml with model: openai/yourbrand-pro.

3. Goose — github.com/block/goose

License: Apache-2.0 · Docs: block.github.io/goose · Why: model-agnostic, MCP-native, and ships an official Custom Distributions guide for white-labeling.

Interactive setup:

text
goose configure
→ Configure Providers
→ choose "OpenAI Compatible"
→ OPENAI_API_KEY   = sk-live-YOUR_KEY
→ OPENAI_HOST      = https://api.yourbrand.com
→ OPENAI_BASE_PATH = v1/chat/completions
→ model            = yourbrand-pro

White-label points (official guide):

  • Logos / icons → ui/desktop/src/images/: icon.png, icon.ico, icon.icns, plus splash screens.
  • App name / packaging → ui/desktop/forge.config.ts (name, executableName, icon), ui/desktop/package.json (productName).
  • Assistant identity → crates/goose/src/prompts/system.md ("You are YourBrand…").
  • UI colors / labels → React + Tailwind in ui/desktop/src/.
  • Default provider → declarative init-config.yaml with GOOSE_PROVIDER, GOOSE_MODEL. Disable telemetry with GOOSE_DISABLE_TELEMETRY=1.

4. Crush (Charmbracelet) — github.com/charmbracelet/crush

License: Functional Source License (FSL-1.1-MIT) — converts to MIT after ~2 years · Why: beautiful terminal UI, works with OpenAI-compatible endpoints. Note license terms before forking.

Custom provider in ~/.config/crush/crush.json:

json
{
  "providers": {
    "yourbrand": {
      "type": "openai",
      "base_url": "https://api.yourbrand.com/v1",
      "api_key": "$YOURBRAND_API_KEY",
      "models": [
        { "id": "yourbrand-pro", "name": "YourBrand Pro" }
      ]
    }
  }
}

White-label points:

  • ASCII splash → Charm's Bubble Tea / Lip Gloss in the Go source. Replace the ASCII art and brand styles.
  • Colors / theme → crush.json for no-fork rebrand, or Lip Gloss style definitions for a source fork.
  • Default model → preset yourbrand-pro in the bundled crush.json.

Rebrand IDEs and desktop apps

Every IDE and desktop client Plugsky integrates with is configured through an OpenAI-compatible provider URL. You don't fork the IDE — you ship a config preset the user pastes in.

Visual Studio Code (Continue, Cline, Roo Code)

Each extension reads a JSON or YAML config. Ship a one-line snippet:

json
{
  "models": [{
    "title": "YourBrand Pro",
    "provider": "openai",
    "model": "yourbrand-pro",
    "apiBase": "https://api.yourbrand.com/v1",
    "apiKey": "sk-live-..."
  }]
}

JetBrains AI Assistant

Settings → Tools → AI Assistant → Custom LLM provider → OpenAI-compatible → point at your endpoint.

Desktop apps (Chatbox, Jan, LM Studio, Msty, Open WebUI, LibreChat, Raycast)

All seven ship a Custom OpenAI Endpoint field. Plug in your base URL + key + model id; the app routes every call to your brand.

Model licensing — what can you rebrand?

Open-weight models (Llama, Mistral, Qwen, DeepSeek, Gemma) ship under permissive licenses that allow commercial rebranding. Closed models (the ones Plugsky proxies from NVIDIA) carry their own terms — check the upstream license before shipping a white-label.

For full control, host your own open-weights on your own GPU. Plugsky's inference layer accepts any OpenAI-compatible server — point it at vLLM, llama.cpp, or TGI running in your VPC.

Frequently asked questions

Can I use Plugsky as a true white-label without mentioning Plugsky anywhere?

Yes. The OpenAI-compatible API surface, dashboard, docs, and client configs are all brand-neutral. There is no "Powered by Plugsky" badge.

What happens if I want to switch off Plugsky later?

Point your customers' base_url at any other OpenAI-compatible provider — your own self-hosted, OpenAI direct, or another vendor. No code changes needed.

Are the open-source CLIs (OpenCode, Aider, Goose, Crush) free to fork?

OpenCode (MIT), Aider (Apache-2.0), and Goose (Apache-2.0) are all clean to fork and rebrand. Crush is FSL-1.1-MIT — verify terms before any source fork; configuration-only rebranding is always fine.

Can I host the dashboard on my own domain?

Yes. The dashboard is a single static SPA. Host it on S3, Cloudflare R2, GitHub Pages, or your own nginx. It talks to your Plugsky endpoint via CORS.

What about voice, vision, and image generation?

Plugsky supports chat, embeddings, vision input, and function calling today. Audio TTS/STT and image generation endpoints are not exposed — point those at a dedicated provider (ElevenLabs, OpenAI, Stability).

How is billing structured for a white-label partner?

You buy Plugsky usage at our published rates, mark it up, and bill your customer directly. We provide a Partner API for usage reporting and customer management.

Build a white-label AI product

OpenAI-compatible API, brand-neutral dashboard, MIT-licensed docs, four open-source CLIs to fork. Ship in your own name.

Start Free → See all 60 integrations