Works on Windows 11 (no WSL required) and on macOS / Linux / WSL.
| Need | Check | Get it |
|---|---|---|
| Python 3.8+ | python --version / python3 --version |
https://www.python.org/downloads (Windows: tick Add Python to PATH) |
| Claude Code CLI | claude --version |
npm i -g @anthropic-ai/claude-code |
| UltraCode access | you've used /effort ultracode before |
part of your Claude plan |
| ≥1 backend credential | — | an API key and/or codex login (see below) |
There is nothing to pip install — the proxy is pure standard library.
The installer gets the code, runs the offline self-test, creates your
config.json, and drops a ultracode launcher on your PATH.
macOS / Linux / WSL
curl -fsSL https://raw.githubusercontent.com/OnlyTerp/UltraCode-Shim/main/install.sh | bashWindows (PowerShell)
irm https://raw.githubusercontent.com/OnlyTerp/UltraCode-Shim/main/install.ps1 | iexAlready have a clone? Run ./install.sh (or .\install.ps1) from inside it — it
detects the checkout and skips the network clone. Useful flags:
--no-test/-NoTest— skip the offline self-test.--dir DIR/-Dir DIR— where to clone (default~/.ultracode-shim, or%LOCALAPPDATA%\UltraCode-Shimon Windows).--bin-dir DIR/-BinDir DIR— where to put theultracodecommand.-DesktopIcons(Windows) — also create the Desktop shortcuts.--uninstall/-Uninstall— remove the launcher (leaves your clone + config).
If the installer says your bin dir isn't on PATH, it prints the exact line to
add. Re-open your terminal afterward.
Prefer to do it by hand? See Manual setup at the bottom — clone,
doctor.py, thenbin/ultracode.
The installer (and the launcher, on first run) creates config.json from
config.example.json. config.json is gitignored, so your keys never get
committed. Edit it for the plans you have: keep the entries you want in models +
routes, delete the rest, and put each key inline or as ${VAR}. Full
per-backend templates are in ADD_A_MODEL.md.
Real Claude (Opus/Sonnet/Haiku) is always offered in
/model— you don't configure it, and it stays in the picker even with no Anthropic key to list it. The list is self-updating: the proxy learns the real Claude ids from any successful upstream/v1/modelsfetch and caches them, so a newly released Opus appears automatically. Turn it off withproxy.include_stock_models: false(orUC_INCLUDE_STOCK_MODELS=0); disable just the learning withproxy.learn_stock_models: false(orUC_STOCK_LEARN=0).
If you want the codex_oauth backend:
- Install the Codex CLI and run
codex loginonce. This creates~/.codex/auth.json. - Keep the
claude-gpt-5.5-codexentries in the example configs (or add your own).
No API key is needed for this path — it reuses your ChatGPT login.
The installer already ran the offline self-test. After you edit config.json you
can re-validate your real config anytime:
python scripts/doctor.py # windows: python | mac/linux: python3
Resolve any [FAIL] lines (each prints the fix) until it exits cleanly. (If you
installed via the one-command flow, the repo lives in ~/.ultracode-shim or
%LOCALAPPDATA%\UltraCode-Shim unless you passed --dir.)
ultracode
First the selector opens: pick an orchestrator on the left and a worker on the
right (Same as orchestrator means one model runs everything). Claude Code then
opens with full UltraCode. You can still type /model later to change either tier
— your configured models and real Claude (Opus/Sonnet/Haiku) are all there.
Set UC_SELECTOR=0 before launching to skip the selector and choose from
/model only.
Windows Desktop icons (optional). Prefer double-clicking? Run
.\install.ps1 -DesktopIcons(or, in a clone,.\windows\Install-DesktopIcons.ps1) to create UltraCode (All Models) and Claude Code (Normal) shortcuts. If PowerShell blocks the script, run it once aspowershell -ExecutionPolicy Bypass -File .\windows\Install-DesktopIcons.ps1.
git clone https://github.com/OnlyTerp/UltraCode-Shim.git
cd UltraCode-Shim
python scripts/doctor.py # offline self-test + (later) config check
cp config.example.json config.json # windows: copy ... then edit it
./bin/ultracode # windows: .\windows\Start-UltraCode.ps1
Optionally symlink the launcher onto your PATH:
ln -s "$PWD/bin/ultracode" ~/.local/bin/ultracode.
- Launcher command:
./install.sh --uninstall(or.\install.ps1 -Uninstall) removes theultracodeshim; your clone andconfig.jsonare left alone. - Windows icons + session state:
.\windows\Uninstall.ps1. - Everywhere: delete the repo folder. Your
~/.claudeand credentials are never modified by this project.
