Pluviobyte / dot2api
git clone https://github.com/Pluviobyte/dot2api.git
Turn your OpenAI Dot into an OpenAI- and Claude-compatible API
—
stars, 24h
—
stars, 7 days
+208
stars, 30 days · #1,227
208
★ total
21
forks · 2 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguagePython
LicenseMIT
Created2026-10-06 (14d ago)
Last push14d ago
Watchers2
OwnerUser
Links
README excerpt
Dot2API Turn your OpenAI Dot into an OpenAI- and Claude-compatible API English | 简体中文 > [!NOTE] > This project is for technical research and personal use with your own Dot. Comply with OpenAI's terms of use and local laws; you are solely responsible for how you use it. > [!WARNING] > Anyone holding an API key can prompt your Dot, which may have access to your connected apps. Issue keys only to callers you trust as much as yourself. See Security. ## Overview Dot2API is a self-hosted gateway that exposes one OpenAI Dot through the OpenAI Chat Completions and Anthropic Messages formats. Point an existing SDK at it: each request is queued, your Dot is woken through MCP Events, it claims and answers the request over MCP, and the reply comes back as a normal completion. Unlike most 2API projects, Dot2API does not reverse-engineer a web interface and never touches your OpenAI credentials. It uses the public MCP 2.0 connector and Events protocol, and it never calls a model itself. ### Architecture [code] ### Core capabilities | Area | Capabilities | |---|---| | APIs | OpenAI Chat Completions, Anthropic Messages, model list, and an asynchronous task API | | Clients | OpenAI-compatible and Anthropic-compatible SDKs, automation tools, and plain HTTP | | Streaming | SSE in both dialects, with keep-alives while the Dot works | | Reliability | Durable tasks, atomic claims, leases, bounded retries, deadlines, and cancellation when the caller disconnects | | Events | MCP Events subscriptions, callback verification, signed at-least-once webhook delivery | | Security | Expiring keys stored as fingerprints, scoped identities, rate limits, audit records | | Operations | One-command setup, health and readiness probes, consistent backups, hardened container image | ### Limitations A Dot is an agent, not a model endpoint, so the API is compatible in shape rather than in behavior. | Aspect | Behavior | |---|---| | Latency | Seconds to minutes per reply. Requests wait up to 300 seconds by default, then return 504 with a `task_id` to read later | | Streaming | The whole reply arrives in one delta, not token by token | | Content | Text only. Images and tool-result blocks return 400 | | Tool calling | Not supported. `tools` is ignored; the Dot uses its own tools and never returns tool calls | | Parameters | Sampling parameters and `max_tokens` are accepted and ignored. Token usage is reported as zero | | Concurrency | One Dot answers one queue. Requests wait in line | This makes Dot2API a good fit for scheduled jobs, automation workflows, custom bots, and delegating a task from another agent. It is not a model backend for coding agents such as Codex or Claude Code, or for real-time chat front ends. ## Quick start A Dot connects from OpenAI's network, so the service needs a public HTTPS URL. Both options below bind to loopback; put a TLS reverse proxy in front. See Deployment. ### Docker Compose [code] ### Run from source Python 3.11 or later and uv are required. [