# ClewdR

ClewdR

ClewdR is a Rust proxy for Claude (Claude.ai, Claude Code). It keeps resource usage low, serves OpenAI-style endpoints, and ships with a small React admin UI for managing cookies and settings. --- ## Highlights - Works with Claude web and Claude Code. - Single static binary for Linux, macOS, Windows, and Android; Docker image available. - Web dashboard shows live status and supports hot config reloads. - Drops into existing OpenAI-compatible clients while keeping native Claude formats. - Typical production footprint: `<10 MB` RAM, `<1 s` startup, `~15 MB` binary. ## Supported Endpoints | Service | Endpoint | |---------|----------| | Claude.ai | `http://127.0.0.1:8484/v1/messages` | | Claude.ai OpenAI compatible | `http://127.0.0.1:8484/v1/chat/completions` | | Claude Code | `http://127.0.0.1:8484/code/v1/messages` | | Claude Code OpenAI compatible | `http://127.0.0.1:8484/code/v1/chat/completions` | Streaming responses work on every endpoint. ## Quick Start 1. Download the latest release for your platform from GitHub. Linux/macOS example: ```bash curl -L -o clewdr.tar.gz https://github.com/Xerxes-2/clewdr/releases/latest/download/clewdr-linux-x64.tar.gz tar -xzf clewdr.tar.gz && cd clewdr-linux-x64 chmod +x clewdr ``` 2. Run the binary: ```bash ./clewdr ``` 3. Open `http://127.0.0.1:8484` and enter the admin password shown in the console (or container logs if using Docker). ## Using the Web Admin - `Dashboard` shows health, connected clients, and rate-limit status. - `Claude` tab stores browser cookies; paste `cookie: value` pairs and save. - `Settings` lets you rotate the admin password, set upstream proxies, and reload config without restarting. If you forget the password, delete `clewdr.toml` and start the binary again. Docker users can mount a persistent folder for that file. ## Configure Upstreams ### Claude 1. Export your Claude.ai cookies (e.g., via browser devtools). 2. Paste them into the Claude tab; ClewdR tracks their status automatically. 3. Optionally set an outbound proxy or fingerprint overrides if Claude blocks your region. ## Client Examples SillyTavern: ```json { "api_url": "http://127.0.0.1:8484/v1/chat/completions", "api_key": "password-from-console", "model": "claude-3-sonnet-20240229" } ``` Continue (VS Code): ```json { "models": [ { "title": "Claude via ClewdR", "provider": "openai", "model": "claude-3-sonnet-20240229", "apiBase": "http://127.0.0.1:8484/v1/", "apiKey": "password-from-console" } ] } ``` Cursor: ```json { "openaiApiBase": "http://127.0.0.1:8484/v1/", "openaiApiKey": "password-from-console" } ``` ## Resources - Wiki: ## Thanks - [wreq](https://github.com/0x676e67/wreq) for the fingerprinting library. - [Clewd](https://github.com/teralomaniac/clewd) for many upstream ideas. - [Clove](https://github.com/mirrorange/clove) for Claude Code helpers.