README.md

June 5, 2026 · View on GitHub

wavydance.ai

wavydance.ai

One Wave. Every Model.
The unified gateway to every LLM API — one endpoint, one key, one bill.

License: PolyForm Noncommercial 1.0.0 Website Go Status

What · Features · Quick start · API · Self-hosting · License · Commercial use


What is wavydance.ai

Wavydance.ai is a self-hostable LLM gateway that puts 200+ models from every major provider behind a single OpenAI-compatible endpoint. Point your existing SDK at one base URL, switch providers by changing the model string, and pay one consolidated bill — across GPT, Claude, Gemini, DeepSeek, Qwen, and the long tail.

For image and video models, a unified async task API gives you consistent parameters across providers, with results delivered by webhook push or polling.

The whole system ships as a single Go binary with an embedded React console — drop it on a VPS, point a domain at it, and you have a production LLM router.

Features

  • One endpoint, every model — 200+ models behind a single OpenAI-compatible base URL
  • Drop-in for chat & vision — change one line in your existing OpenAI SDK code, switch providers by model string
  • Unified async task API for image and video — same parameters across providers, webhook or polling
  • Smart routing & failover — latency-aware routing detects upstream failures and retries on the next-best provider, transparently
  • Token-grained billing — pay-as-you-go per token (or per generation for media), aggregated into one bill across all providers; built-in budgets and alerts
  • Cost analytics — per-model breakdown, request volume, quota consumption over trailing windows
  • Multi-tenant API keys — issue scoped keys per client, rotate or disable instantly
  • Zero-log mode for enterprise — only token metadata retained, no prompt/response storage
  • Self-hostable — single Go binary, Docker image, SQLite or MySQL/Postgres
  • Polished admin console — bilingual (EN / 中文), light + dark themes, built on a modern React + Tailwind stack

Quick start

Docker

docker run -d \
  --name wavydance \
  -p 3000:3000 \
  -e INITIAL_ROOT_PASSWORD=change-me-please \
  -e SESSION_SECRET=$(openssl rand -hex 32) \
  -e SESSION_COOKIE_SECURE=true \
  -v $PWD/data:/data \
  ghcr.io/jimmyhu213/wavydanceai:latest

Open http://localhost:3000, sign in with root and the password you set, then add your first upstream channel.

Binary

Download the release for your platform from Releases, then:

./wavydanceai --port 3000 --log-dir ./logs

Build from source

# 1. Build the React frontend (Vite + bun)
cd web && ./build.sh && cd ..

# 2. Build the Go binary (frontend is embedded via //go:embed)
go build -ldflags "-s -w" -o wavydanceai

API

Chat and vision are OpenAI-compatible — point any SDK at https://your-host/v1 and use a wavydance API key.

curl https://your-host/v1/chat/completions \
  -H "Authorization: Bearer wd-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-6",
    "messages": [{"role": "user", "content": "ping"}]
  }'
from openai import OpenAI

client = OpenAI(
    base_url="https://your-host/v1",
    api_key="wd-...",
)

resp = client.chat.completions.create(
    model="claude-opus-4-6",
    messages=[{"role": "user", "content": "ping"}],
)
print(resp.choices[0].message.content)

Switch providers by changing the model string — gpt-4o, claude-opus-4-6, gemini-2.5-pro, deepseek-v3, qwen-max, etc.

Self-hosting

Required environment variables for any production deployment:

VariableRequiredNotes
INITIAL_ROOT_PASSWORDYesSets the password for the seeded root account on first boot. Never deploy without this set.
SESSION_SECRETYesRandom 32+ byte string per deployment. Never reuse across environments.
SESSION_COOKIE_SECUREProdSet to true behind TLS so session cookies are not sent over plain HTTP.
INITIAL_ROOT_TOKENOptionalBootstrap a root API key on first boot.
INITIAL_ROOT_ACCESS_TOKENOptionalBootstrap a root admin access token.

See docs/ for full configuration, multi-node deployment, and backup guidance.

License

This project is licensed under the PolyForm Noncommercial License 1.0.0 — see LICENSE for the full text and NOTICE for a plain-English summary.

  • ✅ Personal learning, research, classroom use, hobby projects, non-profits
  • ❌ Any commercial use — hosted services, resale, embedding in paid products, or internal use at for-profit organizations

Commercial use

Need to run wavydance.ai inside a for-profit organization, ship it as part of a paid product, or offer it as a hosted service? Commercial licenses are available.

📩 hujieming213@gmail.com Subject: wavydance.ai commercial license

We'll get back to you within two business days with terms.

Credits

wavydance.ai is a brand-and-feature fork of songquanpeng/one-api (MIT). Portions of this codebase derived from one-api remain available under their original MIT terms from the original source. See NOTICE for full attribution.


Built with waves · wavydance.ai