Hi! First, thank you for your effort, getting Claude Code to work with OpenAI completions APIs!
When I try it with Cerebras (should be OpenAI compatible), I get the following error. Do you have an idea on how to fix this? I can provide an API for testing if needed.
PS C:\Users\Kersten\Documents\Coding\AI\claude2openai> python3 .\claude2openai.py
2026-01-30T22:14:44+0100 INFO claude2openai Claude2OpenAI listening on http://127.0.0.1:8080
127.0.0.1 - - [30/Jan/2026 22:18:15] "POST /v1/v1/messages?beta=true HTTP/1.1" 200 -
2026-01-30T22:18:15+0100 ERROR claude2openai Upstream error (stream): error code: 1010
2026-01-30T22:18:15+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:18:15] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
----------------------------------------
Exception occurred during processing of request from ('127.0.0.1', 61740)
Traceback (most recent call last):
File "C:\Users\Kersten\AppData\Local\Python\pythoncore-3.14-64\Lib\socketserver.py", line 697, in process_request_thread
self.finish_request(request, client_address)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Kersten\AppData\Local\Python\pythoncore-3.14-64\Lib\socketserver.py", line 362, in finish_request
self.RequestHandlerClass(request, client_address, self)
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Kersten\AppData\Local\Python\pythoncore-3.14-64\Lib\socketserver.py", line 766, in __init__
self.handle()
~~~~~~~~~~~^^
File "C:\Users\Kersten\AppData\Local\Python\pythoncore-3.14-64\Lib\http\server.py", line 485, in handle
self.handle_one_request()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\Kersten\AppData\Local\Python\pythoncore-3.14-64\Lib\http\server.py", line 453, in handle_one_request
self.raw_requestline = self.rfile.readline(65537)
~~~~~~~~~~~~~~~~~~~^^^^^^^
File "C:\Users\Kersten\AppData\Local\Python\pythoncore-3.14-64\Lib\socket.py", line 725, in readinto
return self._sock.recv_into(b)
~~~~~~~~~~~~~~~~~~~~^^^
ConnectionResetError: [WinError 10054] Eine vorhandene Verbindung wurde vom Remotehost geschlossen
----------------------------------------
127.0.0.1 - - [30/Jan/2026 22:19:21] "POST /v1/v1/messages?beta=true HTTP/1.1" 200 -
127.0.0.1 - - [30/Jan/2026 22:19:21] "POST /v1/v1/messages?beta=true HTTP/1.1" 200 -
2026-01-30T22:19:21+0100 ERROR claude2openai Upstream error (stream): error code: 1010
2026-01-30T22:19:21+0100 ERROR claude2openai Upstream error (stream): error code: 1010
2026-01-30T22:19:22+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:22] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:22+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:22] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:22+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:22] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:22+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:22] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:23+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:23] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:23+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:23] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:26+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:26] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:26+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:26] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:30+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:30] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:30+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:30] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:39+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:39] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:19:55+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:19:55] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:20:31+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:20:31] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
2026-01-30T22:21:08+0100 ERROR claude2openai Upstream error: error code: 1010
127.0.0.1 - - [30/Jan/2026 22:21:08] "POST /v1/v1/messages?beta=true HTTP/1.1" 502 -
This is my config.toml:
# Refer to docs/USAGE.md for details on the configuration parameters.
[server]
host = "127.0.0.1"
port = 8080
log_level = "INFO"
[openai]
base_url = "https://api.cerebras.ai/v1"
api_key = "csk-xxx"
model = "zai-glm-4.7"
# WARNING: Let the below be defaults unless there is trouble
# and you are trying to fix the issue
timeout_seconds = 60
retries = 2
retry_backoff_seconds = 0.5
log_upstream_response = false
log_upstream_response_limit = 2000
disable_tools = true
tool_choice_override = "none"
response_format_override = "text"
merge_text_blocks = true
strict_stream_text_blocks = true
log_translated_messages = false
log_translated_messages_limit = 2000
log_sse_events = false
log_sse_events_limit = 2000
drop_empty_text_deltas = true
stream_sentence_buffer = true
filter_tool_json_text = true
filter_topic_json_text = true
empty_stream_fallback = "No response rendered"
system_prompt_mode = "replace"
system_prompt_suffix = "Respond to the user directly with plain text."
# Use an appropriate model mapping as needed.
[model_map]
"claude-3-5-sonnet-20240620" = "zai-glm-4.7"
"claude-3-5-haiku-20241022" = "zai-glm-4.7"
"*onnet*" = "zai-glm-4.7"
"*pus*" = "zai-glm-4.7"
"*aiku*" = "zai-glm-4.7"
And this is my settings.json:
{
"env": {
"ANTHROPIC_API_KEY": "non-empty-string",
"ANTHROPIC_BASE_URL": "http://127.0.0.1:8080/v1",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_ENABLE_TELEMETRY": "0",
"API_TIMEOUT_MS": "3000000",
"ANTHROPIC_MODEL": "claude-sonnet-4-5",
"ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
},
"autoUpdatesChannel": "latest",
"api_base_url": "http://127.0.0.1:8080/v1",
"api_key": "any-non-empty-string",
"apiBaseUrl": "http://127.0.0.1:8080/v1",
"apiKey": "any-non-empty-string"
}
Hi! First, thank you for your effort, getting Claude Code to work with OpenAI completions APIs!
When I try it with Cerebras (should be OpenAI compatible), I get the following error. Do you have an idea on how to fix this? I can provide an API for testing if needed.
This is my config.toml:
And this is my settings.json:
{ "env": { "ANTHROPIC_API_KEY": "non-empty-string", "ANTHROPIC_BASE_URL": "http://127.0.0.1:8080/v1", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1", "CLAUDE_CODE_ENABLE_TELEMETRY": "0", "API_TIMEOUT_MS": "3000000", "ANTHROPIC_MODEL": "claude-sonnet-4-5", "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-5", "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5", "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-5", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5" }, "autoUpdatesChannel": "latest", "api_base_url": "http://127.0.0.1:8080/v1", "api_key": "any-non-empty-string", "apiBaseUrl": "http://127.0.0.1:8080/v1", "apiKey": "any-non-empty-string" }