Skip to content

Doesn't work with Cerebras API #1

Description

@Hurricane31337

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"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions