claudsor
v1.0.0
Published
OpenAI-compatible proxy for Anthropic Claude, designed to plug into Cursor as a custom OpenAI Base URL.
Maintainers
Readme
claudsor
Use Cursor with Claude money.
Quickstart
Usage
No installation needed! Just run:
npx claudsorA browser tab will open for Anthropic login. Paste the returned code back into the terminal.

The terminal will then print something like
claudsor v0.3.0
local: http://localhost:5090
tunnel: https://grumpy-views-cross.loca.lt
config: ~\.claudsor
Paste into Cursor -> Settings -> Models -> OpenAI Base URL:
https://grumpy-views-cross.loca.ltPaste the URL (in this case https://grumpy-views-cross.loca.lt) into Cursor Settings → Models → API Keys → Override OpenAI Base URL (IMPORTANT: you need to be logged into a personal Cursor account, else enteprise privacy controls might disable this setting).
You also need to put in something in the OpenAI API Key field, but it can be anything.

From there on, any model starting with gpt- will be routed to the server.
Congrats! 🎉
Model mapping
| Client model | Claude |
| -------------------- | ----------------- |
| gpt-*-codex | claude-opus-4-7 |
| Anything else with gpt- | claude-sonnet-4-6 |
| gpt-*-nano, gpt-*-mini | claude-haiku-4-5|
Developing Locally
git clone https://github.com/shotnothing/claudsor
cd claudsor
npm install
node index.jsLayout:
index.js: CLI entry, banner, shutdowncli.js: arg parserpaths.js: resolves~/.claudsor(token + logs)auth.js: Anthropic OAuth + token refreshclaude.js:fetchwrapper for/v1/messagestranslate.js: OpenAI <-> Anthropic translation (request + SSE)server.js: HTTP server on--porttunnel.js-localtunnelwrapperlogger.js: JSONL logs (input,output,errors,http)
Tail the logs to watch traffic:
tail -f ~/.claudsor/logs/input.jsonl
tail -f ~/.claudsor/logs/errors.jsonl