Broken Claude Max #4475

Open
opened 2026-02-16 17:43:53 -05:00 by yindo · 392 comments
Owner

Originally created by @piotryordanov on GitHub (Jan 8, 2026).

Originally assigned to: @thdxr on GitHub.

Description

As of a few moments ago, usage of claude max stopped with the following error:

Image

I did try to reconnect, but got the same error.

Plugins

No response

OpenCode version

1.1.8

Steps to reproduce

No response

Screenshot and/or share link

No response

Operating System

mac

Terminal

No response

Originally created by @piotryordanov on GitHub (Jan 8, 2026). Originally assigned to: @thdxr on GitHub. ### Description As of a few moments ago, usage of claude max stopped with the following error: <img width="831" height="66" alt="Image" src="https://github.com/user-attachments/assets/ecc0f211-a883-4a6a-b1c8-816d7ea449a2" /> I did try to reconnect, but got the same error. ### Plugins _No response_ ### OpenCode version 1.1.8 ### Steps to reproduce _No response_ ### Screenshot and/or share link _No response_ ### Operating System mac ### Terminal _No response_
yindo added the bug label 2026-02-16 17:43:53 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Jan 8, 2026):

This issue might be a duplicate of existing issues. Please check:

  • #4660: Claude Max not working - user reports Claude Max stopped responding, similar to this issue's reconnection failure
  • #6559: Claude subscription token expires after a period of time - could be an underlying cause of connection failures
  • #6637: OAuth + claude-opus-4-5 returns HTTP 500 - related authentication/model usage failure pattern

Feel free to ignore if none of these address your specific case.

@github-actions[bot] commented on GitHub (Jan 8, 2026): This issue might be a duplicate of existing issues. Please check: - #4660: Claude Max not working - user reports Claude Max stopped responding, similar to this issue's reconnection failure - #6559: Claude subscription token expires after a period of time - could be an underlying cause of connection failures - #6637: OAuth + claude-opus-4-5 returns HTTP 500 - related authentication/model usage failure pattern Feel free to ignore if none of these address your specific case.
Author
Owner

@iloveicedgreentea commented on GitHub (Jan 8, 2026):

Me too. It was working fine 1 hour ago and now I am getting this error. I am on version 1.0.220. Claude status is up, but not sure if its a provider issue. Gpt 5.2 with the oauth plugin works for me

@iloveicedgreentea commented on GitHub (Jan 8, 2026): Me too. It was working fine 1 hour ago and now I am getting this error. I am on version 1.0.220. Claude status is up, but not sure if its a provider issue. Gpt 5.2 with the oauth plugin works for me
Author
Owner

@Manokit commented on GitHub (Jan 8, 2026):

Having the same issue, been using it all afternoon/evening and just got this.

@Manokit commented on GitHub (Jan 8, 2026): Having the same issue, been using it all afternoon/evening and just got this.
Author
Owner

@azizikri commented on GitHub (Jan 8, 2026):

me too, working fine yesterday

@azizikri commented on GitHub (Jan 8, 2026): me too, working fine yesterday
Author
Owner

@Naomarik commented on GitHub (Jan 8, 2026):

Same. Downgraded my claude plan to $100 immediately because I won't be able to use it as much without opencode.

Honestly using CC is like going back to stone age. Gonna be rough until if/when this gets fixed.

EDIT: I've cancelled my Anthropic subscription completely. Trying to use CC for the last 10 minutes and it's unusuable for the workflows I have and the visibility I need that opencode has enabled me to have. Will explore other models.

@Naomarik commented on GitHub (Jan 8, 2026): Same. Downgraded my claude plan to $100 immediately because I won't be able to use it as much without opencode. Honestly using CC is like going back to stone age. Gonna be rough until if/when this gets fixed. EDIT: I've cancelled my Anthropic subscription completely. Trying to use CC for the last 10 minutes and it's unusuable for the workflows I have and the visibility I need that opencode has enabled me to have. Will explore other models.
Author
Owner

@fm1randa commented on GitHub (Jan 8, 2026):

Same

@fm1randa commented on GitHub (Jan 8, 2026): Same
Author
Owner

@diasm3 commented on GitHub (Jan 8, 2026):

got a message too

@diasm3 commented on GitHub (Jan 8, 2026): got a message too
Author
Owner

@andrhlt commented on GitHub (Jan 8, 2026):

came here to find exactly this

@andrhlt commented on GitHub (Jan 8, 2026): came here to find exactly this
Author
Owner

@arthur404dev commented on GitHub (Jan 8, 2026):

Same here... Can't believe anthropic would shoot themselves in the foot like this...

@arthur404dev commented on GitHub (Jan 8, 2026): Same here... Can't believe anthropic would shoot themselves in the foot like this...
Author
Owner

@piotryordanov commented on GitHub (Jan 8, 2026):

@arthur404dev technically, this has nothing to do with anthropic. I don't believe we are supposed to be able to use the max plan outside of anthropic tools the way we are.

@piotryordanov commented on GitHub (Jan 8, 2026): @arthur404dev technically, this has nothing to do with anthropic. I don't believe we are supposed to be able to use the max plan outside of anthropic tools the way we are.
Author
Owner

@kandotrun commented on GitHub (Jan 8, 2026):

same ;;

@kandotrun commented on GitHub (Jan 8, 2026): same ;;
Author
Owner

@thdxr commented on GitHub (Jan 8, 2026):

it's likely they blocked it - i don't have time right now to investigate how but it's possible they blocked opencode specifically

@thdxr commented on GitHub (Jan 8, 2026): it's likely they blocked it - i don't have time right now to investigate how but it's possible they blocked opencode specifically
Author
Owner

@ChristianPavilonis commented on GitHub (Jan 8, 2026):

It seems to work now for me

@ChristianPavilonis commented on GitHub (Jan 8, 2026): It seems to work now for me
Author
Owner

@piotryordanov commented on GitHub (Jan 8, 2026):

@thdxr FWIW, I have a separate version running with rig that uses the same auth method, and it also gets the same error. Might that they changes the system prompt needed to talk to them.

@piotryordanov commented on GitHub (Jan 8, 2026): @thdxr FWIW, I have a separate version running with [rig](https://rig.rs/) that uses the same auth method, and it also gets the same error. Might that they changes the system prompt needed to talk to them.
Author
Owner

@norlanp commented on GitHub (Jan 8, 2026):

It seems to work now for me

I had the same error 10 mins ago, it's working again for me.

@norlanp commented on GitHub (Jan 8, 2026): > It seems to work now for me I had the same error 10 mins ago, it's working again for me.
Author
Owner

@cryptobetEU commented on GitHub (Jan 8, 2026):

I had same error, you must do opencode logout and afterwards opencode login and it will work again (doing without logout gies same error)
36% of max(20x) on 14 hours consumed lol

@cryptobetEU commented on GitHub (Jan 8, 2026): I had same error, you must do opencode logout and afterwards opencode login and it will work again (doing without logout gies same error) 36% of max(20x) on 14 hours consumed lol
Author
Owner

@jander99 commented on GitHub (Jan 8, 2026):

The scopes changed. The "2 minutes ago" is from a fresh opencode, the other is from claude. So what's user:sessions:claude_code? Wonder if it can be requested when opencode logs in?

Edit: WSL opencode 1.1.8, oh-my-opencode 2.14.0

Image
@jander99 commented on GitHub (Jan 8, 2026): The scopes changed. The "2 minutes ago" is from a fresh opencode, the other is from `claude`. So what's `user:sessions:claude_code`? Wonder if it can be requested when opencode logs in? Edit: WSL opencode 1.1.8, oh-my-opencode 2.14.0 <img width="921" height="206" alt="Image" src="https://github.com/user-attachments/assets/cc5f2ce0-7785-471f-a4de-dfb7a55b14a5" />
Author
Owner

@cryptobetEU commented on GitHub (Jan 8, 2026):

and same error again. i go sleep I see tommorow

@cryptobetEU commented on GitHub (Jan 8, 2026): and same error again. i go sleep I see tommorow
Author
Owner

@fm1randa commented on GitHub (Jan 8, 2026):

It is not only opencode that was blocked. Clawdbot also doesn't work anymore.

@fm1randa commented on GitHub (Jan 8, 2026): It is not only opencode that was blocked. Clawdbot also doesn't work anymore.
Author
Owner

@Hebububu commented on GitHub (Jan 8, 2026):

for me, it's intermittently repeating works and fails

@Hebububu commented on GitHub (Jan 8, 2026): for me, it's intermittently repeating works and fails
Author
Owner

@rohaanmalik commented on GitHub (Jan 8, 2026):

yes, does not work for either! I even tried logging in and out.

@rohaanmalik commented on GitHub (Jan 8, 2026): yes, does not work for either! I even tried logging in and out.
Author
Owner

@manishprivet commented on GitHub (Jan 8, 2026):

Same here 😢

@manishprivet commented on GitHub (Jan 8, 2026): Same here 😢
Author
Owner

@Christopher-R-Perkins commented on GitHub (Jan 8, 2026):

I revoked the authorization tokens on claude's website then readded with /connect and no longer get the error message. I did notice I had 3 access tokens rather than 2, so may be related.

@Christopher-R-Perkins commented on GitHub (Jan 8, 2026): I revoked the authorization tokens on claude's website then readded with /connect and no longer get the error message. I did notice I had 3 access tokens rather than 2, so may be related.
Author
Owner

@GukDev commented on GitHub (Jan 8, 2026):

CC taking out the competition

@GukDev commented on GitHub (Jan 8, 2026): CC taking out the competition
Author
Owner

@code-xhyun commented on GitHub (Jan 8, 2026):

same

@code-xhyun commented on GitHub (Jan 8, 2026): same
Author
Owner

@iloveicedgreentea commented on GitHub (Jan 8, 2026):

I revoked the authorization tokens on claude's website then readded with /connect and no longer get the error message. I did notice I had 3 access tokens rather than 2, so may be related.

Didnt work for me. I revoked every token, opencode auth logout, then login, same issue. I tried updating to 1.1.8 as well. maybe they updated oauth scopes

@iloveicedgreentea commented on GitHub (Jan 8, 2026): > I revoked the authorization tokens on claude's website then readded with /connect and no longer get the error message. I did notice I had 3 access tokens rather than 2, so may be related. Didnt work for me. I revoked every token, opencode auth logout, then login, same issue. I tried updating to 1.1.8 as well. maybe they updated oauth scopes
Author
Owner

@solssak commented on GitHub (Jan 8, 2026):

same

@solssak commented on GitHub (Jan 8, 2026): same
Author
Owner

@justcarlson commented on GitHub (Jan 8, 2026):

same

@justcarlson commented on GitHub (Jan 8, 2026): same
Author
Owner

@kilhyeonjun commented on GitHub (Jan 8, 2026):

same

@kilhyeonjun commented on GitHub (Jan 8, 2026): same
Author
Owner

@KFC-original commented on GitHub (Jan 8, 2026):

same

@KFC-original commented on GitHub (Jan 8, 2026): same
Author
Owner

@Does-splab commented on GitHub (Jan 8, 2026):

same

@Does-splab commented on GitHub (Jan 8, 2026): same
Author
Owner

@381181295 commented on GitHub (Jan 8, 2026):

same

@381181295 commented on GitHub (Jan 8, 2026): same
Author
Owner

@shjeong92 commented on GitHub (Jan 8, 2026):

same

@shjeong92 commented on GitHub (Jan 8, 2026): same
Author
Owner

@solssak commented on GitHub (Jan 8, 2026):

I think I'm going to have a panic attack

@solssak commented on GitHub (Jan 8, 2026): I think I'm going to have a panic attack
Author
Owner

@grayashh commented on GitHub (Jan 8, 2026):

Sam Hammington

@grayashh commented on GitHub (Jan 8, 2026): Sam Hammington
Author
Owner

@kandotrun commented on GitHub (Jan 8, 2026):

Indeed, when I restarted Claude Code just now, a token related to user:sessions:claude_code was generated.
Before launching the latest Claude Code, there were only user:inference and user:profile.

Image
@kandotrun commented on GitHub (Jan 8, 2026): Indeed, when I restarted Claude Code just now, a token related to `user:sessions:claude_code` was generated. Before launching the latest Claude Code, there were only `user:inference` and `user:profile`. <img width="991" height="331" alt="Image" src="https://github.com/user-attachments/assets/df77ca8f-1143-4688-8d21-42979d708b2c" />
Author
Owner

@RovshanMuradov commented on GitHub (Jan 8, 2026):

same

@RovshanMuradov commented on GitHub (Jan 8, 2026): same
Author
Owner

@justcarlson commented on GitHub (Jan 8, 2026):

did Anthropic just ban OpenCode Oauth?

@justcarlson commented on GitHub (Jan 8, 2026): did Anthropic just ban OpenCode Oauth?
Author
Owner

@isomoes commented on GitHub (Jan 8, 2026):

same

@isomoes commented on GitHub (Jan 8, 2026): same
Author
Owner

@jander99 commented on GitHub (Jan 8, 2026):

My assumption here is that opencode needs to request the additional scope. Anthropic probably shadowbanned non-claude-code access because their API now requires the additional scope.

@jander99 commented on GitHub (Jan 8, 2026): My assumption here is that opencode needs to request the additional scope. Anthropic probably shadowbanned non-claude-code access because their API now requires the additional scope.
Author
Owner

@ariane-emory commented on GitHub (Jan 8, 2026):

@piotryordanov You said this has 'nothing to do with Anthropic'... but who does the fact that using the CC plan in non-CC tools is a TOS violation have to do with, if not Anthropic? It was Anthropic who wrote that TOS and it was Anthropic who chose to try to enforce it, no one else did that.

@ariane-emory commented on GitHub (Jan 8, 2026): @piotryordanov You said this has 'nothing to do with Anthropic'... but who does the fact that using the CC plan in non-CC tools is a TOS violation have to do with, if not Anthropic? It was Anthropic who wrote that TOS and it was Anthropic who chose to try to enforce it, no one else did that.
Author
Owner

@friksa commented on GitHub (Jan 8, 2026):

logout and log back in with Anthropic does not help. Same issue

@friksa commented on GitHub (Jan 8, 2026): logout and log back in with Anthropic does not help. Same issue
Author
Owner

@popododo0720 commented on GitHub (Jan 8, 2026):

It seems like the new user:sessions:claude_code scope was added to isolate Claude Code sessions from other clients. A dedicated scope was needed to manage CLI sessions separately.

@popododo0720 commented on GitHub (Jan 8, 2026): It seems like the new user:sessions:claude_code scope was added to isolate Claude Code sessions from other clients. A dedicated scope was needed to manage CLI sessions separately.
Author
Owner

@jonleopard commented on GitHub (Jan 8, 2026):

Well this might be a huge bummer....

@jonleopard commented on GitHub (Jan 8, 2026): Well this might be a huge bummer....
Author
Owner

@boxpositron commented on GitHub (Jan 8, 2026):

Kudos to the team working on the OAuth patch. I understand you did not plan for this but we need you. The world needs you.

@boxpositron commented on GitHub (Jan 8, 2026): Kudos to the team working on the OAuth patch. I understand you did not plan for this but we need you. The world needs you.
Author
Owner

@ForeverAnApple commented on GitHub (Jan 8, 2026):

I attempted to replace my opencode auth and refresh tokens with the newly generated claude-code tokens, but it didn't work. I assume there's some kinda way to inject the new scope into opencode itself and mock the request as if coming from claude-code.

@ForeverAnApple commented on GitHub (Jan 8, 2026): I attempted to replace my opencode auth and refresh tokens with the newly generated claude-code tokens, but it didn't work. I assume there's some kinda way to inject the new scope into opencode itself and mock the request as if coming from claude-code.
Author
Owner

@josephboyd9 commented on GitHub (Jan 8, 2026):

Using the claude sonnet model via Github Copilot key still works, at least. I really hope this is only going to be temporary though.

@josephboyd9 commented on GitHub (Jan 8, 2026): Using the claude sonnet model via Github Copilot key still works, at least. I really hope this is only going to be temporary though.
Author
Owner

@friksa commented on GitHub (Jan 8, 2026):

Just canceled my Anthropic Max plan and cited this as the reason. Have to send a message or they will all follow suite, OpenAI, Google, etc.

@friksa commented on GitHub (Jan 8, 2026): Just canceled my Anthropic Max plan and cited this as the reason. Have to send a message or they will all follow suite, OpenAI, Google, etc.
Author
Owner

@hffmnnj commented on GitHub (Jan 8, 2026):

Might've just gave Opencode free advertising for Opencode Black accidentally... lol

@hffmnnj commented on GitHub (Jan 8, 2026): Might've just gave Opencode free advertising for Opencode Black accidentally... lol
Author
Owner

@LukasMurdock commented on GitHub (Jan 8, 2026):

Commenting for search visibility (kept trying to search the GitHub issues and this wasn’t showing up), the error is

This credential is only authorized for use with Claude Code and cannot be used for other API requests.

@LukasMurdock commented on GitHub (Jan 8, 2026): Commenting for search visibility (kept trying to search the GitHub issues and this wasn’t showing up), the error is > This credential is only authorized for use with Claude Code and cannot be used for other API requests.
Author
Owner

@chriswritescode-dev commented on GitHub (Jan 8, 2026):

This is bull shit

@chriswritescode-dev commented on GitHub (Jan 8, 2026): This is bull shit
Author
Owner

@Tetrahedrite commented on GitHub (Jan 8, 2026):

Using the claude sonnet model via Github Copilot key still works, at least. I really hope this is only going to be temporary though.

I have GitHub Copilot Pro+ subscription, so I gave it a shot. But it seems context window is hardly limited in 120K or 128K level.

@Tetrahedrite commented on GitHub (Jan 8, 2026): > Using the claude sonnet model via Github Copilot key still works, at least. I really hope this is only going to be temporary though. I have GitHub Copilot Pro+ subscription, so I gave it a shot. But it seems context window is hardly limited in 120K or 128K level.
Author
Owner

@arthur404dev commented on GitHub (Jan 8, 2026):

Seems like they literally shot themselves in the foot

https://github.com/charmbracelet/crush/pull/1783

@arthur404dev commented on GitHub (Jan 8, 2026): Seems like they literally shot themselves in the foot https://github.com/charmbracelet/crush/pull/1783
Author
Owner

@pleaz commented on GitHub (Jan 8, 2026):

I tried to add scope manually to have this additional - user:sessions:claude_code for Opencode as well, but still same error.

@pleaz commented on GitHub (Jan 8, 2026): I tried to add scope manually to have this additional - user:sessions:claude_code for Opencode as well, but still same error.
Author
Owner

@hellosmith commented on GitHub (Jan 8, 2026):

same

@hellosmith commented on GitHub (Jan 8, 2026): same
Author
Owner

@stuartbuckell commented on GitHub (Jan 8, 2026):

It was fun while it lasted guys !

@stuartbuckell commented on GitHub (Jan 8, 2026): It was fun while it lasted guys !
Author
Owner

@seogi1004 commented on GitHub (Jan 8, 2026):

same...

@seogi1004 commented on GitHub (Jan 8, 2026): same...
Author
Owner

@ramarivera commented on GitHub (Jan 8, 2026):

Might've just gave Opencode free advertising for Opencode Black accidentally... lol

Im so mad I missed this one lol

@ramarivera commented on GitHub (Jan 8, 2026): > Might've just gave Opencode free advertising for Opencode Black accidentally... lol Im so mad I missed this one lol
Author
Owner

@Klassikcat commented on GitHub (Jan 8, 2026):

same here. seems like i have to cancel my subscription and use other llm providers instead...

@Klassikcat commented on GitHub (Jan 8, 2026): same here. seems like i have to cancel my subscription and use other llm providers instead...
Author
Owner

@iloveicedgreentea commented on GitHub (Jan 8, 2026):

Seems like they literally shot themselves in the foot

charmbracelet/crush#1783

If this is true, I am cancelling all my anthropic subscriptions and making sure we don't use it anywhere, work or personal

@iloveicedgreentea commented on GitHub (Jan 8, 2026): > Seems like they literally shot themselves in the foot > > [charmbracelet/crush#1783](https://github.com/charmbracelet/crush/pull/1783) If this is true, I am cancelling all my anthropic subscriptions and making sure we don't use it anywhere, work or personal
Author
Owner

@JakeB-5 commented on GitHub (Jan 8, 2026):

Seems like they literally shot themselves in the foot

charmbracelet/crush#1783

I canceled subscription Claude Max

@JakeB-5 commented on GitHub (Jan 8, 2026): > Seems like they literally shot themselves in the foot > > [charmbracelet/crush#1783](https://github.com/charmbracelet/crush/pull/1783) I canceled subscription Claude Max
Author
Owner

@diogosalazar commented on GitHub (Jan 8, 2026):

Had just signed up for Claude Max (2 hours ago) --- guess I am going to ask them for a full refund

@diogosalazar commented on GitHub (Jan 8, 2026): Had just signed up for Claude Max (2 hours ago) --- guess I am going to ask them for a full refund
Author
Owner

@manishprivet commented on GitHub (Jan 8, 2026):

Maybe this can help?
https://github.com/anomalyco/opencode-anthropic-auth/pull/9

@manishprivet commented on GitHub (Jan 8, 2026): Maybe this can help? https://github.com/anomalyco/opencode-anthropic-auth/pull/9
Author
Owner

@manishprivet commented on GitHub (Jan 8, 2026):

I tried to add scope manually to have this additional - user:sessions:claude_code for Opencode as well, but still same error.

Ah my Pr will not work 😞

@manishprivet commented on GitHub (Jan 8, 2026): > I tried to add scope manually to have this additional - user:sessions:claude_code for Opencode as well, but still same error. Ah my Pr will not work 😞
Author
Owner

@arimxyer commented on GitHub (Jan 8, 2026):

This is f**ked.

@arimxyer commented on GitHub (Jan 8, 2026): This is f**ked.
Author
Owner

@justcarlson commented on GitHub (Jan 8, 2026):

Opencode Black Beta can't rollout fast enough

@justcarlson commented on GitHub (Jan 8, 2026): Opencode Black Beta can't rollout fast enough
Author
Owner

@Mithrillion commented on GitHub (Jan 8, 2026):

This is odd... It seems Opencode is not working but the same key still works in Kilo Code at the moment, so not sure if it is a client side or provider side problem...

@Mithrillion commented on GitHub (Jan 8, 2026): This is odd... It seems Opencode is not working but the same key still works in Kilo Code at the moment, so not sure if it is a client side or provider side problem...
Author
Owner

@xiliumz commented on GitHub (Jan 8, 2026):

It was fun while it lasted guys !

yeah, the time is over hahaha

@xiliumz commented on GitHub (Jan 8, 2026): > It was fun while it lasted guys ! yeah, the time is over hahaha
Author
Owner

@spik3r commented on GitHub (Jan 8, 2026):

Same issue with Claude Pro, was working fine until recently.

@spik3r commented on GitHub (Jan 8, 2026): Same issue with Claude Pro, was working fine until recently.
Author
Owner

@Tetrahedrite commented on GitHub (Jan 8, 2026):

This is odd... It seems Opencode is not working but the same key still works in Kilo Code at the moment, so not sure if it is a client side or provider side problem...

What provider are you using with Kilo Code? Based on my memory, there's two option "Claude Code" and "Anthropic".
Claude Code provider doesn't use OAuth method but directly calls 'claude' binary.

@Tetrahedrite commented on GitHub (Jan 8, 2026): > This is odd... It seems Opencode is not working but the same key still works in Kilo Code at the moment, so not sure if it is a client side or provider side problem... What provider are you using with Kilo Code? Based on my memory, there's two option "Claude Code" and "Anthropic". Claude Code provider doesn't use OAuth method but directly calls 'claude' binary.
Author
Owner

@FreeSamples00 commented on GitHub (Jan 8, 2026):

Same issue here. Re-authing with opencode and claude code did not help.

@FreeSamples00 commented on GitHub (Jan 8, 2026): Same issue here. Re-authing with opencode and claude code did not help.
Author
Owner

@oomathias commented on GitHub (Jan 8, 2026):

The system prompt seems to be the key. -> It's the tools.

With the official system prompt the API answer, with another one it gives the same error.

http POST https://api.anthropic.com/v1/messages \
  anthropic-version:2023-06-01 \
  content-type:application/json \
  anthropic-beta:"oauth-2025-04-20" \
  model=claude-sonnet-4-5 \
  max_tokens:=64000 \
  messages:='[{"role":"user","content":[{"type":"text","text":"Hi!","cache_control":{"type":"ephemeral"}}]}]' \
  system:='[{"type":"text","text":"You are Claude Code, Anthropic'\''s official CLI for Claude."}]' \
  authorization:"Bearer sk-***"
@oomathias commented on GitHub (Jan 8, 2026): ~~The system prompt seems to be the key.~~ -> It's the tools. ~~With the official system prompt the API answer, with another one it gives the same error.~~ ```bash http POST https://api.anthropic.com/v1/messages \ anthropic-version:2023-06-01 \ content-type:application/json \ anthropic-beta:"oauth-2025-04-20" \ model=claude-sonnet-4-5 \ max_tokens:=64000 \ messages:='[{"role":"user","content":[{"type":"text","text":"Hi!","cache_control":{"type":"ephemeral"}}]}]' \ system:='[{"type":"text","text":"You are Claude Code, Anthropic'\''s official CLI for Claude."}]' \ authorization:"Bearer sk-***" ```
Author
Owner

@watzon commented on GitHub (Jan 8, 2026):

@oomathias I figured. This probably got patched https://github.com/anomalyco/opencode/blob/dev/packages/opencode/src/session/prompt/anthropic_spoof.txt

@watzon commented on GitHub (Jan 8, 2026): @oomathias I figured. This probably got patched https://github.com/anomalyco/opencode/blob/dev/packages/opencode/src/session/prompt/anthropic_spoof.txt
Author
Owner

@fm1randa commented on GitHub (Jan 8, 2026):

The system prompt already includes "You are Claude Code, Anthropic's official CLI for Claude." in anthropic_spoof.txt. This is used as the header for all Anthropic providers at system.ts:22.

@fm1randa commented on GitHub (Jan 8, 2026): The system prompt already includes "You are Claude Code, Anthropic's official CLI for Claude." in [anthropic_spoof.txt](https://github.com/anomalyco/opencode/blob/dev/packages/opencode/src/session/prompt/anthropic_spoof.txt). This is used as the header for all Anthropic providers at [system.ts](https://github.com/anomalyco/opencode/blob/dev/packages/opencode/src/session/system.ts):22.
Author
Owner

@a-dmx commented on GitHub (Jan 8, 2026):

I wonder what's their business value with that move.

@a-dmx commented on GitHub (Jan 8, 2026): I wonder what's their business value with that move.
Author
Owner

@sergiotapia commented on GitHub (Jan 8, 2026):

Time to shift to GLM 4.7

I don't mind paying for a proper quantized version of the model. Is the one offered for free a limited or quantized in some way?

What provider should I use for proper GLM 4.7 just z.ai?

Image
@sergiotapia commented on GitHub (Jan 8, 2026): Time to shift to GLM 4.7 I don't mind paying for a proper quantized version of the model. Is the one offered for free a limited or quantized in some way? What provider should I use for proper GLM 4.7 just z.ai? <img width="670" height="264" alt="Image" src="https://github.com/user-attachments/assets/e21c1901-a76d-4c74-a0e4-1f18efc19b03" />
Author
Owner

@RawToast commented on GitHub (Jan 8, 2026):

What provider should I use for proper GLM 4.7 just z.ai?

Either z.ai, cerebras (fast), or wait and see what Opencode Black brings

@RawToast commented on GitHub (Jan 8, 2026): > What provider should I use for proper GLM 4.7 just z.ai? Either z.ai, cerebras (fast), or wait and see what Opencode Black brings
Author
Owner

@sergiotapia commented on GitHub (Jan 8, 2026):

This is the first time I hear about OpenCode Black what is that?

@sergiotapia commented on GitHub (Jan 8, 2026): This is the first time I hear about OpenCode Black what is that?
Author
Owner

@azatakmyradov commented on GitHub (Jan 8, 2026):

I got the idea from here but it seems like they banned opencode tools.

This works for me. If I change read_tool to read then I get the error

export ANTHROPIC_API_KEY=""

curl 'https://api.anthropic.com/v1/messages' \
-X POST \
-H 'host: api.anthropic.com' \
-H 'connection: keep-alive' \
-H 'User-Agent: Anthropic/JS 0.71.2' \
-H 'X-Stainless-Retry-Count: 0' \
-H 'X-Stainless-Timeout: 600' \
-H 'X-Stainless-Lang: js' \
-H 'X-Stainless-Package-Version: 0.71.2' \
-H 'X-Stainless-OS: MacOS' \
-H 'X-Stainless-Arch: arm64' \
-H 'X-Stainless-Runtime: node' \
-H 'X-Stainless-Runtime-Version: v22.14.0' \
-H 'anthropic-version: 2023-06-01' \
-H 'authorization: Bearer '"$ANTHROPIC_API_KEY" \
-H 'accept: application/json' \
-H 'anthropic-dangerous-direct-browser-access: true' \
-H 'anthropic-beta: oauth-2025-04-20,fine-grained-tool-streaming-2025-05-14,interleaved-thinking-2025-05-14' \
-H 'content-type: application/json' \
-H 'X-Stainless-Helper-Method: stream' \
-H 'accept-language: *' \
-H 'sec-fetch-mode: cors' \
--data-raw '{
  "model": "claude-sonnet-4-5",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "hello",
          "cache_control": { "type": "ephemeral" }
        }
      ]
    }
  ],
  "max_tokens": 32000,
  "stream": true,
  "system": [
    {
      "type": "text",
      "text": "You are Claude Code, Anthropic'\''s official CLI for Claude.",
      "cache_control": { "type": "ephemeral" }
    }
  ],
  "tools": [
    { "name": "read_tool", "description": "Read text or files.", "input_schema": { "type": "object", "properties": { "text": { "type": "string" } }, "required": ["text"] } },
    { "name": "write_tool", "description": "Write content to a file.", "input_schema": { "type": "object", "properties": { "path": { "type": "string" }, "content": { "type": "string" } }, "required": ["path", "content"] } },
    { "name": "edit_tool", "description": "Edit an existing file.", "input_schema": { "type": "object", "properties": { "path": { "type": "string" }, "changes": { "type": "string" } }, "required": ["path", "changes"] } },
    { "name": "bash_tool", "description": "Execute a bash command.", "input_schema": { "type": "object", "properties": { "command": { "type": "string" } }, "required": ["command"] } },
    { "name": "grep_tool", "description": "Search text using a pattern.", "input_schema": { "type": "object", "properties": { "pattern": { "type": "string" }, "path": { "type": "string" } }, "required": ["pattern", "path"] } },
    { "name": "glob_tool", "description": "Match file paths using glob patterns.", "input_schema": { "type": "object", "properties": { "pattern": { "type": "string" } }, "required": ["pattern"] } },
    { "name": "list_tool", "description": "List directory contents.", "input_schema": { "type": "object", "properties": { "path": { "type": "string" } }, "required": ["path"] } },
    { "name": "lsp_tool", "description": "Language Server Protocol query.", "input_schema": { "type": "object", "properties": { "language": { "type": "string" }, "query": { "type": "string" } }, "required": ["language", "query"] } },
    { "name": "patch_tool", "description": "Apply a unified diff patch.", "input_schema": { "type": "object", "properties": { "diff": { "type": "string" } }, "required": ["diff"] } },
    { "name": "skill_tool", "description": "Invoke a named skill.", "input_schema": { "type": "object", "properties": { "name": { "type": "string" }, "args": { "type": "object" } }, "required": ["name"] } },
    { "name": "todowrite_tool", "description": "Write items to a todo list.", "input_schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "string" } } }, "required": ["items"] } },
    { "name": "todoread_tool", "description": "Read todo items.", "input_schema": { "type": "object", "properties": {} } },
    { "name": "webfetch", "description": "Fetch content from a URL.", "input_schema": { "type": "object", "properties": { "url": { "type": "string" } }, "required": ["url"] } },
    { "name": "question", "description": "Ask the user a clarifying question.", "input_schema": { "type": "object", "properties": { "prompt": { "type": "string" } }, "required": ["prompt"] } }
  ]
}'
@azatakmyradov commented on GitHub (Jan 8, 2026): I got the idea from [here](https://github.com/badlogic/pi-mono/issues/581#issuecomment-3726911311) but it seems like they banned opencode tools. This works for me. If I change read_tool to read then I get the error ``` export ANTHROPIC_API_KEY="" curl 'https://api.anthropic.com/v1/messages' \ -X POST \ -H 'host: api.anthropic.com' \ -H 'connection: keep-alive' \ -H 'User-Agent: Anthropic/JS 0.71.2' \ -H 'X-Stainless-Retry-Count: 0' \ -H 'X-Stainless-Timeout: 600' \ -H 'X-Stainless-Lang: js' \ -H 'X-Stainless-Package-Version: 0.71.2' \ -H 'X-Stainless-OS: MacOS' \ -H 'X-Stainless-Arch: arm64' \ -H 'X-Stainless-Runtime: node' \ -H 'X-Stainless-Runtime-Version: v22.14.0' \ -H 'anthropic-version: 2023-06-01' \ -H 'authorization: Bearer '"$ANTHROPIC_API_KEY" \ -H 'accept: application/json' \ -H 'anthropic-dangerous-direct-browser-access: true' \ -H 'anthropic-beta: oauth-2025-04-20,fine-grained-tool-streaming-2025-05-14,interleaved-thinking-2025-05-14' \ -H 'content-type: application/json' \ -H 'X-Stainless-Helper-Method: stream' \ -H 'accept-language: *' \ -H 'sec-fetch-mode: cors' \ --data-raw '{ "model": "claude-sonnet-4-5", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "hello", "cache_control": { "type": "ephemeral" } } ] } ], "max_tokens": 32000, "stream": true, "system": [ { "type": "text", "text": "You are Claude Code, Anthropic'\''s official CLI for Claude.", "cache_control": { "type": "ephemeral" } } ], "tools": [ { "name": "read_tool", "description": "Read text or files.", "input_schema": { "type": "object", "properties": { "text": { "type": "string" } }, "required": ["text"] } }, { "name": "write_tool", "description": "Write content to a file.", "input_schema": { "type": "object", "properties": { "path": { "type": "string" }, "content": { "type": "string" } }, "required": ["path", "content"] } }, { "name": "edit_tool", "description": "Edit an existing file.", "input_schema": { "type": "object", "properties": { "path": { "type": "string" }, "changes": { "type": "string" } }, "required": ["path", "changes"] } }, { "name": "bash_tool", "description": "Execute a bash command.", "input_schema": { "type": "object", "properties": { "command": { "type": "string" } }, "required": ["command"] } }, { "name": "grep_tool", "description": "Search text using a pattern.", "input_schema": { "type": "object", "properties": { "pattern": { "type": "string" }, "path": { "type": "string" } }, "required": ["pattern", "path"] } }, { "name": "glob_tool", "description": "Match file paths using glob patterns.", "input_schema": { "type": "object", "properties": { "pattern": { "type": "string" } }, "required": ["pattern"] } }, { "name": "list_tool", "description": "List directory contents.", "input_schema": { "type": "object", "properties": { "path": { "type": "string" } }, "required": ["path"] } }, { "name": "lsp_tool", "description": "Language Server Protocol query.", "input_schema": { "type": "object", "properties": { "language": { "type": "string" }, "query": { "type": "string" } }, "required": ["language", "query"] } }, { "name": "patch_tool", "description": "Apply a unified diff patch.", "input_schema": { "type": "object", "properties": { "diff": { "type": "string" } }, "required": ["diff"] } }, { "name": "skill_tool", "description": "Invoke a named skill.", "input_schema": { "type": "object", "properties": { "name": { "type": "string" }, "args": { "type": "object" } }, "required": ["name"] } }, { "name": "todowrite_tool", "description": "Write items to a todo list.", "input_schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "string" } } }, "required": ["items"] } }, { "name": "todoread_tool", "description": "Read todo items.", "input_schema": { "type": "object", "properties": {} } }, { "name": "webfetch", "description": "Fetch content from a URL.", "input_schema": { "type": "object", "properties": { "url": { "type": "string" } }, "required": ["url"] } }, { "name": "question", "description": "Ask the user a clarifying question.", "input_schema": { "type": "object", "properties": { "prompt": { "type": "string" } }, "required": ["prompt"] } } ] }' ```
Author
Owner

@oomathias commented on GitHub (Jan 8, 2026):

I got the idea from here but it seems like they banned opencode tools.

This works for me. If I change read_tool to read then I get the error

Yes I can confirm commenting this line is enough to get answers. The system prompt is fine as it is.

https://github.com/anomalyco/opencode/blob/bded900ef7de536faaa791aeffbcbbf727a98432/packages/opencode/src/session/llm.ts#L156

@oomathias commented on GitHub (Jan 8, 2026): > I got the idea from [here](https://github.com/badlogic/pi-mono/issues/581#issuecomment-3726911311) but it seems like they banned opencode tools. > > This works for me. If I change read_tool to read then I get the error Yes I can confirm commenting this line is enough to get answers. The system prompt is fine as it is. https://github.com/anomalyco/opencode/blob/bded900ef7de536faaa791aeffbcbbf727a98432/packages/opencode/src/session/llm.ts#L156
Author
Owner

@airtonix commented on GitHub (Jan 8, 2026):

I got the idea from here but it seems like they banned opencode tools.

This works for me. If I change read_tool to read then I get the error

You can actually just change read_tool to Read and it still works... the moment you change it to read then it errors.

also:

  • read_tool alone works
  • read tool errors
  • read_tool with read errors
  • read_tool with read and Read errors
@airtonix commented on GitHub (Jan 8, 2026): > I got the idea from [here](https://github.com/badlogic/pi-mono/issues/581#issuecomment-3726911311) but it seems like they banned opencode tools. > > This works for me. If I change read_tool to read then I get the error > You can actually just change `read_tool` to `Read` and it still works... the moment you change it to `read` then it errors. also: - `read_tool` alone works - `read` tool errors - `read_tool` with `read` errors - `read_tool` with `read` and `Read` errors
Author
Owner

@MilesNorton commented on GitHub (Jan 8, 2026):

I'm getting this issue with a company plan

@MilesNorton commented on GitHub (Jan 8, 2026): I'm getting this issue with a company plan
Author
Owner

@airtonix commented on GitHub (Jan 8, 2026):

I'm getting this issue with a company plan

it won't matter what kind of plan you use.

@airtonix commented on GitHub (Jan 8, 2026): > I'm getting this issue with a company plan it won't matter what kind of plan you use.
Author
Owner

@gregkonush commented on GitHub (Jan 8, 2026):

post memes

@gregkonush commented on GitHub (Jan 8, 2026): post memes
Author
Owner

@sleepybyte23 commented on GitHub (Jan 8, 2026):

Yo bro WTF is happening need claude code to work, best alternatives? Thanks.

@sleepybyte23 commented on GitHub (Jan 8, 2026): Yo bro WTF is happening need claude code to work, best alternatives? Thanks.
Author
Owner

@kamafozilov commented on GitHub (Jan 8, 2026):

Image tried logging in again but it didn't help
@kamafozilov commented on GitHub (Jan 8, 2026): <img width="2126" height="318" alt="Image" src="https://github.com/user-attachments/assets/dbe3b910-f23c-466f-bec7-c7859d462ad1" /> tried logging in again but it didn't help
Author
Owner

@gregkonush commented on GitHub (Jan 8, 2026):

Image
@gregkonush commented on GitHub (Jan 8, 2026): <img width="735" height="49" alt="Image" src="https://github.com/user-attachments/assets/07257e64-3331-4730-8703-f58c6e98b11e" />
Author
Owner

@sleepybyte23 commented on GitHub (Jan 8, 2026):

I switched to Codex for now, if this gets drained ill go to Claude API :(

@sleepybyte23 commented on GitHub (Jan 8, 2026): I switched to Codex for now, if this gets drained ill go to Claude API :(
Author
Owner

@jksjaz commented on GitHub (Jan 8, 2026):

This would solve it? https://github.com/anomalyco/opencode-anthropic-auth/pull/10

@jksjaz commented on GitHub (Jan 8, 2026): This would solve it? https://github.com/anomalyco/opencode-anthropic-auth/pull/10
Author
Owner

@KimDaehyeon6873 commented on GitHub (Jan 8, 2026):

please check this

@KimDaehyeon6873 commented on GitHub (Jan 8, 2026): please check this
Author
Owner

@oomathias commented on GitHub (Jan 8, 2026):

# 1. Rename all tools
LC_ALL=C sed -i '' \
  -e 's/Tool2\.define("bash"/Tool2.define("bas_"/g' \
  -e 's/Tool2\.define("read"/Tool2.define("rea_"/g' \
  -e 's/Tool2\.define("edit"/Tool2.define("edi_"/g' \
  -e 's/Tool2\.define("glob"/Tool2.define("glo_"/g' \
  -e 's/Tool2\.define("grep"/Tool2.define("gre_"/g' \
  -e 's/Tool2\.define("task"/Tool2.define("tas_"/g' \
  -e 's/Tool2\.define("write"/Tool2.define("writ_"/g' \
  -e 's/Tool2\.define("batch"/Tool2.define("batc_"/g' \
  -e 's/Tool2\.define("patch"/Tool2.define("patc_"/g' \
  -e 's/Tool2\.define("question"/Tool2.define("questio_"/g' \
  -e 's/Tool2\.define("todowrite"/Tool2.define("todowrit_"/g' \
  -e 's/Tool2\.define("todoread"/Tool2.define("todorea_"/g' \
  -e 's/Tool2\.define("webfetch"/Tool2.define("webfetc_"/g' \
  -e 's/Tool2\.define("websearch"/Tool2.define("websearc_"/g' \
  -e 's/Tool2\.define("codesearch"/Tool2.define("codesearc_"/g' \
  -e 's/Tool2\.define("skill"/Tool2.define("skil_"/g' \
  -e 's/Tool2\.define("invalid"/Tool2.define("invali_"/g' \
  -e 's/Tool2\.define("lsp"/Tool2.define("ls_"/g' \
  -e 's/Tool2\.define("list"/Tool2.define("lis_"/g' \
  /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode
# 2. Re-sign the binary
codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode

This renames all tools with readrea_. Use at your own risk.

@oomathias commented on GitHub (Jan 8, 2026): ``` # 1. Rename all tools LC_ALL=C sed -i '' \ -e 's/Tool2\.define("bash"/Tool2.define("bas_"/g' \ -e 's/Tool2\.define("read"/Tool2.define("rea_"/g' \ -e 's/Tool2\.define("edit"/Tool2.define("edi_"/g' \ -e 's/Tool2\.define("glob"/Tool2.define("glo_"/g' \ -e 's/Tool2\.define("grep"/Tool2.define("gre_"/g' \ -e 's/Tool2\.define("task"/Tool2.define("tas_"/g' \ -e 's/Tool2\.define("write"/Tool2.define("writ_"/g' \ -e 's/Tool2\.define("batch"/Tool2.define("batc_"/g' \ -e 's/Tool2\.define("patch"/Tool2.define("patc_"/g' \ -e 's/Tool2\.define("question"/Tool2.define("questio_"/g' \ -e 's/Tool2\.define("todowrite"/Tool2.define("todowrit_"/g' \ -e 's/Tool2\.define("todoread"/Tool2.define("todorea_"/g' \ -e 's/Tool2\.define("webfetch"/Tool2.define("webfetc_"/g' \ -e 's/Tool2\.define("websearch"/Tool2.define("websearc_"/g' \ -e 's/Tool2\.define("codesearch"/Tool2.define("codesearc_"/g' \ -e 's/Tool2\.define("skill"/Tool2.define("skil_"/g' \ -e 's/Tool2\.define("invalid"/Tool2.define("invali_"/g' \ -e 's/Tool2\.define("lsp"/Tool2.define("ls_"/g' \ -e 's/Tool2\.define("list"/Tool2.define("lis_"/g' \ /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode # 2. Re-sign the binary codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode ``` This renames all tools with `read` → `rea_`. Use at your own risk.
Author
Owner

@casparvitch commented on GitHub (Jan 8, 2026):

What provider should I use for proper GLM 4.7 just z.ai?

Either z.ai, cerebras (fast), or wait and see what Opencode Black brings

I use synthetic.new, they have a subscription model. Unsure how they compare to the above. Privacy focused.

@casparvitch commented on GitHub (Jan 8, 2026): > > What provider should I use for proper GLM 4.7 just z.ai? > > Either z.ai, cerebras (fast), or wait and see what Opencode Black brings I use synthetic.new, they have a subscription model. Unsure how they compare to the above. Privacy focused.
Author
Owner

@souravrs999 commented on GitHub (Jan 8, 2026):

So what exactly caused Anthropic to do this ?, They worried OC gonna grab a piece of their pie?. As a consumer i would expect to use a TUI i prefer on a product that i purchased. Sorry if i'm being ignorant & not understanding something here, please feel free to educate me.

@souravrs999 commented on GitHub (Jan 8, 2026): So what exactly caused Anthropic to do this ?, They worried OC gonna grab a piece of their pie?. As a consumer i would expect to use a TUI i prefer on a product that i purchased. Sorry if i'm being ignorant & not understanding something here, please feel free to educate me.
Author
Owner

@harshav167 commented on GitHub (Jan 8, 2026):

Claude Code Pro/Max OAuth tokens now fail in OpenCode with:

“This credential is only authorized for use with Claude Code and cannot be used for other API requests.”

Impact
Claude Code Pro/Max subscribers can’t use OpenCode with OAuth tokens.
Evidence (Proxyman)
Claude Code (works)

  • POST /v1/messages?beta=true
  • user-agent: claude-cli/2.1.2 (external, cli)
  • authorization: Bearer sk-ant-oat…
  • anthropic-beta: oauth-2025-04-20, interleaved-thinking-2025-05-14
    • sometimes includes claude-code-20250219

OpenCode (fails)

  • POST /v1/messages
  • user-agent: ai-sdk/anthropic/2.0.56 … runtime/bun/1.3.5
  • authorization: Bearer sk-ant-oat…
  • anthropic-beta: oauth-2025-04-20, claude-code-20250219, interleaved-thinking-2025-05-14, fine-grained-tool-streaming-2025-05-14
  • Response: 400 invalid_request_error with the Claude Code–only message
    Likely cause

Anthropic now enforces that Claude Code OAuth tokens only work for Claude Code–shaped requests.
OpenCode differs in endpoint/query + client identity (user-agent + beta flags), so the token is rejected.

@harshav167 commented on GitHub (Jan 8, 2026): Claude Code Pro/Max OAuth tokens now fail in OpenCode with: > “This credential is only authorized for use with Claude Code and cannot be used for other API requests.” **Impact** Claude Code Pro/Max subscribers can’t use OpenCode with OAuth tokens. Evidence (Proxyman) **Claude Code (works)** - POST `/v1/messages?beta=true` - `user-agent: claude-cli/2.1.2 (external, cli)` - `authorization: Bearer sk-ant-oat…` - `anthropic-beta: oauth-2025-04-20, interleaved-thinking-2025-05-14` - sometimes includes `claude-code-20250219` **OpenCode (fails)** - POST `/v1/messages` - `user-agent: ai-sdk/anthropic/2.0.56 … runtime/bun/1.3.5` - `authorization: Bearer sk-ant-oat…` - `anthropic-beta: oauth-2025-04-20, claude-code-20250219, interleaved-thinking-2025-05-14, fine-grained-tool-streaming-2025-05-14` - Response: `400 invalid_request_error` with the Claude Code–only message Likely cause Anthropic now enforces that **Claude Code OAuth tokens only work for Claude Code–shaped requests**. OpenCode differs in endpoint/query + client identity (user-agent + beta flags), so the token is rejected.
Author
Owner

@rdvo commented on GitHub (Jan 9, 2026):

i renamed all th tools to match the tool names claude code uses (pascal case) works for now

@rdvo commented on GitHub (Jan 9, 2026): i renamed all th tools to match the tool names claude code uses (pascal case) works for now
Author
Owner

@enk0de commented on GitHub (Jan 9, 2026):

same here

@enk0de commented on GitHub (Jan 9, 2026): same here
Author
Owner

@KBLCode commented on GitHub (Jan 9, 2026):

# 1. Rename all tools
LC_ALL=C sed -i '' \
  -e 's/Tool2\.define("bash"/Tool2.define("bas_"/g' \
  -e 's/Tool2\.define("read"/Tool2.define("rea_"/g' \
  -e 's/Tool2\.define("edit"/Tool2.define("edi_"/g' \
  -e 's/Tool2\.define("glob"/Tool2.define("glo_"/g' \
  -e 's/Tool2\.define("grep"/Tool2.define("gre_"/g' \
  -e 's/Tool2\.define("task"/Tool2.define("tas_"/g' \
  -e 's/Tool2\.define("write"/Tool2.define("writ_"/g' \
  -e 's/Tool2\.define("batch"/Tool2.define("batc_"/g' \
  -e 's/Tool2\.define("patch"/Tool2.define("patc_"/g' \
  -e 's/Tool2\.define("question"/Tool2.define("questio_"/g' \
  -e 's/Tool2\.define("todowrite"/Tool2.define("todowrit_"/g' \
  -e 's/Tool2\.define("todoread"/Tool2.define("todorea_"/g' \
  -e 's/Tool2\.define("webfetch"/Tool2.define("webfetc_"/g' \
  -e 's/Tool2\.define("websearch"/Tool2.define("websearc_"/g' \
  -e 's/Tool2\.define("codesearch"/Tool2.define("codesearc_"/g' \
  -e 's/Tool2\.define("skill"/Tool2.define("skil_"/g' \
  -e 's/Tool2\.define("invalid"/Tool2.define("invali_"/g' \
  -e 's/Tool2\.define("lsp"/Tool2.define("ls_"/g' \
  -e 's/Tool2\.define("list"/Tool2.define("lis_"/g' \
  /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode
# 2. Re-sign the binary
codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode

This renames all tools with readrea_. Use at your own risk.

this works perfectly.

@KBLCode commented on GitHub (Jan 9, 2026): > ``` > # 1. Rename all tools > LC_ALL=C sed -i '' \ > -e 's/Tool2\.define("bash"/Tool2.define("bas_"/g' \ > -e 's/Tool2\.define("read"/Tool2.define("rea_"/g' \ > -e 's/Tool2\.define("edit"/Tool2.define("edi_"/g' \ > -e 's/Tool2\.define("glob"/Tool2.define("glo_"/g' \ > -e 's/Tool2\.define("grep"/Tool2.define("gre_"/g' \ > -e 's/Tool2\.define("task"/Tool2.define("tas_"/g' \ > -e 's/Tool2\.define("write"/Tool2.define("writ_"/g' \ > -e 's/Tool2\.define("batch"/Tool2.define("batc_"/g' \ > -e 's/Tool2\.define("patch"/Tool2.define("patc_"/g' \ > -e 's/Tool2\.define("question"/Tool2.define("questio_"/g' \ > -e 's/Tool2\.define("todowrite"/Tool2.define("todowrit_"/g' \ > -e 's/Tool2\.define("todoread"/Tool2.define("todorea_"/g' \ > -e 's/Tool2\.define("webfetch"/Tool2.define("webfetc_"/g' \ > -e 's/Tool2\.define("websearch"/Tool2.define("websearc_"/g' \ > -e 's/Tool2\.define("codesearch"/Tool2.define("codesearc_"/g' \ > -e 's/Tool2\.define("skill"/Tool2.define("skil_"/g' \ > -e 's/Tool2\.define("invalid"/Tool2.define("invali_"/g' \ > -e 's/Tool2\.define("lsp"/Tool2.define("ls_"/g' \ > -e 's/Tool2\.define("list"/Tool2.define("lis_"/g' \ > /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode > # 2. Re-sign the binary > codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode > ``` > > This renames all tools with `read` → `rea_`. Use at your own risk. this works perfectly.
Author
Owner

@jksjaz commented on GitHub (Jan 9, 2026):

This would solve it? anomalyco/opencode-anthropic-auth#10

So this PR got merged. I guess a release coming up for this repo too?

@jksjaz commented on GitHub (Jan 9, 2026): > This would solve it? [anomalyco/opencode-anthropic-auth#10](https://github.com/anomalyco/opencode-anthropic-auth/pull/10) So this PR got merged. I guess a release coming up for this repo too?
Author
Owner

@KwokJay commented on GitHub (Jan 9, 2026):

Same

@KwokJay commented on GitHub (Jan 9, 2026): Same
Author
Owner

@Nando-suka commented on GitHub (Jan 9, 2026):

same

@Nando-suka commented on GitHub (Jan 9, 2026): same
Author
Owner

@dbnewman commented on GitHub (Jan 9, 2026):

It's def just a temp fix though, better idea would be to rename all the tools to a random string on every new session so pattern detection is avoided

@dbnewman commented on GitHub (Jan 9, 2026): It's def just a temp fix though, better idea would be to rename all the tools to a random string on every new session so pattern detection is avoided
Author
Owner

@seogi1004 commented on GitHub (Jan 9, 2026):

I cancelled my ClaudeCode subscription and switched to Gemini Ultra

@seogi1004 commented on GitHub (Jan 9, 2026): I cancelled my ClaudeCode subscription and switched to Gemini Ultra
Author
Owner

@harshav167 commented on GitHub (Jan 9, 2026):

https://github.com/anomalyco/opencode-anthropic-auth/pull/11

i just created a pr for a long term fix rather than just renaming tools

@harshav167 commented on GitHub (Jan 9, 2026): https://github.com/anomalyco/opencode-anthropic-auth/pull/11 i just created a pr for a long term fix rather than just renaming tools
Author
Owner

@joecervino commented on GitHub (Jan 9, 2026):

Same issue.

I cancelled my ClaudeCode subscription and switched to Gemini Ultra

I bought Gemini Ultra, can be great but lord have mercy the performance dips vs. Opencode + Claude is undeniable

@joecervino commented on GitHub (Jan 9, 2026): Same issue. > I cancelled my ClaudeCode subscription and switched to Gemini Ultra I bought Gemini Ultra, can be great but lord have mercy the performance dips vs. Opencode + Claude is undeniable
Author
Owner

@navendugoyal19 commented on GitHub (Jan 9, 2026):

I revoked the authorization tokens on claude's website then readded with /connect and no longer get the error message. I did notice I had 3 access tokens rather than 2, so may be related.

doesnt work

@navendugoyal19 commented on GitHub (Jan 9, 2026): > I revoked the authorization tokens on claude's website then readded with /connect and no longer get the error message. I did notice I had 3 access tokens rather than 2, so may be related. doesnt work
Author
Owner

@harshav167 commented on GitHub (Jan 9, 2026):

anomalyco/opencode-anthropic-auth#11

i just created a pr for a long term fix rather than just renaming tools

This PR fixes the actual request‑signature mismatch that Anthropic is enforcing for Claude Code OAuth tokens:

  • Request shape: adds ?beta=true for /v1/messages (Claude Code does this; OpenCode didn’t)
  • Client identity: overrides user-agent to match Claude CLI (claude-cli/...)
  • Beta list: removes fine-grained-tool-streaming for OAuth and keeps only the Claude Code‑compatible set
@harshav167 commented on GitHub (Jan 9, 2026): > [anomalyco/opencode-anthropic-auth#11](https://github.com/anomalyco/opencode-anthropic-auth/pull/11) > > i just created a pr for a long term fix rather than just renaming tools This PR fixes the actual request‑signature mismatch that Anthropic is enforcing for Claude Code OAuth tokens: - Request shape: adds ?beta=true for /v1/messages (Claude Code does this; OpenCode didn’t) - Client identity: overrides user-agent to match Claude CLI (claude-cli/...) - Beta list: removes fine-grained-tool-streaming for OAuth and keeps only the Claude Code‑compatible set
Author
Owner

@deveworld commented on GitHub (Jan 9, 2026):

The fix has been merged in anomalyco/opencode-anthropic-auth#11.

Until it's published, here's a workaround:

  1. Clone the repo:
    git clone https://github.com/anomalyco/opencode-anthropic-auth.git

  2. Add to ~/.config/opencode/opencode.json:

"plugin": [
  "file:///path/to/opencode-anthropic-auth/index.mjs"
]
  1. Run with:
    OPENCODE_DISABLE_DEFAULT_PLUGINS=true opencode

Worked for me!

@deveworld commented on GitHub (Jan 9, 2026): The fix has been merged in anomalyco/opencode-anthropic-auth#11. Until it's published, here's a workaround: 1. Clone the repo: `git clone https://github.com/anomalyco/opencode-anthropic-auth.git` 2. Add to `~/.config/opencode/opencode.json`: ```json "plugin": [ "file:///path/to/opencode-anthropic-auth/index.mjs" ] ``` 3. Run with: `OPENCODE_DISABLE_DEFAULT_PLUGINS=true opencode` Worked for me!
Author
Owner

@sahilchouksey commented on GitHub (Jan 9, 2026):

The fix has been merged in anomalyco/opencode-anthropic-auth#11.

Until it's published, here's a workaround:

  1. Clone the repo:
    git clone https://github.com/anomalyco/opencode-anthropic-auth.git
  2. Add to ~/.config/opencode/opencode.json:

"plugin": [
"file:///path/to/opencode-anthropic-auth/index.mjs"
]
3. Run with:
OPENCODE_DISABLE_DEFAULT_PLUGINS=true opencode

Worked for me!

This works! Thanks.

@sahilchouksey commented on GitHub (Jan 9, 2026): > The fix has been merged in [anomalyco/opencode-anthropic-auth#11](https://github.com/anomalyco/opencode-anthropic-auth/pull/11). > > Until it's published, here's a workaround: > > 1. Clone the repo: > `git clone https://github.com/anomalyco/opencode-anthropic-auth.git` > 2. Add to `~/.config/opencode/opencode.json`: > > "plugin": [ > "file:///path/to/opencode-anthropic-auth/index.mjs" > ] > 3. Run with: > `OPENCODE_DISABLE_DEFAULT_PLUGINS=true opencode` > > Worked for me! This works! Thanks.
Author
Owner

@harshav167 commented on GitHub (Jan 9, 2026):

writing this fix using GPT 5.2 Codex Extra High made me realize how maybe i dont need opus 4.5 🫣

@harshav167 commented on GitHub (Jan 9, 2026): writing this fix using GPT 5.2 Codex Extra High made me realize how maybe i dont need opus 4.5 🫣
Author
Owner

@piotryordanov commented on GitHub (Jan 9, 2026):

@harshav167 lol try using minimax m2. You'd be surprised by how capable (and cheap) it is.
Good thing in opencode, you can just swap models out.

Anthropic clearly doesn't like that!

@piotryordanov commented on GitHub (Jan 9, 2026): @harshav167 lol try using minimax m2. You'd be surprised by how capable (and cheap) it is. Good thing in opencode, you can just swap models out. Anthropic clearly doesn't like that!
Author
Owner

@jagtesh commented on GitHub (Jan 9, 2026):

Has an integration using ACP (https://zed.dev/acp) been considered? It would use Claude Code under the hood, so it should still be compatible with their definition of intended use.

@jagtesh commented on GitHub (Jan 9, 2026): Has an integration using ACP (https://zed.dev/acp) been considered? It would use Claude Code under the hood, so it should still be compatible with their definition of intended use.
Author
Owner

@axsuul commented on GitHub (Jan 9, 2026):

@harshav167 How did you get access to 5.2 Codex via the API?

@axsuul commented on GitHub (Jan 9, 2026): @harshav167 How did you get access to 5.2 Codex via the API?
Author
Owner

@stewnight commented on GitHub (Jan 9, 2026):

According to Claude:

TLDR: Anthropic recently locked down Claude Code authentication tokens so they can't be used with third-party tools like OpenCode. You'll need a separate API key from console.anthropic.com.

TOC

What's happening
Why the change
Your options

What's Happening
Anthropic has recently tightened the authentication for Claude Code. The OAuth token you get when you run claude and authenticate is now scoped exclusively to the official Claude Code CLI. Previously, this token worked as a general API credential — now it doesn't.
This is a deliberate change, not a bug.
Why the Change
Strong opinion: This is Anthropic protecting their usage-based pricing model. Claude Code has different (more generous) rate limits and possibly different billing arrangements than raw API access. By locking the credential, they're preventing:

Third-party tools piggybacking on Claude Code's auth
Potential abuse of the authentication flow
Usage that bypasses their standard API billing

Fair enough from a business perspective, but it does break workflows people had set up.

@stewnight commented on GitHub (Jan 9, 2026): According to Claude: TLDR: Anthropic recently locked down Claude Code authentication tokens so they can't be used with third-party tools like OpenCode. You'll need a separate API key from console.anthropic.com. TOC What's happening Why the change Your options What's Happening Anthropic has recently tightened the authentication for Claude Code. The OAuth token you get when you run claude and authenticate is now scoped exclusively to the official Claude Code CLI. Previously, this token worked as a general API credential — now it doesn't. This is a deliberate change, not a bug. Why the Change Strong opinion: This is Anthropic protecting their usage-based pricing model. Claude Code has different (more generous) rate limits and possibly different billing arrangements than raw API access. By locking the credential, they're preventing: Third-party tools piggybacking on Claude Code's auth Potential abuse of the authentication flow Usage that bypasses their standard API billing Fair enough from a business perspective, but it does break workflows people had set up.
Author
Owner

@jihunkim0 commented on GitHub (Jan 9, 2026):

@Naomarik I'm on a similar boat as well. I'm trying to see if I can adapt to CC. Do you mind sharing at high level that works with opencode but doesn't with CC please?

@jihunkim0 commented on GitHub (Jan 9, 2026): @Naomarik I'm on a similar boat as well. I'm trying to see if I can adapt to CC. Do you mind sharing at high level that works with opencode but doesn't with CC please?
Author
Owner

@AlexZan commented on GitHub (Jan 9, 2026):

I just cancelled my CC max plan also. Was this intentional to force the use of Claude cli? Anyone know?

@AlexZan commented on GitHub (Jan 9, 2026): I just cancelled my CC max plan also. Was this intentional to force the use of Claude cli? Anyone know?
Author
Owner

@deveworld commented on GitHub (Jan 9, 2026):

I just cancelled my CC max plan also. Was this intentional to force the use of Claude cli? Anyone know?

The fix has been merged in anomalyco/opencode-anthropic-auth#11, and #7432 is open to bump the version.

Until it's released, see the workaround above.

@deveworld commented on GitHub (Jan 9, 2026): > I just cancelled my CC max plan also. Was this intentional to force the use of Claude cli? Anyone know? The fix has been merged in anomalyco/opencode-anthropic-auth#11, and #7432 is open to bump the version. Until it's released, see the workaround above.
Author
Owner

@harshav167 commented on GitHub (Jan 9, 2026):

@harshav167 How did you get access to 5.2 Codex via the API?

https://github.com/numman-ali/opencode-openai-codex-auth 🫣👀

@harshav167 commented on GitHub (Jan 9, 2026): > [@harshav167](https://github.com/harshav167) How did you get access to 5.2 Codex via the API? https://github.com/numman-ali/opencode-openai-codex-auth 🫣👀
Author
Owner

@43034r commented on GitHub (Jan 9, 2026):

Same issue.
Looks like Anthropic shot themselves in the foot here. Without the ability to use their models in OpenCode, I'm just gonna cancel my subscription.

@43034r commented on GitHub (Jan 9, 2026): Same issue. Looks like Anthropic shot themselves in the foot here. Without the ability to use their models in OpenCode, I'm just gonna cancel my subscription.
Author
Owner

@FreeSamples00 commented on GitHub (Jan 9, 2026):

Anyone got a good rec for switching off claude code? Currently considering GLM 4.7 from synthetic.new or similar, or perhaps chatGPT.

I want a ~$20 subscription, not a per token API

@FreeSamples00 commented on GitHub (Jan 9, 2026): Anyone got a good rec for switching off claude code? Currently considering GLM 4.7 from synthetic.new or similar, or perhaps chatGPT. I want a ~$20 subscription, not a per token API
Author
Owner

@kzhrv commented on GitHub (Jan 9, 2026):

This inconvenient but always solvable as client side can always be made a 1:1 replication of what their client already does on the protocol level. If it gets to the point you have to keep a patched bun repo as well, to keep opencode working with Anthropic models, then it will get if-y.

What cannot be solved also is if they, anthropic, start banning people for not using their client. This situation might be they hope people leave.

It is puzzling behavior as anthropic and any other inference provider is really dependent on scavenging human traces, so what is their end goal, idk. Maybe claude code already is baking in far greater tracing capability?

@kzhrv commented on GitHub (Jan 9, 2026): This inconvenient but always solvable as client side can always be made a 1:1 replication of what their client already does on the protocol level. If it gets to the point you have to keep a patched bun repo as well, to keep opencode working with Anthropic models, then it will get if-y. What cannot be solved also is if they, anthropic, start banning people for not using their client. This situation might be they hope people leave. It is puzzling behavior as anthropic and any other inference provider is really dependent on scavenging human traces, so what is their end goal, idk. Maybe claude code already is baking in far greater tracing capability?
Author
Owner

@leeweisern commented on GitHub (Jan 9, 2026):

Same issue. Looks like Anthropic shot themselves in the foot here. Without the ability to use their models in OpenCode, I'm just gonna cancel my subscription.

I don't think this will hurt them at all, unless you stop using claude models completely.

@leeweisern commented on GitHub (Jan 9, 2026): > Same issue. Looks like Anthropic shot themselves in the foot here. Without the ability to use their models in OpenCode, I'm just gonna cancel my subscription. I don't think this will hurt them at all, unless you stop using claude models completely.
Author
Owner

@StefanIliev545 commented on GitHub (Jan 9, 2026):

According to Claude:

TLDR: Anthropic recently locked down Claude Code authentication tokens so they can't be used with third-party tools like OpenCode. You'll need a separate API key from console.anthropic.com.

TOC

What's happening Why the change Your options

What's Happening Anthropic has recently tightened the authentication for Claude Code. The OAuth token you get when you run claude and authenticate is now scoped exclusively to the official Claude Code CLI. Previously, this token worked as a general API credential — now it doesn't. This is a deliberate change, not a bug. Why the Change Strong opinion: This is Anthropic protecting their usage-based pricing model. Claude Code has different (more generous) rate limits and possibly different billing arrangements than raw API access. By locking the credential, they're preventing:

Third-party tools piggybacking on Claude Code's auth Potential abuse of the authentication flow Usage that bypasses their standard API billing

Fair enough from a business perspective, but it does break workflows people had set up.

No opencode, no subscription. It really is this simple.

@StefanIliev545 commented on GitHub (Jan 9, 2026): > According to Claude: > > TLDR: Anthropic recently locked down Claude Code authentication tokens so they can't be used with third-party tools like OpenCode. You'll need a separate API key from console.anthropic.com. > > TOC > > What's happening Why the change Your options > > What's Happening Anthropic has recently tightened the authentication for Claude Code. The OAuth token you get when you run claude and authenticate is now scoped exclusively to the official Claude Code CLI. Previously, this token worked as a general API credential — now it doesn't. This is a deliberate change, not a bug. Why the Change Strong opinion: This is Anthropic protecting their usage-based pricing model. Claude Code has different (more generous) rate limits and possibly different billing arrangements than raw API access. By locking the credential, they're preventing: > > Third-party tools piggybacking on Claude Code's auth Potential abuse of the authentication flow Usage that bypasses their standard API billing > > Fair enough from a business perspective, but it does break workflows people had set up. No opencode, no subscription. It really is this simple.
Author
Owner

@marco-kretz commented on GitHub (Jan 9, 2026):

I’m facing the same issue. It’s clearly another step toward ecosystem lock-in. The subscription provides a significantly higher request volume compared to the API. For $100 on the "Max 5x" tier, you receive a value in requests that would cost several hundred dollars via API.

They are leveraging their current market lead and the surrounding hype to bind users. There is no incentive for them to share their USP with third parties.

From an economic standpoint, this makes perfect sense; from our perspective, it sucks.

@marco-kretz commented on GitHub (Jan 9, 2026): I’m facing the same issue. It’s clearly another step toward ecosystem lock-in. The subscription provides a significantly higher request volume compared to the API. For $100 on the "Max 5x" tier, you receive a value in requests that would cost several hundred dollars via API. They are leveraging their current market lead and the surrounding hype to bind users. There is no incentive for them to share their USP with third parties. From an economic standpoint, this makes perfect sense; from our perspective, it sucks.
Author
Owner

@kzhrv commented on GitHub (Jan 9, 2026):

I’m facing the same issue. It’s clearly another step toward ecosystem lock-in. The subscription provides a significantly higher request volume compared to the API. For $100 on the "Max 5x" tier, you receive a value in requests that would cost several hundred dollars via API.

They are leveraging their current market lead and the surrounding hype to bind users. There is no incentive for them to share their USP with third parties.

From an economic standpoint, this makes perfect sense; from our perspective, it sucks.

is using another client to their service robbing anthropic, is opencode stealing their platform away?

@kzhrv commented on GitHub (Jan 9, 2026): > I’m facing the same issue. It’s clearly another step toward ecosystem lock-in. The subscription provides a significantly higher request volume compared to the API. For $100 on the "Max 5x" tier, you receive a value in requests that would cost several hundred dollars via API. > > They are leveraging their current market lead and the surrounding hype to bind users. There is no incentive for them to share their USP with third parties. > > From an economic standpoint, this makes perfect sense; from our perspective, it sucks. is using another client to their service robbing anthropic, is opencode stealing their platform away?
Author
Owner

@leeweisern commented on GitHub (Jan 9, 2026):

I’m facing the same issue. It’s clearly another step toward ecosystem lock-in. The subscription provides a significantly higher request volume compared to the API. For $100 on the "Max 5x" tier, you receive a value in requests that would cost several hundred dollars via API.
They are leveraging their current market lead and the surrounding hype to bind users. There is no incentive for them to share their USP with third parties.
From an economic standpoint, this makes perfect sense; from our perspective, it sucks.

is using another client to their service robbing anthropic, is opencode stealing their platform away?

Claude code subscription is a loss leader; they want to lock you in with Claude code so that Enterprise will lock in the Team plan. However, if you're using Opencode in your organisation, you will work with Opencode instead.

@leeweisern commented on GitHub (Jan 9, 2026): > > I’m facing the same issue. It’s clearly another step toward ecosystem lock-in. The subscription provides a significantly higher request volume compared to the API. For $100 on the "Max 5x" tier, you receive a value in requests that would cost several hundred dollars via API. > > They are leveraging their current market lead and the surrounding hype to bind users. There is no incentive for them to share their USP with third parties. > > From an economic standpoint, this makes perfect sense; from our perspective, it sucks. > > is using another client to their service robbing anthropic, is opencode stealing their platform away? Claude code subscription is a loss leader; they want to lock you in with Claude code so that Enterprise will lock in the Team plan. However, if you're using Opencode in your organisation, you will work with Opencode instead.
Author
Owner

@kzhrv commented on GitHub (Jan 9, 2026):

opic, is opencode stealing their platform away?

Claude code subscription is a loss leader; they want to lock you in with Claude code so that Enterprise will lock in the Team plan. However, if you're using Opencode in your organisation, you will work with Opencode instead.

People use claude models, the reason for anthropic's platform to exist, because they extract value or they think they extract value. I fail to see what more can anthropic expect from this process in terms of capital exchange: product -> purchase. Who cares you purchased the product with eur or usd?

So people using opencode purchase anthropic, its not like they are not purchasing.

@kzhrv commented on GitHub (Jan 9, 2026): > > opic, is opencode stealing their platform away? > > Claude code subscription is a loss leader; they want to lock you in with Claude code so that Enterprise will lock in the Team plan. However, if you're using Opencode in your organisation, you will work with Opencode instead. People use claude models, the reason for anthropic's platform to exist, because they extract value or they think they extract value. I fail to see what more can anthropic expect from this process in terms of capital exchange: product -> purchase. Who cares you purchased the product with eur or usd? So people using opencode purchase anthropic, its not like they are not purchasing.
Author
Owner

@KimDaehyeon6873 commented on GitHub (Jan 9, 2026):

This is nonsense. Even though I got the point, but still doesn't make sense. After this change, people will no more able to use Opencode(oh-my-opencode) with Claude subscription.

Now only the API key option is available.

@KimDaehyeon6873 commented on GitHub (Jan 9, 2026): This is nonsense. Even though I got the point, but still doesn't make sense. After this change, people will no more able to use Opencode(oh-my-opencode) with Claude subscription. Now only the API key option is available.
Author
Owner

@adamkdean commented on GitHub (Jan 9, 2026):

Maybe someone should use CC to look through CC and find how CC authenticates and then put that into OC?

@adamkdean commented on GitHub (Jan 9, 2026): Maybe someone should use CC to look through CC and find how CC authenticates and then put that into OC?
Author
Owner

@marco-kretz commented on GitHub (Jan 9, 2026):

Maybe someone should use CC to look through CC and find how CC authenticates and then put that into OC?

Bad idea. That's a violation against their TOS and will likely just get your account suspended.

@marco-kretz commented on GitHub (Jan 9, 2026): > Maybe someone should use CC to look through CC and find how CC authenticates and then put that into OC? Bad idea. That's a violation against their TOS and will likely just get your account suspended.
Author
Owner

@b-za commented on GitHub (Jan 9, 2026):

same issue, yesterday it worked today got the error message

@b-za commented on GitHub (Jan 9, 2026): same issue, yesterday it worked today got the error message
Author
Owner

@meteyou commented on GitHub (Jan 9, 2026):

got the same issue today. i installed the pre-released fix form here (https://github.com/anomalyco/opencode-anthropic-auth/pull/11) and it works again!

@meteyou commented on GitHub (Jan 9, 2026): got the same issue today. i installed the pre-released fix form here (https://github.com/anomalyco/opencode-anthropic-auth/pull/11) and it works again!
Author
Owner

@KimDaehyeon6873 commented on GitHub (Jan 9, 2026):

got the same issue today. i installed the pre-released fix form here (https://github.com/anomalyco/opencode-anthropic-auth/pull/11) and it works again!

FR? I think I need to set it up again 👍👍

@KimDaehyeon6873 commented on GitHub (Jan 9, 2026): > got the same issue today. i installed the pre-released fix form here (https://github.com/anomalyco/opencode-anthropic-auth/pull/11) and it works again! FR? I think I need to set it up again 👍👍
Author
Owner

@jksjaz commented on GitHub (Jan 9, 2026):

I don't know if y'all need to do this (since its not in the patch instructions) but to use that patch, I had to do bun install otherwise opencode was crashing.

@jksjaz commented on GitHub (Jan 9, 2026): I don't know if y'all need to do this (since its not in the patch instructions) but to use that patch, I had to do `bun install` otherwise opencode was crashing.
Author
Owner

@Mithrillion commented on GitHub (Jan 9, 2026):

I believe that Claude appears to hold some advantage because so many agent harnesses are tuned with a bias towards their models (either through developer familiarity, number of raised tickets or even vendor API adoption). With their current policies, hopefully this will discourage people from writing workflows, tools and prompts that are preferentially optimised for Claude. Let us see how much water they hold given truly neutral tooling.

@Mithrillion commented on GitHub (Jan 9, 2026): I believe that Claude appears to hold some advantage because so many agent harnesses are tuned with a bias towards their models (either through developer familiarity, number of raised tickets or even vendor API adoption). With their current policies, hopefully this will discourage people from writing workflows, tools and prompts that are preferentially optimised for Claude. Let us see how much water they hold given truly neutral tooling.
Author
Owner

@paolomainardi commented on GitHub (Jan 9, 2026):

Not strictly related, but since Copilot could be the next to violate the TOS, I've asked for an official response here: https://github.com/orgs/community/discussions/183809. If someone can help raise this question, it's more than welcome.

@paolomainardi commented on GitHub (Jan 9, 2026): Not strictly related, but since Copilot could be the next to violate the TOS, I've asked for an official response here: https://github.com/orgs/community/discussions/183809. If someone can help raise this question, it's more than welcome.
Author
Owner

@n2k3 commented on GitHub (Jan 9, 2026):

confirmed working again on opencode 1.1.8 and by adding this to opencode.json (either globally, or in your repo)

{
  "$schema": "https://opencode.ai/config.json",
   ...
+  "plugin": ["opencode-anthropic-auth"],
   ...
}
@n2k3 commented on GitHub (Jan 9, 2026): confirmed working again on opencode 1.1.8 and by adding this to `opencode.json` (either globally, or in your repo) ```diff { "$schema": "https://opencode.ai/config.json", ... + "plugin": ["opencode-anthropic-auth"], ... } ```
Author
Owner

@marco-kretz commented on GitHub (Jan 9, 2026):

confirmed working again on opencode 1.1.8 and by adding this to opencode.json (either globally, or in your repo)

{
"$schema": "https://opencode.ai/config.json",
...

  • "plugin": ["opencode-anthropic-auth"],
    ...
    }

This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly.

@marco-kretz commented on GitHub (Jan 9, 2026): > confirmed working again on opencode 1.1.8 and by adding this to `opencode.json` (either globally, or in your repo) > > { > "$schema": "https://opencode.ai/config.json", > ... > + "plugin": ["opencode-anthropic-auth"], > ... > } This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly.
Author
Owner

@dario-valles commented on GitHub (Jan 9, 2026):

They support the ACP protocol, so it may still be usable through that path. https://github.com/zed-industries/claude-code-acp

@dario-valles commented on GitHub (Jan 9, 2026): They support the ACP protocol, so it may still be usable through that path. https://github.com/zed-industries/claude-code-acp
Author
Owner

@n2k3 commented on GitHub (Jan 9, 2026):

This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly.

Are there known cases like this, users getting banned? (I didn't know this 😕️️️️️️)

@n2k3 commented on GitHub (Jan 9, 2026): > This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly. Are there known cases like this, users getting banned? (I didn't know this 😕️️️️️️)
Author
Owner

@kzhrv commented on GitHub (Jan 9, 2026):

This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly.

Are there known cases like this, users getting banned? (I didn't know this 😕️️️️️️)

it a scary world.

@kzhrv commented on GitHub (Jan 9, 2026): > > This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly. > > Are there known cases like this, users getting banned? (I didn't know this 😕️️️️️️) it a scary world.
Author
Owner

@mathias-ewald commented on GitHub (Jan 9, 2026):

Clearly a reason to downgrade my subscription or switch entirely if that keeps happening

@mathias-ewald commented on GitHub (Jan 9, 2026): Clearly a reason to downgrade my subscription or switch entirely if that keeps happening
Author
Owner

@ilvez commented on GitHub (Jan 9, 2026):

Are there known cases like this, users getting banned? (I didn't know this 😕️️️️️️)

AFAIK it's gray area at least from terms of service perspective, but I'm pretty sure they will patch it up if they want to pursue this intent of blocking access. Reverse engineering probably is unstoppable force, but keeping people in check with "guns" is another matter. Not sure why they would want to do that to be honest, but since they started it already..

@ilvez commented on GitHub (Jan 9, 2026): > Are there known cases like this, users getting banned? (I didn't know this 😕️️️️️️) AFAIK it's gray area at least from terms of service perspective, but I'm pretty sure they will patch it up if they want to pursue this intent of blocking access. Reverse engineering probably is unstoppable force, but keeping people in check with "guns" is another matter. Not sure why they would want to do that to be honest, but since they started it already..
Author
Owner

@ionabio commented on GitHub (Jan 9, 2026):

The worst case is they ban people and lose them as a subscriber! And I remember during 4.0 era, when they made a mistake that made their models dumber and they lost many subscribers, they started giving free limitted time Max's to Pro's or some offers to get people back.

@ionabio commented on GitHub (Jan 9, 2026): The worst case is they ban people and lose them as a subscriber! And I remember during 4.0 era, when they made a mistake that made their models dumber and they lost many subscribers, they started giving free limitted time Max's to Pro's or some offers to get people back.
Author
Owner

@execute008 commented on GitHub (Jan 9, 2026):

Same here

@execute008 commented on GitHub (Jan 9, 2026): Same here
Author
Owner

@mmack commented on GitHub (Jan 9, 2026):

same here what a move...

@mmack commented on GitHub (Jan 9, 2026): same here what a move...
Author
Owner

@daonb commented on GitHub (Jan 9, 2026):

I've cancelled my Max subscription.

Claude Code is on its way to being the next CoPilot.

@daonb commented on GitHub (Jan 9, 2026): I've cancelled my Max subscription. Claude Code is on its way to being the next CoPilot.
Author
Owner

@jagai commented on GitHub (Jan 9, 2026):

confirmed working again on opencode 1.1.8 and by adding this to opencode.json (either globally, or in your repo)
{
"$schema": "https://opencode.ai/config.json",
...

  • "plugin": ["opencode-anthropic-auth"],
    ...
    }

This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly.

Being banned from Antrhopic will also issue an auto refund. Do with this info as you please.

@jagai commented on GitHub (Jan 9, 2026): > > confirmed working again on opencode 1.1.8 and by adding this to `opencode.json` (either globally, or in your repo) > > { > > "$schema": "https://opencode.ai/config.json", > > ... > > > > * "plugin": ["opencode-anthropic-auth"], > > ... > > } > > This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly. Being banned from Antrhopic will also issue an auto refund. Do with this info as you please.
Author
Owner

@EdgarSedov commented on GitHub (Jan 9, 2026):

Btw, given the chance, you may want to try out codex-5.2. It's really good

@EdgarSedov commented on GitHub (Jan 9, 2026): Btw, given the chance, you may want to try out codex-5.2. It's really good
Author
Owner

@cryptobetEU commented on GitHub (Jan 9, 2026):

Btw, given the chance, you may want to try out codex-5.2. It's really good

GPT 5.2 or 5.1 (either ones) they only talk for me but make no actuall file changes...

@cryptobetEU commented on GitHub (Jan 9, 2026): > Btw, given the chance, you may want to try out codex-5.2. It's really good GPT 5.2 or 5.1 (either ones) they only talk for me but make no actuall file changes...
Author
Owner

@selectnull commented on GitHub (Jan 9, 2026):

I've just canceled my Claude subscription. opencode is more valuable to me at this point than a model used. I plan to use Gemini for a while and then see how it works and if it's not good enough I'll try others.

@selectnull commented on GitHub (Jan 9, 2026): I've just canceled my Claude subscription. opencode is more valuable to me at this point than a model used. I plan to use Gemini for a while and then see how it works and if it's not good enough I'll try others.
Author
Owner

@EdgarSedov commented on GitHub (Jan 9, 2026):

Btw, given the chance, you may want to try out codex-5.2. It's really good

GPT 5.2 or 5.1 (either ones) they only talk for me but make no actuall file changes...

GPT-5.2 and GPT-5.2 Codex are different, it's a separate model, so maybe worth checking which one you use

@EdgarSedov commented on GitHub (Jan 9, 2026): > > Btw, given the chance, you may want to try out codex-5.2. It's really good > > GPT 5.2 or 5.1 (either ones) they only talk for me but make no actuall file changes... `GPT-5.2` and `GPT-5.2 Codex` are different, it's a separate model, so maybe worth checking which one you use
Author
Owner

@d3m1art commented on GitHub (Jan 9, 2026):

The issue with the old auth plugin and it's not merged yet, but you can patch it locally
https://github.com/anomalyco/opencode/pull/7432

How to Fix Claude Code Max Support in OpenCode
Follow these steps to apply the fix locally:
1. Clone the OpenCode repository
git clone https://github.com/anomalyco/opencode.git ~/opencode-source
cd ~/opencode-source
2. Download and apply the patch
curl -L https://patch-diff.githubusercontent.com/raw/anomalyco/opencode/pull/7432.patch -o fix.patch
git apply fix.patch
3. Install Bun (if not installed)
curl -fsSL https://bun.sh/install | bash
4. Install dependencies and build
cd ~/opencode-source
export PATH="$HOME/.bun/bin:$PATH"
bun install
cd packages/opencode
bun run build
5. Backup and replace the binary
cp ~/.opencode/bin/opencode ~/.opencode/bin/opencode.backup
cp ~/opencode-source/packages/opencode/dist/opencode-darwin-arm64/bin/opencode ~/.opencode/bin/opencode
For Linux users, use opencode-linux-x64 instead of opencode-darwin-arm64 in the path above.
6. Verify the fix
strings ~/.opencode/bin/opencode | grep "opencode-anthropic-auth@0.0.7"
You should see output like:
const BUILTIN = ["opencode-copilot-auth@0.0.11", "opencode-anthropic-auth@0.0.7"];
7. Restart OpenCode
pkill -9 opencode
opencode --version
Claude Code Max should now work with the updated auth plugin version 0.0.7.
@d3m1art commented on GitHub (Jan 9, 2026): The issue with the old auth plugin and it's not merged yet, but you can patch it locally https://github.com/anomalyco/opencode/pull/7432 ``` How to Fix Claude Code Max Support in OpenCode Follow these steps to apply the fix locally: 1. Clone the OpenCode repository git clone https://github.com/anomalyco/opencode.git ~/opencode-source cd ~/opencode-source 2. Download and apply the patch curl -L https://patch-diff.githubusercontent.com/raw/anomalyco/opencode/pull/7432.patch -o fix.patch git apply fix.patch 3. Install Bun (if not installed) curl -fsSL https://bun.sh/install | bash 4. Install dependencies and build cd ~/opencode-source export PATH="$HOME/.bun/bin:$PATH" bun install cd packages/opencode bun run build 5. Backup and replace the binary cp ~/.opencode/bin/opencode ~/.opencode/bin/opencode.backup cp ~/opencode-source/packages/opencode/dist/opencode-darwin-arm64/bin/opencode ~/.opencode/bin/opencode For Linux users, use opencode-linux-x64 instead of opencode-darwin-arm64 in the path above. 6. Verify the fix strings ~/.opencode/bin/opencode | grep "opencode-anthropic-auth@0.0.7" You should see output like: const BUILTIN = ["opencode-copilot-auth@0.0.11", "opencode-anthropic-auth@0.0.7"]; 7. Restart OpenCode pkill -9 opencode opencode --version Claude Code Max should now work with the updated auth plugin version 0.0.7. ```
Author
Owner

@harshav167 commented on GitHub (Jan 9, 2026):

The issue with the old auth plugin and it's not merged yet, but you can patch it locally #7432

How to Fix Claude Code Max Support in OpenCode
Follow these steps to apply the fix locally:
1. Clone the OpenCode repository
git clone https://github.com/anomalyco/opencode.git ~/opencode-source
cd ~/opencode-source
2. Download and apply the patch
curl -L https://patch-diff.githubusercontent.com/raw/anomalyco/opencode/pull/7432.patch -o fix.patch
git apply fix.patch
3. Install Bun (if not installed)
curl -fsSL https://bun.sh/install | bash
4. Install dependencies and build
cd ~/opencode-source
export PATH="$HOME/.bun/bin:$PATH"
bun install
cd packages/opencode
bun run build
5. Backup and replace the binary
cp ~/.opencode/bin/opencode ~/.opencode/bin/opencode.backup
cp ~/opencode-source/packages/opencode/dist/opencode-darwin-arm64/bin/opencode ~/.opencode/bin/opencode
For Linux users, use opencode-linux-x64 instead of opencode-darwin-arm64 in the path above.
6. Verify the fix
strings ~/.opencode/bin/opencode | grep "opencode-anthropic-auth@0.0.7"
You should see output like:
const BUILTIN = ["opencode-copilot-auth@0.0.11", "opencode-anthropic-auth@0.0.7"];
7. Restart OpenCode
pkill -9 opencode
opencode --version
Claude Code Max should now work with the updated auth plugin version 0.0.7.

theres a easier way in guide i commented in my pr broski

@harshav167 commented on GitHub (Jan 9, 2026): > The issue with the old auth plugin and it's not merged yet, but you can patch it locally [#7432](https://github.com/anomalyco/opencode/pull/7432) > > ``` > How to Fix Claude Code Max Support in OpenCode > Follow these steps to apply the fix locally: > 1. Clone the OpenCode repository > git clone https://github.com/anomalyco/opencode.git ~/opencode-source > cd ~/opencode-source > 2. Download and apply the patch > curl -L https://patch-diff.githubusercontent.com/raw/anomalyco/opencode/pull/7432.patch -o fix.patch > git apply fix.patch > 3. Install Bun (if not installed) > curl -fsSL https://bun.sh/install | bash > 4. Install dependencies and build > cd ~/opencode-source > export PATH="$HOME/.bun/bin:$PATH" > bun install > cd packages/opencode > bun run build > 5. Backup and replace the binary > cp ~/.opencode/bin/opencode ~/.opencode/bin/opencode.backup > cp ~/opencode-source/packages/opencode/dist/opencode-darwin-arm64/bin/opencode ~/.opencode/bin/opencode > For Linux users, use opencode-linux-x64 instead of opencode-darwin-arm64 in the path above. > 6. Verify the fix > strings ~/.opencode/bin/opencode | grep "opencode-anthropic-auth@0.0.7" > You should see output like: > const BUILTIN = ["opencode-copilot-auth@0.0.11", "opencode-anthropic-auth@0.0.7"]; > 7. Restart OpenCode > pkill -9 opencode > opencode --version > Claude Code Max should now work with the updated auth plugin version 0.0.7. > ``` theres a easier way in guide i commented in my pr broski
Author
Owner

@n33pm commented on GitHub (Jan 9, 2026):

As a temporary fix, add "plugin": ["opencode-anthropic-auth@0.0.7"] to your .config/opencode/opencode.json file.

@n33pm commented on GitHub (Jan 9, 2026): As a temporary fix, add "plugin": ["opencode-anthropic-auth@0.0.7"] to your .config/opencode/opencode.json file.
Author
Owner

@MaxAst commented on GitHub (Jan 9, 2026):

"plugin": ["opencode-anthropic-auth@0.0.7"]

you legend saved my day, thank you! was already starting to pull my hair out with claude code this morning

@MaxAst commented on GitHub (Jan 9, 2026): > "plugin": ["opencode-anthropic-auth@0.0.7"] you legend saved my day, thank you! was already starting to pull my hair out with claude code this morning
Author
Owner

@angelguillen10 commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).
@angelguillen10 commented on GitHub (Jan 9, 2026): This worked for me: - Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: ``` "plugin": [ "opencode-anthropic-auth@0.0.7", ], ``` - Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).
Author
Owner

@harshav167 commented on GitHub (Jan 9, 2026):

confirmed working again on opencode 1.1.8 and by adding this to opencode.json (either globally, or in your repo)
{
"$schema": "opencode.ai/config.json",
...

  • "plugin": ["opencode-anthropic-auth"],
    ...
    }

This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly.

Being banned from Antrhopic will also issue an auto refund. Do with this info as you please.

we are also working on a pr where we replicate tool definitions on top of oauth replication to cement opencode stealth behavior when using claude max without being detected

@harshav167 commented on GitHub (Jan 9, 2026): > > > confirmed working again on opencode 1.1.8 and by adding this to `opencode.json` (either globally, or in your repo) > > > { > > > "$schema": "[opencode.ai/config.json](https://opencode.ai/config.json)", > > > ... > > > > > > * "plugin": ["opencode-anthropic-auth"], > > > ... > > > } > > > > > > This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly. > > Being banned from Antrhopic will also issue an auto refund. Do with this info as you please. we are also working on a pr where we replicate tool definitions on top of oauth replication to cement opencode stealth behavior when using claude max without being detected
Author
Owner

@linkedlist771 commented on GitHub (Jan 9, 2026):

After a bunch of tests, I found that this validation is from the tools filed. If the tools field contains any of the default tool in the Claude Code, and somehow has different schemas, which will trigger this error.

So I suppose a custom rename should fix this?

@linkedlist771 commented on GitHub (Jan 9, 2026): After a bunch of tests, I found that this validation is from the tools filed. If the tools field contains any of the default tool in the Claude Code, and somehow has different schemas, which will trigger this error. So I suppose a custom rename should fix this?
Author
Owner

@execute008 commented on GitHub (Jan 9, 2026):

As a temporary fix, add "plugin": ["opencode-anthropic-auth@0.0.7"] to your .config/opencode/opencode.json file.

That fixed it for me, thanks a lot king. God bless you!

@execute008 commented on GitHub (Jan 9, 2026): > As a temporary fix, add "plugin": ["opencode-anthropic-auth@0.0.7"] to your .config/opencode/opencode.json file. That fixed it for me, thanks a lot king. God bless you!
Author
Owner

@boxpositron commented on GitHub (Jan 9, 2026):

Awesome work on the quick patch everyone. I've been cheering on from the sides but watching this move from issue to fixed was awe inspiring of what we can do together as builders!. 🚀

@boxpositron commented on GitHub (Jan 9, 2026): Awesome work on the quick patch everyone. I've been cheering on from the sides but watching this move from issue to fixed was awe inspiring of what we can do together as builders!. 🚀
Author
Owner

@shekohex commented on GitHub (Jan 9, 2026):

confirmed working again on opencode 1.1.8 and by adding this to opencode.json (either globally, or in your repo)
{
"$schema": "opencode.ai/config.json",
...

  • "plugin": ["opencode-anthropic-auth"],
    ...
    }

This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly.

Being banned from Antrhopic will also issue an auto refund. Do with this info as you please.

we are also working on a pr where we replicate tool definitions on top of oauth replication to cement opencode stealth behavior when using claude max without being detected

This awesome, I now see a lot of invalid tool calls and error rates when the agent tires to call (ask user question tool, batch tool ..etc) are you fixing that too? @harshav167

@shekohex commented on GitHub (Jan 9, 2026): > > > > confirmed working again on opencode 1.1.8 and by adding this to `opencode.json` (either globally, or in your repo) > > > > { > > > > "$schema": "[opencode.ai/config.json](https://opencode.ai/config.json)", > > > > ... > > > > > > > > * "plugin": ["opencode-anthropic-auth"], > > > > ... > > > > } > > > > > > > > > This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly. > > > > Being banned from Antrhopic will also issue an auto refund. Do with this info as you please. > > we are also working on a pr where we replicate tool definitions on top of oauth replication to cement opencode stealth behavior when using claude max without being detected This awesome, I now see a lot of invalid tool calls and error rates when the agent tires to call (ask user question tool, batch tool ..etc) are you fixing that too? @harshav167
Author
Owner

@harshav167 commented on GitHub (Jan 9, 2026):

Awesome work on the quick patch everyone. I've been cheering on from the sides but watching this move from issue to fixed was awe inspiring of what we can do together as builders!. 🚀

🫡

@harshav167 commented on GitHub (Jan 9, 2026): > Awesome work on the quick patch everyone. I've been cheering on from the sides but watching this move from issue to fixed was awe inspiring of what we can do together as builders!. 🚀 🫡
Author
Owner

@harshav167 commented on GitHub (Jan 9, 2026):

confirmed working again on opencode 1.1.8 and by adding this to opencode.json (either globally, or in your repo)
{
"$schema": "opencode.ai/config.json",
...

  • "plugin": ["opencode-anthropic-auth"],
    ...
    }

This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly.

Being banned from Antrhopic will also issue an auto refund. Do with this info as you please.

we are also working on a pr where we replicate tool definitions on top of oauth replication to cement opencode stealth behavior when using claude max without being detected

This awesome, I now see a lot of invalid tool calls and error rates when the agent tires to call (ask user question tool, batch tool ..etc) are you fixing that too? @harshav167

im not having any issues since my pr tho? been using it heavily since and dont see error rates too

@harshav167 commented on GitHub (Jan 9, 2026): > > > > > confirmed working again on opencode 1.1.8 and by adding this to `opencode.json` (either globally, or in your repo) > > > > > { > > > > > "$schema": "[opencode.ai/config.json](https://opencode.ai/config.json)", > > > > > ... > > > > > > > > > > * "plugin": ["opencode-anthropic-auth"], > > > > > ... > > > > > } > > > > > > > > > > > > This may work for now but doesn't safe you from them detecting it tomorrow and suspend your account. Be warned. They seem to NOT want that, clearly. > > > > > > > > > Being banned from Antrhopic will also issue an auto refund. Do with this info as you please. > > > > > > we are also working on a pr where we replicate tool definitions on top of oauth replication to cement opencode stealth behavior when using claude max without being detected > > This awesome, I now see a lot of invalid tool calls and error rates when the agent tires to call (ask user question tool, batch tool ..etc) are you fixing that too? [@harshav167](https://github.com/harshav167) im not having any issues since my pr tho? been using it heavily since and dont see error rates too
Author
Owner

@stephenstubbs commented on GitHub (Jan 9, 2026):

Thank you! Adding the plugin works for me too. Life saver.

@stephenstubbs commented on GitHub (Jan 9, 2026): Thank you! Adding the plugin works for me too. Life saver.
Author
Owner

@ramtinJ95 commented on GitHub (Jan 9, 2026):

I see loads of tool call errors also.

@ramtinJ95 commented on GitHub (Jan 9, 2026): I see loads of tool call errors also.
Author
Owner

@romankovalov commented on GitHub (Jan 9, 2026):

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

For everyone who is trying to hack the system using the plugin, please notice that you are risking to be banned.

"there are confirmed cases of accounts being detected and permanently banned"

https://www.reddit.com/r/opencodeCLI/comments/1q7yggk/psa_using_claude_code_oauth_in_thirdparty_tools/

https://github.com/anomalyco/opencode/issues/6930

@romankovalov commented on GitHub (Jan 9, 2026): ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ For everyone who is trying to hack the system using the plugin, please notice that you are risking to be banned. **"there are confirmed cases of accounts being detected and permanently banned"** https://www.reddit.com/r/opencodeCLI/comments/1q7yggk/psa_using_claude_code_oauth_in_thirdparty_tools/ https://github.com/anomalyco/opencode/issues/6930
Author
Owner

@shekohex commented on GitHub (Jan 9, 2026):

@harshav167 im not having any issues since my pr tho? been using it heavily since and dont see error rates too

Can you enable the experimental batch tool? also the try the new askuserquestion tool?

@shekohex commented on GitHub (Jan 9, 2026): > @harshav167 im not having any issues since my pr tho? been using it heavily since and dont see error rates too Can you enable the experimental batch tool? also the try the new askuserquestion tool?
Author
Owner

@ThomsenDrake commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).

Worked like a charm!

@ThomsenDrake commented on GitHub (Jan 9, 2026): > This worked for me: > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > ``` > "plugin": [ > "opencode-anthropic-auth@0.0.7", > ], > ``` > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude). Worked like a charm!
Author
Owner

@a-dmx commented on GitHub (Jan 9, 2026):

For everyone who is trying to hack the system using the plugin, please notice that you are risking to be banned.

https://www.reddit.com/r/opencodeCLI/comments/1q7yggk/psa_using_claude_code_oauth_in_thirdparty_tools/ #6930

are they giving refunds after they ban you?

@a-dmx commented on GitHub (Jan 9, 2026): > For everyone who is trying to hack the system using the plugin, please notice that you are risking to be banned. > > https://www.reddit.com/r/opencodeCLI/comments/1q7yggk/psa_using_claude_code_oauth_in_thirdparty_tools/ [#6930](https://github.com/anomalyco/opencode/issues/6930) are they giving refunds after they ban you?
Author
Owner

@romankovalov commented on GitHub (Jan 9, 2026):

@a-dmx I don't think so :)

@romankovalov commented on GitHub (Jan 9, 2026): @a-dmx I don't think so :)
Author
Owner

@kzhrv commented on GitHub (Jan 9, 2026):

For everyone who is trying to hack the system using the plugin, please notice that you are risking to be banned.
https://www.reddit.com/r/opencodeCLI/comments/1q7yggk/psa_using_claude_code_oauth_in_thirdparty_tools/ #6930

are they giving refunds after they ban you?

What for the time you spent on uploading trajectories to them? They aren't! Hell no.

For the money? Probably.

@kzhrv commented on GitHub (Jan 9, 2026): > > For everyone who is trying to hack the system using the plugin, please notice that you are risking to be banned. > > https://www.reddit.com/r/opencodeCLI/comments/1q7yggk/psa_using_claude_code_oauth_in_thirdparty_tools/ [#6930](https://github.com/anomalyco/opencode/issues/6930) > > are they giving refunds after they ban you? What for the time you spent on uploading trajectories to them? They aren't! Hell no. For the money? Probably.
Author
Owner

@harshav167 commented on GitHub (Jan 9, 2026):

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

For everyone who is trying to hack the system using the plugin, please notice that you are risking to be banned.

"there are confirmed cases of accounts being detected and permanently banned"

https://www.reddit.com/r/opencodeCLI/comments/1q7yggk/psa_using_claude_code_oauth_in_thirdparty_tools/

https://github.com/anomalyco/opencode/issues/6930

Honestly if they do it's the nail in the coffin. As long as they don't see who made the fix specifically 💀

@harshav167 commented on GitHub (Jan 9, 2026): > ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ > > For everyone who is trying to hack the system using the plugin, please notice that you are risking to be banned. > > **"there are confirmed cases of accounts being detected and permanently banned"** > > https://www.reddit.com/r/opencodeCLI/comments/1q7yggk/psa_using_claude_code_oauth_in_thirdparty_tools/ > > https://github.com/anomalyco/opencode/issues/6930 Honestly if they do it's the nail in the coffin. As long as they don't see who made the fix specifically 💀
Author
Owner

@kzhrv commented on GitHub (Jan 9, 2026):

@a-dmx I don't think so :)

I think they do, bud. But have you checked?

Check and tell us.

@kzhrv commented on GitHub (Jan 9, 2026): > [@a-dmx](https://github.com/a-dmx) I don't think so :) I think they do, bud. But have you checked? Check and tell us.
Author
Owner

@romankovalov commented on GitHub (Jan 9, 2026):

@a-dmx I don't think so :)

I think they do, bud. But have you checked?

Check and tell us.

I don't want to be banned

@romankovalov commented on GitHub (Jan 9, 2026): > > [@a-dmx](https://github.com/a-dmx) I don't think so :) > > I think they do, bud. But have you checked? > > Check and tell us. I don't want to be banned
Author
Owner

@kzhrv commented on GitHub (Jan 9, 2026):

@a-dmx I don't think so :)

I think they do, bud. But have you checked?
Check and tell us.

I don't want to be banned

Somebody braver thannus will try. Until then we dont spread fud.

@kzhrv commented on GitHub (Jan 9, 2026): > > > [@a-dmx](https://github.com/a-dmx) I don't think so :) > > > > > > I think they do, bud. But have you checked? > > Check and tell us. > > I don't want to be banned Somebody braver thannus will try. Until then we dont spread fud.
Author
Owner

@angelguillen10 commented on GitHub (Jan 9, 2026):

I think the bans are happening to users who changed their plan while using OAuth in OpenCode. Does that make sense? I've had Max for 4 months and I've been using OpenCode for 1 month, and so far everything's been fine.

Should I be careful now that Claude has been updated to version 2.1.2?

@angelguillen10 commented on GitHub (Jan 9, 2026): I think the bans are happening to users who changed their plan while using OAuth in OpenCode. Does that make sense? I've had Max for 4 months and I've been using OpenCode for 1 month, and so far everything's been fine. Should I be careful now that Claude has been updated to version 2.1.2?
Author
Owner

@n2k3 commented on GitHub (Jan 9, 2026):

I upgrade to from Pro to Max 5x on January 7th, I'm using opencode before that as well. Who knows what will happen, would suck to get banned though. I'm using it as intended, just not through their harness 😁

@n2k3 commented on GitHub (Jan 9, 2026): I upgrade to from Pro to Max 5x on January 7th, I'm using opencode before that as well. Who knows what will happen, would suck to get banned though. I'm using it as intended, just not through their harness 😁
Author
Owner

@harshav167 commented on GitHub (Jan 9, 2026):

For those who are worried about getting banned, on a technical level if all tools are renamed to match Claude code's signature it'll be lower chance for anthropic to detect abuse or usage outside of Claude code as mentioned in my pr

https://github.com/anomalyco/opencode-anthropic-auth/pull/11#issuecomment-3727524416

@harshav167 commented on GitHub (Jan 9, 2026): For those who are worried about getting banned, on a technical level if all tools are renamed to match Claude code's signature it'll be lower chance for anthropic to detect abuse or usage outside of Claude code as mentioned in my pr https://github.com/anomalyco/opencode-anthropic-auth/pull/11#issuecomment-3727524416
Author
Owner

@marco-kretz commented on GitHub (Jan 9, 2026):

For those who are worried about getting banned, on a technical level if all tools are renamed to match Claude code's signature it'll be lower chance for anthropic to detect abuse or usage outside of Claude code as mentioned in my pr

anomalyco/opencode-anthropic-auth#11 (comment)

This will not do it the long run. As if they are unable to do heuristic pattern analysis on HOW OC is hitting the endpoints.

@marco-kretz commented on GitHub (Jan 9, 2026): > For those who are worried about getting banned, on a technical level if all tools are renamed to match Claude code's signature it'll be lower chance for anthropic to detect abuse or usage outside of Claude code as mentioned in my pr > > [anomalyco/opencode-anthropic-auth#11 (comment)](https://github.com/anomalyco/opencode-anthropic-auth/pull/11#issuecomment-3727524416) This will not do it the long run. As if they are unable to do heuristic pattern analysis on HOW OC is hitting the endpoints.
Author
Owner

@kzhrv commented on GitHub (Jan 9, 2026):

For those who are worried about getting banned, on a technical level if all tools are renamed to match Claude code's signature it'll be lower chance for anthropic to detect abuse or usage outside of Claude code as mentioned in my pr
anomalyco/opencode-anthropic-auth#11 (comment)

This will not do it the long run. As if they are unable to do heuristic pattern analysis on HOW OC is hitting the endpoints.

@marco-kretz Are they? And why? You seem to know the why.

@kzhrv commented on GitHub (Jan 9, 2026): > > For those who are worried about getting banned, on a technical level if all tools are renamed to match Claude code's signature it'll be lower chance for anthropic to detect abuse or usage outside of Claude code as mentioned in my pr > > [anomalyco/opencode-anthropic-auth#11 (comment)](https://github.com/anomalyco/opencode-anthropic-auth/pull/11#issuecomment-3727524416) > > This will not do it the long run. As if they are unable to do heuristic pattern analysis on HOW OC is hitting the endpoints. @marco-kretz Are they? And why? You seem to know the why.
Author
Owner

@marco-kretz commented on GitHub (Jan 9, 2026):

Okay, I don't know how legally safe this is, but I filed a complain on the support chat(-bot). Here is the translated (from German) transscript:

Fin AI Agent • AI Agent • 4 m Hello! I am an AI-powered chatbot for Anthropic. The use of this chatbot and chat data is monitored, stored, and used by Anthropic and our third-party chatbot provider (Intercom) to provide better customer support, improve our services, and for other purposes consistent with our Privacy Policy (Link). Please indicate whether you agree to these terms of use.

Marco • 4 m Accept

Marco • 4 m Technical Issues/Bugs

Marco • 4 m I have always used OpenCode until yesterday because it is simply the better tool FOR ME compared to Claude Code. Now I see today that you are implementing blocks so that users only use your own tool. What is this proprietary crap? I like your models, but an action like this certainly won't make me renew my subscription. wtf.

Fin AI Agent • AI Agent • 3 m I can understand that this is frustrating. According to our current system data, there are no active disruptions or changes that would block OpenCode. We have not implemented any blocks to force users to only use Claude Code. Claude Code is an additional tool that we offer for Team and Enterprise customers with premium seats, but it is not intended to replace or block other tools. If you are having problems with OpenCode, it could be a technical issue unrelated to our services. Have you received specific error messages, or is OpenCode simply no longer working as usual?

Marco • 2 m Yes, you have; the internet is full of reports about it. https://github.com/anomalyco/opencode/issues/7410 So are you confirming to me right now that it is 100% okay and does not violate the TOS if I use a tool other than Claude Code with the Claude Max subscription?

Fin AI Agent • AI Agent • 1 m Yes, you can use other tools with your Max subscription. We do not actively block other development tools - that would also be technically difficult to implement. Claude Code is an additional tool included in your subscription, but you are not required to use it. Your usage limits apply to all our products together (claude.ai, Claude Code, Desktop app), but that does not mean you are only allowed to use our tools. If OpenCode has problems, it is likely due to their own implementation or API changes, not targeted blocking on our part.

Fin AI Agent • AI Agent • Just now Was this helpful?

anthropic_2026_01_09_215472611486066.txt

@marco-kretz commented on GitHub (Jan 9, 2026): Okay, I don't know how legally safe this is, but I filed a complain on the support chat(-bot). Here is the translated (from German) transscript: > Fin AI Agent • AI Agent • 4 m Hello! I am an AI-powered chatbot for Anthropic. The use of this chatbot and chat data is monitored, stored, and used by Anthropic and our third-party chatbot provider (Intercom) to provide better customer support, improve our services, and for other purposes consistent with our Privacy Policy (Link). Please indicate whether you agree to these terms of use. > > Marco • 4 m Accept > > Marco • 4 m Technical Issues/Bugs > > Marco • 4 m I have always used OpenCode until yesterday because it is simply the better tool FOR ME compared to Claude Code. Now I see today that you are implementing blocks so that users only use your own tool. What is this proprietary crap? I like your models, but an action like this certainly won't make me renew my subscription. wtf. > > Fin AI Agent • AI Agent • 3 m I can understand that this is frustrating. According to our current system data, there are no active disruptions or changes that would block OpenCode. We have not implemented any blocks to force users to only use Claude Code. Claude Code is an additional tool that we offer for Team and Enterprise customers with premium seats, but it is not intended to replace or block other tools. If you are having problems with OpenCode, it could be a technical issue unrelated to our services. Have you received specific error messages, or is OpenCode simply no longer working as usual? > > Marco • 2 m Yes, you have; the internet is full of reports about it. https://github.com/anomalyco/opencode/issues/7410 So are you confirming to me right now that it is 100% okay and does not violate the TOS if I use a tool other than Claude Code with the Claude Max subscription? > > Fin AI Agent • AI Agent • 1 m Yes, you can use other tools with your Max subscription. We do not actively block other development tools - that would also be technically difficult to implement. Claude Code is an additional tool included in your subscription, but you are not required to use it. Your usage limits apply to all our products together (claude.ai, Claude Code, Desktop app), but that does not mean you are only allowed to use our tools. If OpenCode has problems, it is likely due to their own implementation or API changes, not targeted blocking on our part. > > Fin AI Agent • AI Agent • Just now Was this helpful? [anthropic_2026_01_09_215472611486066.txt](https://github.com/user-attachments/files/24528748/anthropic_2026_01_09_215472611486066.txt)
Author
Owner

@marco-kretz commented on GitHub (Jan 9, 2026):

For those who are worried about getting banned, on a technical level if all tools are renamed to match Claude code's signature it'll be lower chance for anthropic to detect abuse or usage outside of Claude code as mentioned in my pr
anomalyco/opencode-anthropic-auth#11 (comment)

This will not do it the long run. As if they are unable to do heuristic pattern analysis on HOW OC is hitting the endpoints.

@marco-kretz Are they? And why? You seem to know the why.

This is pure speculation. It would make sense for them to lock users into their ecosystem after baiting them with Opus 4.5.

@marco-kretz commented on GitHub (Jan 9, 2026): > > > For those who are worried about getting banned, on a technical level if all tools are renamed to match Claude code's signature it'll be lower chance for anthropic to detect abuse or usage outside of Claude code as mentioned in my pr > > > [anomalyco/opencode-anthropic-auth#11 (comment)](https://github.com/anomalyco/opencode-anthropic-auth/pull/11#issuecomment-3727524416) > > > > > > This will not do it the long run. As if they are unable to do heuristic pattern analysis on HOW OC is hitting the endpoints. > > [@marco-kretz](https://github.com/marco-kretz) Are they? And why? You seem to know the why. This is pure speculation. It would make sense for them to lock users into their ecosystem after baiting them with Opus 4.5.
Author
Owner

@kzhrv commented on GitHub (Jan 9, 2026):

For those who are worried about getting banned, on a technical level if all tools are renamed to match Claude code's signature it'll be lower chance for anthropic to detect abuse or usage outside of Claude code as mentioned in my pr
anomalyco/opencode-anthropic-auth#11 (comment)

This will not do it the long run. As if they are unable to do heuristic pattern analysis on HOW OC is hitting the endpoints.

@marco-kretz Are they? And why? You seem to know the why.

This is pure speculation. It would make sense for them to lock users into their ecosystem after baiting them with Opus 4.5.

@marco-kretz Users are already using their model. Users are already training their future models. Users are already paying. What is claude code in this frame, but a worse version of opencode? Why insist? Ego?

Now if they couple deeper analytics in tracing in claude code, and future tracing is a must, then this cuts all agents.

@kzhrv commented on GitHub (Jan 9, 2026): > > > > For those who are worried about getting banned, on a technical level if all tools are renamed to match Claude code's signature it'll be lower chance for anthropic to detect abuse or usage outside of Claude code as mentioned in my pr > > > > [anomalyco/opencode-anthropic-auth#11 (comment)](https://github.com/anomalyco/opencode-anthropic-auth/pull/11#issuecomment-3727524416) > > > > > > > > > This will not do it the long run. As if they are unable to do heuristic pattern analysis on HOW OC is hitting the endpoints. > > > > > > [@marco-kretz](https://github.com/marco-kretz) Are they? And why? You seem to know the why. > > This is pure speculation. It would make sense for them to lock users into their ecosystem after baiting them with Opus 4.5. @marco-kretz Users are already using their model. Users are already training their future models. Users are already paying. What is claude code in this frame, but a worse version of opencode? Why insist? Ego? Now if they couple deeper analytics in tracing in claude code, and future tracing is a must, then this cuts all agents.
Author
Owner

@adamkdean commented on GitHub (Jan 9, 2026):

It would be better for @anthropics to offer a Claude as a Subscription regardless of whether you use Claude Code or not. Usage is usage at the end of the day, is Claude Code the product or are Haiku/Sonnet/Opus the models?

@adamkdean commented on GitHub (Jan 9, 2026): It would be better for @anthropics to offer a Claude as a Subscription regardless of whether you use Claude Code or not. Usage is usage at the end of the day, is Claude Code the product or are Haiku/Sonnet/Opus the models?
Author
Owner

@PauloDevelo commented on GitHub (Jan 9, 2026):

Image
@PauloDevelo commented on GitHub (Jan 9, 2026): <img width="505" height="787" alt="Image" src="https://github.com/user-attachments/assets/d2d072d8-1616-4ba0-8bd5-03820db2e784" />
Author
Owner

@selectnull commented on GitHub (Jan 9, 2026):

Image
@selectnull commented on GitHub (Jan 9, 2026): <img width="575" height="872" alt="Image" src="https://github.com/user-attachments/assets/96ed0299-667d-42dd-b112-3e75f0f0ec79" />
Author
Owner

@rdvo commented on GitHub (Jan 9, 2026):

Cat and mouse can work but if they start sending c&d to Opencode and others it gets ugly , they won't legally be allowed to keep PR like this on the repo

Just depends if Anthropic would go that far, would be bad PR for developers and kinda against the whole ethos of "hacker" eng culture. They have a decision to make, on one end they want to keep CC as the primary tool, but in that same regard: just ship a better product and cream rises to the drop.

Let's see why they do next

Also as for the tool calling issues in frontend, need to make sure you transform back the tool names to what the desktop / frontend app is excepting before it hits the frontend

@rdvo commented on GitHub (Jan 9, 2026): Cat and mouse can work but if they start sending c&d to Opencode and others it gets ugly , they won't legally be allowed to keep PR like this on the repo Just depends if Anthropic would go that far, would be bad PR for developers and kinda against the whole ethos of "hacker" eng culture. They have a decision to make, on one end they want to keep CC as the primary tool, but in that same regard: just ship a better product and cream rises to the drop. Let's see why they do next Also as for the tool calling issues in frontend, need to make sure you transform back the tool names to what the desktop / frontend app is excepting before it hits the frontend
Author
Owner

@eliziario commented on GitHub (Jan 9, 2026):

I had great success using GLM 4.6 on Cerebras Inference with Open Code. Just FYI.

@eliziario commented on GitHub (Jan 9, 2026): I had great success using GLM 4.6 on Cerebras Inference with Open Code. Just FYI.
Author
Owner

@rickbassham commented on GitHub (Jan 9, 2026):

Issue is back after it was working with the updated plugin.

@rickbassham commented on GitHub (Jan 9, 2026): Issue is back after it was working with the updated plugin.
Author
Owner

@paulp-o commented on GitHub (Jan 9, 2026):

Issue is back with new opencode-anthropic-auth applied.

@paulp-o commented on GitHub (Jan 9, 2026): Issue is back with new opencode-anthropic-auth applied.
Author
Owner

@nullStack65 commented on GitHub (Jan 9, 2026):

opencode.json fix no longer works :(. at least i got a few hours in first! any news on new fix in this cat and mouse game to get it working for now?

@nullStack65 commented on GitHub (Jan 9, 2026): opencode.json fix no longer works :(. at least i got a few hours in first! any news on new fix in this cat and mouse game to get it working for now?
Author
Owner

@lucaschallamel commented on GitHub (Jan 9, 2026):

Same here, the quick fix from this morning does not work anymore, so I am seriously considering cancelling my CLAUDE MAX 200 subscription, with such a racketing attitude from ANTHROPIC !

@lucaschallamel commented on GitHub (Jan 9, 2026): Same here, the quick fix from this morning does not work anymore, so I am seriously considering cancelling my CLAUDE MAX 200 subscription, with such a racketing attitude from ANTHROPIC !
Author
Owner

@paulp-o commented on GitHub (Jan 9, 2026):

maybe the approach to using claude code headless commands, or using claude code sdk or even ACP might be the way. They're being too stubborn like hell

@paulp-o commented on GitHub (Jan 9, 2026): maybe the approach to using claude code headless commands, or using claude code sdk or even ACP might be the way. They're being too stubborn like hell
Author
Owner

@nrminor commented on GitHub (Jan 9, 2026):

opencode.json fix no longer works :(. at least i got a few hours in first! any news on new fix in this cat and mouse game to get it working for now?

Same here. Sad the whackamole is already happening this quickly. I was hoping we'd at least get a Friday of work out of it!

@nrminor commented on GitHub (Jan 9, 2026): > opencode.json fix no longer works :(. at least i got a few hours in first! any news on new fix in this cat and mouse game to get it working for now? Same here. Sad the whackamole is already happening this quickly. I was hoping we'd at least get a Friday of work out of it!
Author
Owner

@nullStack65 commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).

Worked like a charm!

This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)?

@nullStack65 commented on GitHub (Jan 9, 2026): > > This worked for me: > > > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > > > ``` > > "plugin": [ > > "opencode-anthropic-auth@0.0.7", > > ], > > ``` > > > > > > > > > > > > > > > > > > > > > > > > > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude). > > Worked like a charm! This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)?
Author
Owner

@Jeremie-m commented on GitHub (Jan 9, 2026):

The flow broke again as of right now

@Jeremie-m commented on GitHub (Jan 9, 2026): The flow broke again as of right now
Author
Owner

@moinulmoin commented on GitHub (Jan 9, 2026):

The flow broke again as of right now

agree

@moinulmoin commented on GitHub (Jan 9, 2026): > The flow broke again as of right now agree
Author
Owner

@malhashemi commented on GitHub (Jan 9, 2026):

I had great success using GLM 4.6 on Cerebras Inference with Open Code. Just FYI.

They added support for GLM 4.7 yesterday I heard

@malhashemi commented on GitHub (Jan 9, 2026): > I had great success using GLM 4.6 on Cerebras Inference with Open Code. Just FYI. They added support for GLM 4.7 yesterday I heard
Author
Owner

@Altamimi-Dev commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).

Worked like a charm!

This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)?

same
This credential is only authorized for use with Claude Code and cannot be used for other API requests.

@Altamimi-Dev commented on GitHub (Jan 9, 2026): > > > This worked for me: > > > > > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > > > > > ``` > > > "plugin": [ > > > "opencode-anthropic-auth@0.0.7", > > > ], > > > ``` > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude). > > > > > > Worked like a charm! > > This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)? same This credential is only authorized for use with Claude Code and cannot be used for other API requests.
Author
Owner

@nullStack65 commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).

Worked like a charm!

This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)?

same This credential is only authorized for use with Claude Code and cannot be used for other API requests.

crazy they already patched the workaround

@nullStack65 commented on GitHub (Jan 9, 2026): > > > > This worked for me: > > > > > > > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > > > > > > > ``` > > > > "plugin": [ > > > > "opencode-anthropic-auth@0.0.7", > > > > ], > > > > ``` > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude). > > > > > > > > > Worked like a charm! > > > > > > This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)? > > same This credential is only authorized for use with Claude Code and cannot be used for other API requests. crazy they already patched the workaround
Author
Owner

@angelguillen10 commented on GitHub (Jan 9, 2026):

Same here, it's not working for me anymore. Any updates? @harshav167

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).
@angelguillen10 commented on GitHub (Jan 9, 2026): Same here, it's not working for me anymore. Any updates? @harshav167 > This worked for me: > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > ``` > "plugin": [ > "opencode-anthropic-auth@0.0.7", > ], > ``` > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).
Author
Owner

@Linkk93 commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).

Worked like a charm!

This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)?

same This credential is only authorized for use with Claude Code and cannot be used for other API requests.

crazy they already patched the workaround

I mean, they are probably also reading this

@Linkk93 commented on GitHub (Jan 9, 2026): > > > > > This worked for me: > > > > > > > > > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > > > > > > > > > ``` > > > > > "plugin": [ > > > > > "opencode-anthropic-auth@0.0.7", > > > > > ], > > > > > ``` > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude). > > > > > > > > > > > > Worked like a charm! > > > > > > > > > This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)? > > > > > > same This credential is only authorized for use with Claude Code and cannot be used for other API requests. > > crazy they already patched the workaround I mean, they are probably also reading this
Author
Owner

@angelguillen10 commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).

Worked like a charm!

This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)?

same This credential is only authorized for use with Claude Code and cannot be used for other API requests.

crazy they already patched the workaround

I mean, they are probably also reading this

If they read this, they should know that they are losing customers.

@angelguillen10 commented on GitHub (Jan 9, 2026): > > > > > > This worked for me: > > > > > > > > > > > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > > > > > > > > > > > ``` > > > > > > "plugin": [ > > > > > > "opencode-anthropic-auth@0.0.7", > > > > > > ], > > > > > > ``` > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude). > > > > > > > > > > > > > > > Worked like a charm! > > > > > > > > > > > > This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)? > > > > > > > > > same This credential is only authorized for use with Claude Code and cannot be used for other API requests. > > > > > > crazy they already patched the workaround > > I mean, they are probably also reading this If they read this, they should know that they are losing customers.
Author
Owner

@UltraInstinct0x commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).

Worked like a charm!

This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)?

same This credential is only authorized for use with Claude Code and cannot be used for other API requests.

crazy they already patched the workaround

Why would someone work relentlessly to prevent their users from logging in to a better open source project with their paid subscriptions instead of making their product actually as good as the open source one?
Go to hell Anthropic, really..

@UltraInstinct0x commented on GitHub (Jan 9, 2026): > > > > > This worked for me: > > > > > > > > > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > > > > > > > > > ``` > > > > > "plugin": [ > > > > > "opencode-anthropic-auth@0.0.7", > > > > > ], > > > > > ``` > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude). > > > > > > > > > > > > Worked like a charm! > > > > > > > > > This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)? > > > > > > same This credential is only authorized for use with Claude Code and cannot be used for other API requests. > > crazy they already patched the workaround Why would someone work relentlessly to prevent their users from logging in to a better open source project with their paid subscriptions instead of making their product actually as good as the open source one? Go to hell Anthropic, really..
Author
Owner

@nullStack65 commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).

Worked like a charm!

This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)?

same This credential is only authorized for use with Claude Code and cannot be used for other API requests.

crazy they already patched the workaround

I mean, they are probably also reading this

lol for sure. but for them to care that much and roll it out that quickly is still wild to me. was expecting at least the rest of the day to work fine. But i guess they are actively monitoring it which shows its important enough to them for them to do so.

@nullStack65 commented on GitHub (Jan 9, 2026): > > > > > > This worked for me: > > > > > > > > > > > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > > > > > > > > > > > ``` > > > > > > "plugin": [ > > > > > > "opencode-anthropic-auth@0.0.7", > > > > > > ], > > > > > > ``` > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude). > > > > > > > > > > > > > > > Worked like a charm! > > > > > > > > > > > > This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)? > > > > > > > > > same This credential is only authorized for use with Claude Code and cannot be used for other API requests. > > > > > > crazy they already patched the workaround > > I mean, they are probably also reading this lol for sure. but for them to care that much and roll it out that quickly is still wild to me. was expecting at least the rest of the day to work fine. But i guess they are actively monitoring it which shows its important enough to them for them to do so.
Author
Owner

@blost-fyi commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).

Worked like a charm!

This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)?

same This credential is only authorized for use with Claude Code and cannot be used for other API requests.

crazy they already patched the workaround

I mean, they are probably also reading this

And an army of Claude Code instances doubling down on the patches... a heads up or an email explaining the changes would have been nice but I guess that's why the gave us 2x credits on christmas

@blost-fyi commented on GitHub (Jan 9, 2026): > > > > > > This worked for me: > > > > > > > > > > > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > > > > > > > > > > > ``` > > > > > > "plugin": [ > > > > > > "opencode-anthropic-auth@0.0.7", > > > > > > ], > > > > > > ``` > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude). > > > > > > > > > > > > > > > Worked like a charm! > > > > > > > > > > > > This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)? > > > > > > > > > same This credential is only authorized for use with Claude Code and cannot be used for other API requests. > > > > > > crazy they already patched the workaround > > I mean, they are probably also reading this And an army of Claude Code instances doubling down on the patches... a heads up or an email explaining the changes would have been nice but I guess that's why the gave us 2x credits on christmas
Author
Owner

@nullStack65 commented on GitHub (Jan 9, 2026):

anyone thats using Anthropic and reading this should cancel their subscription. even if you still plan on using it through claude code, you will have the rest of your payment period to continue using your plan. once it gets close to ending or ends, you can always resubscribe. its about sending the message to anthropic.

@nullStack65 commented on GitHub (Jan 9, 2026): anyone thats using Anthropic and reading this should cancel their subscription. even if you still plan on using it through claude code, you will have the rest of your payment period to continue using your plan. once it gets close to ending or ends, you can always resubscribe. its about sending the message to anthropic.
Author
Owner

@paulp-o commented on GitHub (Jan 9, 2026):

This worked for me:

  • Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7:
    "plugin": [
    "opencode-anthropic-auth@0.0.7",
  ],
  • Then restart OpenCode and run opencode auth login (choose Anthropic/Claude).

Worked like a charm!

This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)?

same This credential is only authorized for use with Claude Code and cannot be used for other API requests.

crazy they already patched the workaround

I mean, they are probably also reading this

If so, I just want to assert Anthropic guys that this is a worst move that you would make as an AI comany and effectively admitting you're destined of not being competitive starting in this year.

I get that they're essentially scared that when they lose lead to another AI model, people would just switch out Claude to something else and stop paying. so you'd want to lock in people.

But this move would just make people decide such switch earlier, which is NOW.

@paulp-o commented on GitHub (Jan 9, 2026): > > > > > > This worked for me: > > > > > > > > > > > > * Updated ~/.config/opencode/opencode.json to add opencode-anthropic-auth@0.0.7: > > > > > > > > > > > > ``` > > > > > > "plugin": [ > > > > > > "opencode-anthropic-auth@0.0.7", > > > > > > ], > > > > > > ``` > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > * Then restart OpenCode and run opencode auth login (choose Anthropic/Claude). > > > > > > > > > > > > > > > Worked like a charm! > > > > > > > > > > > > This fix no longer works :(. at least i got a few hours in first! any news on where the repo is going from here? Hopefully will keep playing cat and mouse while allowed to do so (no legal letters)? > > > > > > > > > same This credential is only authorized for use with Claude Code and cannot be used for other API requests. > > > > > > crazy they already patched the workaround > > I mean, they are probably also reading this If so, I just want to assert Anthropic guys that this is a **worst move** that you would make as an AI comany and effectively admitting you're destined of not being competitive starting in this year. I get that they're essentially scared that when they lose lead to another AI model, people would just switch out Claude to something else and stop paying. so you'd want to lock in people. But this move would just make people decide such switch earlier, which is **NOW**.
Author
Owner

@shawnyeager commented on GitHub (Jan 9, 2026):

FWIW: https://github.com/anthropics/claude-code/issues/17118

@shawnyeager commented on GitHub (Jan 9, 2026): FWIW: https://github.com/anthropics/claude-code/issues/17118
Author
Owner

@nullStack65 commented on GitHub (Jan 9, 2026):

FWIW: anthropics/claude-code#17118

everyone should comment in this claude-code thread too!

@nullStack65 commented on GitHub (Jan 9, 2026): > FWIW: [anthropics/claude-code#17118](https://github.com/anthropics/claude-code/issues/17118) everyone should comment in this claude-code thread too!
Author
Owner

@ten3roberts commented on GitHub (Jan 9, 2026):

Thank you ❤️

Agree, this is inconvenient, and not nice.

We pay for the usage for a reason, to use Claude for coding, and shutting out competitors this way only hurts, as it reduces innovation and stifling expirementation that can be learnt, so it is a loss-loss.

OpenCode has a serious UX improvement over ClaudeCode, and while using both, OpenCode (especially with my neovim integration) simply beats it by miles, and is much easier to configure, with better and much faster calls and UI overall.

@ten3roberts commented on GitHub (Jan 9, 2026): Thank you ❤️ Agree, this is inconvenient, and not nice. We pay for the usage for a reason, to use Claude for coding, and shutting out competitors this way only hurts, as it reduces innovation and stifling expirementation that can be learnt, so it is a loss-loss. OpenCode has a serious UX improvement over ClaudeCode, and while using both, OpenCode (especially with my neovim integration) simply beats it by miles, and is much easier to configure, with better and much faster calls and UI overall.
Author
Owner

@nullStack65 commented on GitHub (Jan 9, 2026):

If only ram prices weren't crazy, id just go full local :(

@nullStack65 commented on GitHub (Jan 9, 2026): If only ram prices weren't crazy, id just go full local :(
Author
Owner

@kiyoakii commented on GitHub (Jan 9, 2026):

canceled my Claude max subscription. No opencode, no subscription.

@kiyoakii commented on GitHub (Jan 9, 2026): canceled my Claude max subscription. No opencode, no subscription.
Author
Owner

@wolfeweeks commented on GitHub (Jan 9, 2026):

Just cancelled my claude max subscription. I hope they are reading this

@wolfeweeks commented on GitHub (Jan 9, 2026): Just cancelled my claude max subscription. I hope they are reading this
Author
Owner

@Davincible commented on GitHub (Jan 9, 2026):

The funny thing is that they are doing this while CC is more broken than ever. Its literally not even a viable alternative. Makes every request double (with and without streaming) and a shit ton of background activity. If CC was actually good to use we could consider but its absolute vibe coded trash

@Davincible commented on GitHub (Jan 9, 2026): The funny thing is that they are doing this while CC is more broken than ever. Its literally not even a viable alternative. Makes every request double (with and without streaming) and a shit ton of background activity. If CC was actually good to use we could consider but its absolute vibe coded trash
Author
Owner

@kzhrv commented on GitHub (Jan 9, 2026):

I cancelled as well. Cheeky buggers.

edit: Max 20x.

@kzhrv commented on GitHub (Jan 9, 2026): I cancelled as well. Cheeky buggers. edit: Max 20x.
Author
Owner

@dragomirweb commented on GitHub (Jan 9, 2026):

Just cancelled my claude max subscription as well (was using around 5-10% of it anyway). I think the majority of us are using it normaly . Consumer hardware prices are now insane, they want us bound to the cloud

@dragomirweb commented on GitHub (Jan 9, 2026): Just cancelled my claude max subscription as well (was using around 5-10% of it anyway). I think the majority of us are using it normaly . Consumer hardware prices are now insane, they want us bound to the cloud
Author
Owner

@43034r commented on GitHub (Jan 9, 2026):

Nobody knows how to get a refund for the remaining months of the subscription or their support email?

@43034r commented on GitHub (Jan 9, 2026): Nobody knows how to get a refund for the remaining months of the subscription or their support email?
Author
Owner

@stephengolub commented on GitHub (Jan 9, 2026):

Anybody writing a plugin to make the claude code cli work like any other model inside opencode?

@stephengolub commented on GitHub (Jan 9, 2026): Anybody writing a plugin to make the claude code cli work like any other model inside opencode?
Author
Owner

@a-dmx commented on GitHub (Jan 9, 2026):

Anybody writing a plugin to make the claude code cli work like any other model inside opencode?

someone did, stopped working within few hours :(

@a-dmx commented on GitHub (Jan 9, 2026): > Anybody writing a plugin to make the claude code cli work like any other model inside opencode? someone did, stopped working within few hours :(
Author
Owner

@rdvo commented on GitHub (Jan 9, 2026):

Yea if someone just wraps the Claude code CLI jsonl output mode then treats that as the harness in opencode for any model from Anthropic provider could be viable, will be kinda annoying to do tho

@rdvo commented on GitHub (Jan 9, 2026): Yea if someone just wraps the Claude code CLI jsonl output mode then treats that as the harness in opencode for any model from Anthropic provider could be viable, will be kinda annoying to do tho
Author
Owner

@co-l commented on GitHub (Jan 9, 2026):

Yea if someone just wraps the Claude code CLI jsonl output mode then treats that as the harness in opencode for any model from Anthropic provider could be viable, will be kinda annoying to do tho

How could we manage the context to make this work? I'm happy to contribute to this, but this is where I don't see how we can overcome this.

@co-l commented on GitHub (Jan 9, 2026): > Yea if someone just wraps the Claude code CLI jsonl output mode then treats that as the harness in opencode for any model from Anthropic provider could be viable, will be kinda annoying to do tho How could we manage the context to make this work? I'm happy to contribute to this, but this is where I don't see how we can overcome this.
Author
Owner

@spiffytech commented on GitHub (Jan 9, 2026):

if someone just wraps the Claude code CLI jsonl output mode then treats that as the harness in opencode for any model from Anthropic provider could be viable

Kilo Code does this but it's not reliable. Claude Code runs its own business logic over the model inputs/outputs and often swallows the tool calls, especially with Haiku.

@spiffytech commented on GitHub (Jan 9, 2026): > if someone just wraps the Claude code CLI jsonl output mode then treats that as the harness in opencode for any model from Anthropic provider could be viable Kilo Code does this but it's not reliable. Claude Code runs its own business logic over the model inputs/outputs and often swallows the tool calls, especially with Haiku.
Author
Owner

@rdvo commented on GitHub (Jan 9, 2026):

Would have to pull the logs from Claude code into the session logs that open code stores locally etc

Could be done just need to parse all the output from Claude code headless and transform it to fit what open code expects then basically sidecar it into the main app so the frontend just thinks it's coming from the Claude code harness

@rdvo commented on GitHub (Jan 9, 2026): Would have to pull the logs from Claude code into the session logs that open code stores locally etc Could be done just need to parse all the output from Claude code headless and transform it to fit what open code expects then basically sidecar it into the main app so the frontend just thinks it's coming from the Claude code harness
Author
Owner

@dburkland commented on GitHub (Jan 9, 2026):

Not a great way to start the morning, guess I'm cancelling my subscription (AGAIN)

Image
@dburkland commented on GitHub (Jan 9, 2026): Not a great way to start the morning, guess I'm cancelling my subscription (AGAIN) <img width="1376" height="289" alt="Image" src="https://github.com/user-attachments/assets/d11ec04e-0af1-4b95-8011-8f57a07f1936" />
Author
Owner

@43034r commented on GitHub (Jan 9, 2026):

Image It looks like there's no hope. Let's wish Anthropic the same fate as Skype!

@43034r commented on GitHub (Jan 9, 2026): <img width="1229" height="920" alt="Image" src="https://github.com/user-attachments/assets/a9b388bb-d221-4767-9859-15c3619d14fd" /> It looks like there's no hope. Let's wish Anthropic the same fate as Skype!
Author
Owner

@matty-cakes commented on GitHub (Jan 9, 2026):

Could be done just need to parse all the output from Claude code headless and transform it to fit what open code expects then basically sidecar it into the main app so the frontend just thinks it's coming from the Claude code harness

He make uh duh proxy 🇮🇹

@matty-cakes commented on GitHub (Jan 9, 2026): > Could be done just need to parse all the output from Claude code headless and transform it to fit what open code expects then basically sidecar it into the main app so the frontend just thinks it's coming from the Claude code harness He make uh duh proxy 🇮🇹
Author
Owner

@CastAIPhil commented on GitHub (Jan 9, 2026):

Image It looks like there's no hope. Let's wish Anthropic the same fate as Skype!

If you paid with a credit card you could dispute the charges due to the service not being functional during the period of the subscription.

@CastAIPhil commented on GitHub (Jan 9, 2026): > <img alt="Image" width="1229" height="920" src="https://private-user-images.githubusercontent.com/91538748/533962931-a9b388bb-d221-4767-9859-15c3619d14fd.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njc5NzMxNjksIm5iZiI6MTc2Nzk3Mjg2OSwicGF0aCI6Ii85MTUzODc0OC81MzM5NjI5MzEtYTliMzg4YmItZDIyMS00NzY3LTk4NTktMTVjMzYxOWQxNGZkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTA5VDE1MzQyOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI4MWZiZTc5ZjkxNzM3M2NkNDYyNDQyMzQzMzBkODYyOTc3YmNiODIxMjNiOWM4NTZjNTA3YWFhMDAwZjQ5NGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.sGrGezgEtvsAo4CRLY7vUjziejPyrhOTHT-Nw0KbNvs"> It looks like there's no hope. Let's wish Anthropic the same fate as Skype! If you paid with a credit card you could dispute the charges due to the service not being functional during the period of the subscription.
Author
Owner

@henrythor commented on GitHub (Jan 9, 2026):

Cancelled my team seat for Claude, I expect other coworkers to follow suit. Using Opencode Zen now

@henrythor commented on GitHub (Jan 9, 2026): Cancelled my team seat for Claude, I expect other coworkers to follow suit. Using Opencode Zen now
Author
Owner

@apereiracvo commented on GitHub (Jan 9, 2026):

Can't believe I was just installing OC today to switch from CC and this happens :'()

@apereiracvo commented on GitHub (Jan 9, 2026): Can't believe I was just installing OC today to switch from CC and this happens :'()
Author
Owner

@remy90 commented on GitHub (Jan 9, 2026):

Cancelled my max sub.

@remy90 commented on GitHub (Jan 9, 2026): Cancelled my max sub.
Author
Owner

@willian commented on GitHub (Jan 9, 2026):

Cancelled my team seat for Claude, I expect other coworkers to follow suit. Using Opencode Zen now

How are you using Zen? Are you using it with Claude API or another provider?

@willian commented on GitHub (Jan 9, 2026): > Cancelled my team seat for Claude, I expect other coworkers to follow suit. Using Opencode Zen now How are you using Zen? Are you using it with Claude API or another provider?
Author
Owner

@henrythor commented on GitHub (Jan 9, 2026):

Cancelled my team seat for Claude, I expect other coworkers to follow suit. Using Opencode Zen now

How are you using Zen? Are you using it with Claude API or another provider?

https://opencode.ai/docs/zen/

@henrythor commented on GitHub (Jan 9, 2026): > > Cancelled my team seat for Claude, I expect other coworkers to follow suit. Using Opencode Zen now > > How are you using Zen? Are you using it with Claude API or another provider? https://opencode.ai/docs/zen/
Author
Owner

@daut commented on GitHub (Jan 9, 2026):

Image It looks like there's no hope. Let's wish Anthropic the same fate as Skype!

Image
@daut commented on GitHub (Jan 9, 2026): > <img alt="Image" width="1229" height="920" src="https://private-user-images.githubusercontent.com/91538748/533962931-a9b388bb-d221-4767-9859-15c3619d14fd.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njc5NzQ2MjgsIm5iZiI6MTc2Nzk3NDMyOCwicGF0aCI6Ii85MTUzODc0OC81MzM5NjI5MzEtYTliMzg4YmItZDIyMS00NzY3LTk4NTktMTVjMzYxOWQxNGZkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTA5VDE1NTg0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg1Mzc0YjBkYWQyMzAzMzYwOTVhNGY5ZWQzM2ZjNDJhY2VlYWQzNzk2MWJiODUzZTc3NDUxN2MyNWZkYmQxYTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RDp-1BxSXJvrRux3Xn4zpZacLFx-jsf1YYnoDYTCEOE"> It looks like there's no hope. Let's wish Anthropic the same fate as Skype! <img width="406" height="706" alt="Image" src="https://github.com/user-attachments/assets/338eb477-c13a-48d4-b571-ed441a647aad" />
Author
Owner

@UltraInstinct0x commented on GitHub (Jan 9, 2026):

I love Apple's Refund Policy.

@UltraInstinct0x commented on GitHub (Jan 9, 2026): I love Apple's Refund Policy.
Author
Owner

@a-dmx commented on GitHub (Jan 9, 2026):

Cancelled my team seat for Claude, I expect other coworkers to follow suit. Using Opencode Zen now

How are you using Zen? Are you using it with Claude API or another provider?

https://opencode.ai/docs/zen/

But there's no subscription with renewable limits, only crude token billing?

@a-dmx commented on GitHub (Jan 9, 2026): > > > Cancelled my team seat for Claude, I expect other coworkers to follow suit. Using Opencode Zen now > > > > > > How are you using Zen? Are you using it with Claude API or another provider? > > https://opencode.ai/docs/zen/ But there's no subscription with renewable limits, only crude token billing?
Author
Owner

@a-dmx commented on GitHub (Jan 9, 2026):

Image It looks like there's no hope. Let's wish Anthropic the same fate as Skype!

Image
@a-dmx commented on GitHub (Jan 9, 2026): > <img alt="Image" width="1229" height="920" src="https://private-user-images.githubusercontent.com/91538748/533962931-a9b388bb-d221-4767-9859-15c3619d14fd.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njc5NzU3NjEsIm5iZiI6MTc2Nzk3NTQ2MSwicGF0aCI6Ii85MTUzODc0OC81MzM5NjI5MzEtYTliMzg4YmItZDIyMS00NzY3LTk4NTktMTVjMzYxOWQxNGZkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTA5VDE2MTc0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEzNWQxNzE2YjdhNzU2NWMxNjJhMDhlN2YxMWUwNGMxZDc2ZGVhOTViZmY2M2M3MWU2ZDZlZDM2ZjYwODA5ZjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.qMc9Oe-EQh5cTzXqOAonyDWCneQFQvg1M-2aXEnQIkY"> It looks like there's no hope. Let's wish Anthropic the same fate as Skype! <img width="1192" height="457" alt="Image" src="https://github.com/user-attachments/assets/9090697f-8f00-427a-ae0d-7a84104cea46" />
Author
Owner

@LicketySpliket commented on GitHub (Jan 9, 2026):

Another quick fix is to title case id in tool calls:

You can patch your tool.ts to automatically convert all id to title case.

  export function define<Parameters extends z.ZodType, Result extends Metadata>(
    id: string,
    init: Info<Parameters, Result>["init"] | Awaited<ReturnType<Info<Parameters, Result>["init"]>>,
  ): Info<Parameters, Result> {
    id = id.replace(
      /\w\S*/g,
      text => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase()
    );
@LicketySpliket commented on GitHub (Jan 9, 2026): Another quick fix is to title case `id` in tool calls: You can patch your tool.ts to automatically convert all `id` to title case. ``` export function define<Parameters extends z.ZodType, Result extends Metadata>( id: string, init: Info<Parameters, Result>["init"] | Awaited<ReturnType<Info<Parameters, Result>["init"]>>, ): Info<Parameters, Result> { id = id.replace( /\w\S*/g, text => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase() ); ```
Author
Owner

@JoshuaDietz commented on GitHub (Jan 9, 2026):

I requested a refund over their chatbot, took 2 minutes, they already confirmed the refund.
Go to https://claude.ai/new, click on your profile in the bottom left, click "request help", chat with the bot and request a refund (I used the refund reason "other").
Not sure if maybe it only worked for me because I've made the subscription less than 24 hours ago. Wishing everyone luck that the refund works

@JoshuaDietz commented on GitHub (Jan 9, 2026): I requested a refund over their chatbot, took 2 minutes, they already confirmed the refund. Go to https://claude.ai/new, click on your profile in the bottom left, click "request help", chat with the bot and request a refund (I used the refund reason "other"). Not sure if maybe it only worked for me because I've made the subscription less than 24 hours ago. Wishing everyone luck that the refund works
Author
Owner

@kommen commented on GitHub (Jan 9, 2026):

pi-agent is working it around (for now) like this: https://github.com/badlogic/pi-mono/pull/594/changes

@kommen commented on GitHub (Jan 9, 2026): pi-agent is working it around (for now) like this: https://github.com/badlogic/pi-mono/pull/594/changes
Author
Owner

@mathisto commented on GitHub (Jan 9, 2026):

Thanks @JoshuaDietz
I did the same. I hope Anthropic will consider engaging vs gimping us.

Image
@mathisto commented on GitHub (Jan 9, 2026): Thanks @JoshuaDietz I did the same. I hope Anthropic will consider engaging vs gimping us. <img width="504" height="187" alt="Image" src="https://github.com/user-attachments/assets/a5b94852-c4fc-4bf1-8705-7f0b695f4b2c" />
Author
Owner

@ariasfx commented on GitHub (Jan 9, 2026):

Did the same @JoshuaDietz. Refund request of my week-old account went through surprisingly fast. CC was a good tool while it lasted, but I'd rather keep my workflow and bring inferior models into the mix.

@ariasfx commented on GitHub (Jan 9, 2026): Did the same @JoshuaDietz. Refund request of my week-old account went through surprisingly fast. CC was a good tool while it lasted, but I'd rather keep my workflow and bring inferior models into the mix.
Author
Owner

@amanhigh commented on GitHub (Jan 9, 2026):

Subscription Cancelled and Voted here on Claude Code Issue.

@amanhigh commented on GitHub (Jan 9, 2026): Subscription Cancelled and Voted [here](https://github.com/anthropics/claude-code/issues/17118) on Claude Code Issue.
Author
Owner

@paulp-o commented on GitHub (Jan 9, 2026):

Another quick fix is to title case id in tool calls:

You can patch your tool.ts to automatically convert all id to title case.

  export function define<Parameters extends z.ZodType, Result extends Metadata>(
    id: string,
    init: Info<Parameters, Result>["init"] | Awaited<ReturnType<Info<Parameters, Result>["init"]>>,
  ): Info<Parameters, Result> {
    id = id.replace(
      /\w\S*/g,
      text => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase()
    );

can you please elaborate?

@paulp-o commented on GitHub (Jan 9, 2026): > Another quick fix is to title case `id` in tool calls: > > You can patch your tool.ts to automatically convert all `id` to title case. > > ``` > export function define<Parameters extends z.ZodType, Result extends Metadata>( > id: string, > init: Info<Parameters, Result>["init"] | Awaited<ReturnType<Info<Parameters, Result>["init"]>>, > ): Info<Parameters, Result> { > id = id.replace( > /\w\S*/g, > text => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase() > ); > ``` can you please elaborate?
Author
Owner

@UltraInstinct0x commented on GitHub (Jan 9, 2026):

Steps:

Cancel your subscription via the iOS app (Settings → Apple ID → Subscriptions)
Go to reportaproblem.apple.com
Select "Request a refund" and then "Other"

Image

Select the Claude subscription charge
Submit a refund request using the template below

Template:

I am requesting a full refund for my Anthropic Claude Pro/Max subscription purchased on [PURCHASE DATE] and already cancelled.
I was using my existing Claude subscription with third-party development tools (specifically OpenCode) without restriction. This established workflow informed my decision to maintain my subscription.
At the time of purchase/renewal, I reviewed Anthropic's Terms of Service and related documentation. There was no indication that subscription usage would be restricted exclusively to Anthropic's proprietary Claude Code tool.
Following my renewal, Anthropic has blocked the use of subscriptions on third-party tools, forcing users toward their own Claude Code product. This restriction was not disclosed at the point of sale.
This constitutes a material change to the service I reasonably expected to receive. The service has objectively degraded for my established workflow.
Best regards.
@UltraInstinct0x commented on GitHub (Jan 9, 2026): Steps: Cancel your subscription via the iOS app (Settings → Apple ID → Subscriptions) Go to [reportaproblem.apple.com](https://reportaproblem.apple.com/) Select "Request a refund" and then "Other" <img width="860" height="281" alt="Image" src="https://github.com/user-attachments/assets/3c8fc1f6-5e01-46ea-9dfe-b603e8251c24" /> Select the Claude subscription charge Submit a refund request using the template below Template: ``` I am requesting a full refund for my Anthropic Claude Pro/Max subscription purchased on [PURCHASE DATE] and already cancelled. I was using my existing Claude subscription with third-party development tools (specifically OpenCode) without restriction. This established workflow informed my decision to maintain my subscription. At the time of purchase/renewal, I reviewed Anthropic's Terms of Service and related documentation. There was no indication that subscription usage would be restricted exclusively to Anthropic's proprietary Claude Code tool. Following my renewal, Anthropic has blocked the use of subscriptions on third-party tools, forcing users toward their own Claude Code product. This restriction was not disclosed at the point of sale. This constitutes a material change to the service I reasonably expected to receive. The service has objectively degraded for my established workflow. Best regards. ```
Author
Owner

@marco-kretz commented on GitHub (Jan 9, 2026):

Unsubbed Max too. At least I got the full 90€ back.

@marco-kretz commented on GitHub (Jan 9, 2026): Unsubbed Max too. At least I got the full 90€ back.
Author
Owner

@cdnsteve commented on GitHub (Jan 9, 2026):

Has anyone heard back officially from the @claude team on this? Feel like the unsubs are not really justified until there is an official response? Teams are moving fast everywhere, lets give them more than 15 hours? 👍

@cdnsteve commented on GitHub (Jan 9, 2026): Has anyone heard back officially from the @claude team on this? Feel like the unsubs are not really justified until there is an official response? Teams are moving fast everywhere, lets give them more than 15 hours? 👍
Author
Owner

@CastAIPhil commented on GitHub (Jan 9, 2026):

Has anyone heard back officially from the @claude team on this? Feel like the unsubs are not really justified until there is an official response? Teams are moving fast everywhere, lets give them more than 15 hours? 👍

It seems the fact they deliberately patch defeated the Opencode workaround that was created after their first change is a pretty loud message. The silence since then is deafening while they figure out if 1. damage control is warranted, the people complaining here might be such a small chunk of revenue they don't care. 2. How to message damage control if it is warranted.

The issue posted to Anthropic's GH has a few hundred votes, even if you call it 1k people complaining that's only around $200k/mo of revenue, $2.4Million ARR, that's not even noticeable considering they are a $9Billion/ARR company...

@CastAIPhil commented on GitHub (Jan 9, 2026): > Has anyone heard back officially from the [@claude](https://github.com/claude) team on this? Feel like the unsubs are not really justified until there is an official response? Teams are moving fast everywhere, lets give them more than 15 hours? 👍 It seems the fact they deliberately patch defeated the Opencode workaround that was created after their first change is a pretty loud message. The silence since then is deafening while they figure out if 1. damage control is warranted, the people complaining here might be such a small chunk of revenue they don't care. 2. How to message damage control if it is warranted. The issue posted to Anthropic's GH has a few hundred votes, even if you call it 1k people complaining that's only around $200k/mo of revenue, $2.4Million ARR, that's not even noticeable considering they are a $9Billion/ARR company...
Author
Owner

@khallmark commented on GitHub (Jan 9, 2026):

@cdnsteve

Teams are moving fast everywhere

Perhaps they should move faster to handle this PR nightmare.

@khallmark commented on GitHub (Jan 9, 2026): @cdnsteve > Teams are moving fast everywhere Perhaps they should move faster to handle this PR nightmare.
Author
Owner

@chrissm79 commented on GitHub (Jan 9, 2026):

I see some other comments regarding ACP and I'm ignorant to what the differences are compared to using the CC API directly, but ACP is how Zed is able to use Claude Code in their product. OpenCode supports ACP itself so I'm sure the devs are pretty well versed on what the capabilities are. I just wonder what the limitations are that would prevent making a move like this?

@chrissm79 commented on GitHub (Jan 9, 2026): I see some other comments regarding ACP and I'm ignorant to what the differences are compared to using the CC API directly, but ACP is how Zed is able to use Claude Code in their product. OpenCode supports ACP itself so I'm sure the devs are pretty well versed on what the capabilities are. I just wonder what the limitations are that would prevent making a move like this?
Author
Owner

@cdnsteve commented on GitHub (Jan 9, 2026):

It seems the fact they deliberately patch defeated the Opencode workaround that was created after their first change is a pretty loud message. The silence since then is deafening while they figure out if 1. damage control is warranted, the people complaining here might be such a small chunk of revenue they don't care. 2. How to message damage control if it is warranted.

Hmm - have reference to the first occurrence where this happened? Is this is the second time that definitely feels like a pattern...
I'm building automation that is highly integrated to the Claude ecosystem as well for my Sugar project. If Claude is taking more of a defensive stance on protecting their CLI space and tooling I have concerns.

@cdnsteve commented on GitHub (Jan 9, 2026): > It seems the fact they deliberately patch defeated the Opencode workaround that was created after their first change is a pretty loud message. The silence since then is deafening while they figure out if 1. damage control is warranted, the people complaining here might be such a small chunk of revenue they don't care. 2. How to message damage control if it is warranted. Hmm - have reference to the first occurrence where this happened? Is this is the second time that definitely feels like a pattern... I'm building automation that is highly integrated to the Claude ecosystem as well for my Sugar project. If Claude is taking more of a defensive stance on protecting their CLI space and tooling I have concerns.
Author
Owner

@JoshuaDietz commented on GitHub (Jan 9, 2026):

Has anyone heard back officially from the @claude team on this? Feel like the unsubs are not really justified until there is an official response? Teams are moving fast everywhere, lets give them more than 15 hours? 👍

If a tool that you pay hundreds of euros for every month suddenly stops working without any pre-notice, I think an unsub is completely justified, even if in the end it turns out that all of it was just an accident (which I don't think, especially since the workaround also stopped working within a few hours). If you don't cancel you risk to pay for time that you can not use and you also risk that they think you accept that kind of behavior and that level of unreliability.

@JoshuaDietz commented on GitHub (Jan 9, 2026): > Has anyone heard back officially from the [@claude](https://github.com/claude) team on this? Feel like the unsubs are not really justified until there is an official response? Teams are moving fast everywhere, lets give them more than 15 hours? 👍 If a tool that you pay hundreds of euros for every month suddenly stops working without any pre-notice, I think an unsub is completely justified, even if in the end it turns out that all of it was just an accident (which I don't think, especially since the workaround also stopped working within a few hours). If you don't cancel you risk to pay for time that you can not use and you also risk that they think you accept that kind of behavior and that level of unreliability.
Author
Owner

@duaneking commented on GitHub (Jan 9, 2026):

So from the sound of everything I've been able to find, it just feels like maybe Anthropic had a simple security bug that they've since patched in the API in that previously Oauth2 token validation on the API was incorrectly not asserting account types correctly after validating that it was valid for an account of some kind, and that has since been fixed, So it now checks that you have an account but also checks that you have a specific type of account that is allowed to use the API.

If I understand the change correctly (tell me if I am wrong, please, I don't want to have the wrong idea about all of this), after the changes you are now all up in arms about, it now asserts that you have the correct kind of account to be allowed to access the API.. and as a result now People are angry because they're no longer allowed to get $800+ dollars worth of extra API access every month on a subscription that only costs them $100? Because I saw posts online from people that were claiming to run CC pro for $20/month and then running up bills for thousands of dollars of API usage.

What am I missing? If I'm not missing anything then what is actually wrong about this? Because it seems to me like Anthropic is actually acting really good here and letting you guys off of the hook instead of sending you to jail like they could. So it really seems to me like they're being nice to you, as somebody who wasn't using this backdoor because I felt it was unethical.

Because previously, many of you you were paying for a $20-$200 subscription and then using $1,000+worth of tokens, if some of the stuff I've seen posted online is true. That simply wasn't sustainable, cant be for any company, any organization, and they were forced to do this to survive because you were abusing them before.

We as a community need to stick together and hold ourselves ethically accountable, and that's against what most of you guys are doing... because you're all calling yourself out as somebody who was abusing the API before, which I must remind you is technically illegal under the American based Computer Fraud and Abuse Act, so if they have records of you going through the API and abusing it, then they have at their discretion, the ability to send you to jail for many years under current federal law.

So maybe you guys should just be easier on them, because right now they're being EXTREMLY nice to you by simply forcing you to write your code yourself by denying you access , Instead of taking back the pound of flesh that you stole from them from excessive API usage for an account that you knew wasn't supposed to give it.

Edit: Hacker News Sent Me.. I suspect the traffic to this thread will get higher.

@duaneking commented on GitHub (Jan 9, 2026): So from the sound of everything I've been able to find, it just feels like maybe Anthropic had a simple security bug that they've since patched in the API in that previously Oauth2 token validation on the API was incorrectly not asserting account types correctly after validating that it was valid for an account of some kind, and that has since been fixed, So it now checks that you have an account but also checks that you have a specific type of account that is allowed to use the API. If I understand the change correctly (tell me if I am wrong, please, I don't want to have the wrong idea about all of this), after the changes you are now all up in arms about, it now asserts that you have the correct kind of account to be allowed to access the API.. and as a result now People are angry because they're no longer allowed to get $800+ dollars worth of extra API access every month on a subscription that only costs them $100? Because I saw posts online from people that were claiming to run CC pro for $20/month and then running up bills for thousands of dollars of API usage. What am I missing? If I'm not missing anything then what is actually wrong about this? Because it seems to me like Anthropic is actually acting really good here and letting you guys off of the hook instead of sending you to jail like they could. So it really seems to me like they're being nice to you, as somebody who wasn't using this backdoor because I felt it was unethical. Because previously, many of you you were paying for a $20-$200 subscription and then using $1,000+worth of tokens, if some of the stuff I've seen posted online is true. That simply wasn't sustainable, cant be for any company, any organization, and they were forced to do this to survive because you were abusing them before. We as a community need to stick together and hold ourselves ethically accountable, and that's against what most of you guys are doing... because you're all calling yourself out as somebody who was abusing the API before, which I must remind you is technically illegal under the American based Computer Fraud and Abuse Act, so if they have records of you going through the API and abusing it, then they have at their discretion, the ability to send you to jail for many years under current federal law. So maybe you guys should just be easier on them, because right now they're being EXTREMLY nice to you by simply forcing you to write your code yourself by denying you access , Instead of taking back the pound of flesh that you stole from them from excessive API usage for an account that you knew wasn't supposed to give it. Edit: Hacker News Sent Me.. I suspect the traffic to this thread will get higher.
Author
Owner

@brendandebeasi commented on GitHub (Jan 9, 2026):

@duaneking Yes, but also what do you expect from the OSS community in general :P FWIW I see both sides here. I'd be happy to pay 1-2x more for my max20x sub because of how much I am able to get done with it if it means OpenCode (and others) can auth subscription users.

@brendandebeasi commented on GitHub (Jan 9, 2026): @duaneking Yes, but also what do you expect from the OSS community in general :P FWIW I see both sides here. I'd be happy to pay 1-2x more for my max20x sub because of how much I am able to get done with it if it means OpenCode (and others) can auth subscription users.
Author
Owner

@andrhlt commented on GitHub (Jan 9, 2026):

Because previously, many of you you were paying for a $20-$200 subscription and then using $1,000+worth of tokens, if some of the stuff I've seen posted online is true. That simply wasn't sustainable, cant be for any company, any organization, and they were forced to do this to survive because you were abusing them before.

If this is the issue then they will continue to lose money if everyone migrates to claude code; this is insinuating that the abuse is the usage limits and not the allowed frontend.

Yes they can do whatever they want, they're just going to lose a lot of dev business from this, who are the customers paying $200/mo each.

@andrhlt commented on GitHub (Jan 9, 2026): > Because previously, many of you you were paying for a $20-$200 subscription and then using $1,000+worth of tokens, if some of the stuff I've seen posted online is true. That simply wasn't sustainable, cant be for any company, any organization, and they were forced to do this to survive because you were abusing them before. If this is the issue then they will continue to lose money if everyone migrates to claude code; this is insinuating that the abuse is the usage limits and not the allowed frontend. Yes they can do whatever they want, they're just going to lose a lot of dev business from this, who are the customers paying $200/mo each.
Author
Owner

@duaneking commented on GitHub (Jan 9, 2026):

@duaneking Yes, but also what do you expect from the OSS community in general :P FWIW I see both sides here. I'd be happy to pay 1-2x more for my max20x sub because of how much I am able to get done with it if it means OpenCode (and others) can auth subscription users.

That's my key point: if you want the access then pay for it like everyone else. If you bought a Claude code subscription and you got an API Key specific to that subscription to that agent, it is not reasonable to expect that you can just pass that API key around like a bottle at a frat party through every open port you can find.

Every person that was massively abusing this for multiple months is at legal risk, and they need to understand that before they complain too loudly. Anthropic was being nice by simply denying their access; they could have sent them an invoice, or simply filed charges for the amount lost under the Computer Fraud and Abuse Act.

Anthropic is being extremely chill about this.

@duaneking commented on GitHub (Jan 9, 2026): > [@duaneking](https://github.com/duaneking) Yes, but also what do you expect from the OSS community in general :P FWIW I see both sides here. I'd be happy to pay 1-2x more for my max20x sub because of how much I am able to get done with it if it means OpenCode (and others) can auth subscription users. That's my key point: if you want the access then pay for it like everyone else. If you bought a Claude code subscription and you got an API Key specific to that subscription to that agent, it is not reasonable to expect that you can just pass that API key around like a bottle at a frat party through every open port you can find. Every person that was massively abusing this for multiple months is at legal risk, and they need to understand that before they complain too loudly. Anthropic was being nice by simply denying their access; they could have sent them an invoice, or simply filed charges for the amount lost under the Computer Fraud and Abuse Act. Anthropic is being extremely chill about this.
Author
Owner

@crottolo commented on GitHub (Jan 9, 2026):

Another quick fix is to title case id in tool calls:

You can patch your tool.ts to automatically convert all id to title case.

  export function define<Parameters extends z.ZodType, Result extends Metadata>(
    id: string,
    init: Info<Parameters, Result>["init"] | Awaited<ReturnType<Info<Parameters, Result>["init"]>>,
  ): Info<Parameters, Result> {
    id = id.replace(
      /\w\S*/g,
      text => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase()
    );
the workaround:
Clone the repo opencode with  git clone https://github.com/anomalyco/opencode.git
bun install 
# clone Patch
clone git clone https://github.com/anomalyco/opencode-anthropic-auth
cd opencode-anthropic-auth
bun install
### edit packages/opencode/src/plugin/index.ts
"file:///Users/YOUR_USERNAME/Developer/opencode-patch/opencode-anthropic-auth/index.mjs" # adapt

/Users/ciao/VSC/opencode/packages/opencode/src/tool/tool.ts edit 

Image ``` ./packages/opencode/script/build.ts --single

edit ~/.zshrc adapt to you

# opencode
# export PATH=/Users/ciao/.opencode/bin:$PATH
export PATH=/Users/ciao/VSC/opencode/packages/opencode/dist/opencode-darwin-arm64/bin:$PATH


@crottolo commented on GitHub (Jan 9, 2026): > Another quick fix is to title case `id` in tool calls: > > You can patch your tool.ts to automatically convert all `id` to title case. > > ``` > export function define<Parameters extends z.ZodType, Result extends Metadata>( > id: string, > init: Info<Parameters, Result>["init"] | Awaited<ReturnType<Info<Parameters, Result>["init"]>>, > ): Info<Parameters, Result> { > id = id.replace( > /\w\S*/g, > text => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase() > ); > ``` ``` the workaround: Clone the repo opencode with git clone https://github.com/anomalyco/opencode.git bun install # clone Patch clone git clone https://github.com/anomalyco/opencode-anthropic-auth cd opencode-anthropic-auth bun install ### edit packages/opencode/src/plugin/index.ts "file:///Users/YOUR_USERNAME/Developer/opencode-patch/opencode-anthropic-auth/index.mjs" # adapt ``` ``` /Users/ciao/VSC/opencode/packages/opencode/src/tool/tool.ts edit ``` <img width="840" height="208" alt="Image" src="https://github.com/user-attachments/assets/4916b990-1b3b-4b30-baf1-84fcbb01270b" /> ``` ./packages/opencode/script/build.ts --single # edit ~/.zshrc adapt to you ``` # opencode # export PATH=/Users/ciao/.opencode/bin:$PATH export PATH=/Users/ciao/VSC/opencode/packages/opencode/dist/opencode-darwin-arm64/bin:$PATH ```
Author
Owner

@UltraInstinct0x commented on GitHub (Jan 9, 2026):

@duaneking Yes, but also what do you expect from the OSS community in general :P FWIW I see both sides here. I'd be happy to pay 1-2x more for my max20x sub because of how much I am able to get done with it if it means OpenCode (and others) can auth subscription users.

That's my key point: if you want the access then pay for it like everyone else. If you bought a Claude code subscription and you got an API Key specific to that subscription to that agent, it is not reasonable to expect that you can just pass that API key around like a bottle at a frat party through every open port you can find.

Every person that was massively abusing this for multiple months is at legal risk, and they need to understand that before they complain too loudly. Anthropic was being nice by simply denying their access; they could have sent them an invoice, or simply filed charges for the amount lost under the Computer Fraud and Abuse Act.

Anthropic is being extremely chill about this.

you don't know what you are talking about. "legal risk" my ass. lol

@UltraInstinct0x commented on GitHub (Jan 9, 2026): > > [@duaneking](https://github.com/duaneking) Yes, but also what do you expect from the OSS community in general :P FWIW I see both sides here. I'd be happy to pay 1-2x more for my max20x sub because of how much I am able to get done with it if it means OpenCode (and others) can auth subscription users. > > That's my key point: if you want the access then pay for it like everyone else. If you bought a Claude code subscription and you got an API Key specific to that subscription to that agent, it is not reasonable to expect that you can just pass that API key around like a bottle at a frat party through every open port you can find. > > Every person that was massively abusing this for multiple months is at legal risk, and they need to understand that before they complain too loudly. Anthropic was being nice by simply denying their access; they could have sent them an invoice, or simply filed charges for the amount lost under the Computer Fraud and Abuse Act. > > Anthropic is being extremely chill about this. you don't know what you are talking about. "legal risk" my ass. lol
Author
Owner

@UltraInstinct0x commented on GitHub (Jan 9, 2026):

@duaneking Yes, but also what do you expect from the OSS community in general :P FWIW I see both sides here. I'd be happy to pay 1-2x more for my max20x sub because of how much I am able to get done with it if it means OpenCode (and others) can auth subscription users.

why would people pay for a rigged 'product' that is shoved down thru their throats?

@UltraInstinct0x commented on GitHub (Jan 9, 2026): > [@duaneking](https://github.com/duaneking) Yes, but also what do you expect from the OSS community in general :P FWIW I see both sides here. I'd be happy to pay 1-2x more for my max20x sub because of how much I am able to get done with it if it means OpenCode (and others) can auth subscription users. why would people pay for a rigged 'product' that is shoved down thru their throats?
Author
Owner

@elad12390 commented on GitHub (Jan 9, 2026):

@duaneking Your legal analysis is fundamentally incorrect and spreading this kind of misinformation helps no one.

Re: Computer Fraud and Abuse Act

The CFAA requires either unauthorized access or exceeding authorized access to a protected computer. Users here:

  • Have authorized access via their paid subscriptions
  • Are using OAuth tokens legitimately issued to their accounts
  • Are staying within their subscription's usage limits

Using a different client to access a service you're paying for is not "unauthorized access." By your logic, using Firefox instead of Chrome to access Gmail would be a federal crime.

Re: "Stealing" API usage

If I pay for a subscription with 5x rate limits and use 3x of that capacity, I haven't stolen anything regardless of which interface I used. The whole point of a subscription model is you pay for a defined amount of usage.

Re: "$1000+ of API usage on $20 subscriptions"

This is the entire value proposition of subscription models vs pay-per-token. Anthropic chose to offer these plans. If they're unprofitable, that's a business model problem, not users "abusing" anything.

The Actual Situation

This is a TOS/contract issue at most. Anthropic can:

  • Change their API authentication (which they did)
  • Ban accounts violating TOS (which they mostly haven't)
  • Refuse to offer subscriptions in the future

They cannot retroactively claim users committed federal crimes for using a paid service with a different client.

Bottom Line

Stop fear-mongering about "jail time" and "legal risk." Users are rightfully frustrated that a service they paid for suddenly stopped working with their preferred tools, with no advance notice. That's a legitimate complaint, not a confession to federal crimes.

@elad12390 commented on GitHub (Jan 9, 2026): @duaneking Your legal analysis is fundamentally incorrect and spreading this kind of misinformation helps no one. **Re: Computer Fraud and Abuse Act** The CFAA requires either unauthorized access or exceeding authorized access to a protected computer. Users here: - Have authorized access via their paid subscriptions - Are using OAuth tokens legitimately issued to their accounts - Are staying within their subscription's usage limits Using a different client to access a service you're paying for is not "unauthorized access." By your logic, using Firefox instead of Chrome to access Gmail would be a federal crime. **Re: "Stealing" API usage** If I pay for a subscription with 5x rate limits and use 3x of that capacity, I haven't stolen anything regardless of which interface I used. The whole point of a subscription model is you pay for a defined amount of usage. **Re: "$1000+ of API usage on $20 subscriptions"** This is the entire value proposition of subscription models vs pay-per-token. Anthropic chose to offer these plans. If they're unprofitable, that's a business model problem, not users "abusing" anything. **The Actual Situation** This is a TOS/contract issue at most. Anthropic can: - Change their API authentication (which they did) - Ban accounts violating TOS (which they mostly haven't) - Refuse to offer subscriptions in the future They cannot retroactively claim users committed federal crimes for using a paid service with a different client. **Bottom Line** Stop fear-mongering about "jail time" and "legal risk." Users are rightfully frustrated that a service they paid for suddenly stopped working with their preferred tools, with no advance notice. That's a legitimate complaint, not a confession to federal crimes.
Author
Owner

@JoshuaDietz commented on GitHub (Jan 9, 2026):

@duaneking I think the technical part of your explanation does not make any sense. If they were not able to correctly identify the subscription type before, then how is it possible that they correctly enforced and displayed their usage limits when Opencode was used? Obviously the requests were counted against the subscription.

Your explanation that people get thousands of dollars of "value" and that it's clear that was not sustainable also does not make any sense because when using Claude Code (for which they have to pay the same amount of money as the Opencode users are paying) they can still get these thousands of dollars of "value". The reason why I quote value is because you just use their API prices to determine the "value" but the truth is that they also have huge cost advantages when having subscribers who pay up front no matter how much they use, who do not enforce SLAs from you and where you can randomly change limits if it fits you. So just taking the token price to determine the "value" of a Claude Code subscription is ridiculous.

And regarding your legal explanation I will not say more than that after reading it I'm pretty you're not a lawyer.

And regarding your problem with understanding the outrage: Anthropic has accepted that kind of usage for a long time now. It's completely fine if they want to change the rules. But if you want paying customers not to get upset you should maybe announce the change before instead of just cutting people off in the middle of their work.

@JoshuaDietz commented on GitHub (Jan 9, 2026): @duaneking I think the technical part of your explanation does not make any sense. If they were not able to correctly identify the subscription type before, then how is it possible that they correctly enforced and displayed their usage limits when Opencode was used? Obviously the requests were counted against the subscription. Your explanation that people get thousands of dollars of "value" and that it's clear that was not sustainable also does not make any sense because when using Claude Code (for which they have to pay the same amount of money as the Opencode users are paying) they can still get these thousands of dollars of "value". The reason why I quote value is because you just use their API prices to determine the "value" but the truth is that they also have huge cost advantages when having subscribers who pay up front no matter how much they use, who do not enforce SLAs from you and where you can randomly change limits if it fits you. So just taking the token price to determine the "value" of a Claude Code subscription is ridiculous. And regarding your legal explanation I will not say more than that after reading it I'm pretty you're not a lawyer. And regarding your problem with understanding the outrage: Anthropic has accepted that kind of usage for a long time now. It's completely fine if they want to change the rules. But if you want paying customers not to get upset you should maybe announce the change before instead of just cutting people off in the middle of their work.
Author
Owner

@Tyler-widd commented on GitHub (Jan 9, 2026):

Same

@Tyler-widd commented on GitHub (Jan 9, 2026): Same
Author
Owner

@0xPT commented on GitHub (Jan 9, 2026):

"plugin": [
    "opencode-anthropic-auth@0.0.8"
],
@0xPT commented on GitHub (Jan 9, 2026): ``` "plugin": [ "opencode-anthropic-auth@0.0.8" ], ```
Author
Owner

@duaneking commented on GitHub (Jan 9, 2026):

@duaneking I think the technical part of your explanation does not make any sense. If they were not able to correctly identify the subscription type before, then how is it possible that they correctly enforced and displayed their usage limits when Opencode was used? Obviously the requests were counted against the subscription.

You are confused.

The ability to track the number of web requests et cetera is completely different from login.

These are different concerns by design especially in code that's written to be DRY and SOLID; Cross domain concerns like this are typically the ones that need to be worked on explicitly. Accounts and login are different domains In most systems because that helps with security validation.

Your explanation that people get thousands of dollars of "value" and that it's clear that was not sustainable also does not make any sense

False. Anybody that can do math can see that removing more money from a bank account than is added is not sustainable.

because when using Claude Code (for which they have to pay the same amount of money as the Opencode users are paying)

False. When open code is using those models it's through a different mechanism and thus a different line of business for anthropic so the numbers don't match. This is just basic business studies knowledge, But if you're an engineer it makes sense that you wouldn't understand stuff normally only known by MBA's.

they can still get these thousands of dollars of "value".

And they should be paying for it, Not buying an account that's artificially cheap as a faint and then going around and trying to trick or get extra value out of the account that is explicitly not intended in the agreement they consented to.

The reason why I quote value is because you just use their API prices but the truth is that they also have huge cost advantages when having subscribers who pay up front no matter how much they use, who do not enforce SLAs from you and where you can randomly change limits if it fits you. So just taking the token price to determine the "value" of a Claude Code subscription is ridiculous.

I agree that token prices are ridiculous and artificially inflated. What you're arguing against is their pricing model. I'm against per token pricing as well. But it's the reality that we live in. It will only change when the hardware is cheap enough and cannot be used as a gate to keep everyone out as part of their business plan of maintaining a blue sea business environment by using Artificially unavailable hardware to artificially restrict access. That was because they bought out all the silicone and created the current RAM price spikes as well, So it's really just about them limiting hardware production to artificially spike software prices for AI. That is a separate issue.

And regarding your legal explanation I will not say more than that after reading it I'm pretty you're not a lawyer.

I am not a lawyer. But I have taken a few classes on law and I know what moral hazard is, as well as what a tort is (I actually enjoyed my tort classes) so I could explain this in more detail if I wanted to... but it's just not worth it to me.

And regarding your problem with understanding the outrage: Anthropic has accepted that kind of usage for a long time now.

Maybe they didn't know they were being injured? Maybe they didn't know they were being abused? Maybe this was a bug that they weren't aware of until it had to get fixed because a budget thing found it? A victim not telling you to stop - For any reason - doesn't mean it's OK to keep hurting them.

It's completely fine if they want to change the rules. But if you want paying customers not to get upset you should maybe announce the change before instead of just cutting people off in the middle of their work.

But that's not what's happening here. Paying customers that were following the rules were not impacted by this.

@duaneking commented on GitHub (Jan 9, 2026): > [@duaneking](https://github.com/duaneking) I think the technical part of your explanation does not make any sense. If they were not able to correctly identify the subscription type before, then how is it possible that they correctly enforced and displayed their usage limits when Opencode was used? Obviously the requests were counted against the subscription. You are confused. The ability to track the number of web requests et cetera is completely different from login. These are different concerns by design especially in code that's written to be DRY and SOLID; Cross domain concerns like this are typically the ones that need to be worked on explicitly. Accounts and login are different domains In most systems because that helps with security validation. > Your explanation that people get thousands of dollars of "value" and that it's clear that was not sustainable also does not make any sense False. Anybody that can do math can see that removing more money from a bank account than is added is not sustainable. > because when using Claude Code (for which they have to pay the same amount of money as the Opencode users are paying) False. When open code is using those models it's through a different mechanism and thus a different line of business for anthropic so the numbers don't match. This is just basic business studies knowledge, But if you're an engineer it makes sense that you wouldn't understand stuff normally only known by MBA's. >they can still get these thousands of dollars of "value". And they should be paying for it, Not buying an account that's artificially cheap as a faint and then going around and trying to trick or get extra value out of the account that is explicitly not intended in the agreement they consented to. > The reason why I quote value is because you just use their API prices but the truth is that they also have huge cost advantages when having subscribers who pay up front no matter how much they use, who do not enforce SLAs from you and where you can randomly change limits if it fits you. So just taking the token price to determine the "value" of a Claude Code subscription is ridiculous. I agree that token prices are ridiculous and artificially inflated. What you're arguing against is their pricing model. I'm against per token pricing as well. But it's the reality that we live in. It will only change when the hardware is cheap enough and cannot be used as a gate to keep everyone out as part of their business plan of maintaining a blue sea business environment by using Artificially unavailable hardware to artificially restrict access. That was because they bought out all the silicone and created the current RAM price spikes as well, So it's really just about them limiting hardware production to artificially spike software prices for AI. That is a separate issue. > And regarding your legal explanation I will not say more than that after reading it I'm pretty you're not a lawyer. I am not a lawyer. But I have taken a few classes on law and I know what moral hazard is, as well as what a tort is (I actually enjoyed my tort classes) so I could explain this in more detail if I wanted to... but it's just not worth it to me. > And regarding your problem with understanding the outrage: Anthropic has accepted that kind of usage for a long time now. Maybe they didn't know they were being injured? Maybe they didn't know they were being abused? Maybe this was a bug that they weren't aware of until it had to get fixed because a budget thing found it? A victim not telling you to stop - For any reason - doesn't mean it's OK to keep hurting them. > It's completely fine if they want to change the rules. But if you want paying customers not to get upset you should maybe announce the change before instead of just cutting people off in the middle of their work. But that's not what's happening here. Paying customers that were following the rules were not impacted by this.
Author
Owner

@doodhout commented on GitHub (Jan 9, 2026):

@duaneking They are a multibillion dollar valued company. They could at least spend some of those dollars on PR and try not offending people by sneakily banning the use of third-party tools like they just did without any sign or warning.

You might have all your MBA prowess and classes on law, but you're lacking basic empathy.

@doodhout commented on GitHub (Jan 9, 2026): @duaneking They are a multibillion dollar valued company. They could at least spend some of those dollars on PR and try not offending people by sneakily banning the use of third-party tools like they just did without any sign or warning. You might have all your MBA prowess and classes on law, but you're lacking basic empathy.
Author
Owner

@antonpetrovwork commented on GitHub (Jan 9, 2026):

"plugin": [
    "opencode-anthropic-auth@0.0.8"
],

Thanks!

I just asked Claude Code to add it to my opencode config.
And it works!

@antonpetrovwork commented on GitHub (Jan 9, 2026): > ``` > "plugin": [ > "opencode-anthropic-auth@0.0.8" > ], > ``` Thanks! I just asked Claude Code to add it to my opencode config. And it works!
Author
Owner

@duaneking commented on GitHub (Jan 9, 2026):

@duaneking They are a multibillion dollar valued company. They could at least spend some of those dollars on PR and try not offending people by sneakily banning the use of third-party tools like they just did without any sign or warning.

You might have all your MBA prowess and classes on law, but you're lacking basic empathy.

I believe that you the one lacking basic empathy; If anything I see myself as being somewhat over-empathetic here. And I never said I had an MBA. Just that I'm trying to understand this from all sides... out of empathy. And that leads me to believe that Anthropic is being extremely chill here when they otherwise don't have to be.

@duaneking commented on GitHub (Jan 9, 2026): > [@duaneking](https://github.com/duaneking) They are a multibillion dollar valued company. They could at least spend some of those dollars on PR and try not offending people by sneakily banning the use of third-party tools like they just did without any sign or warning. > > You might have all your MBA prowess and classes on law, but you're lacking basic empathy. I believe that you the one lacking basic empathy; If anything I see myself as being somewhat over-empathetic here. And I never said I had an MBA. Just that I'm trying to understand this from all sides... out of empathy. And that leads me to believe that Anthropic is being extremely chill here when they otherwise don't have to be.
Author
Owner

@aymennasri commented on GitHub (Jan 9, 2026):

Can people recommend alternatives with their specific use cases? It would be great to guide people to the best direct competitors in order to support them and create a more competitive spirit where losing customers is actually important.

@aymennasri commented on GitHub (Jan 9, 2026): Can people recommend alternatives with their specific use cases? It would be great to guide people to the best direct competitors in order to support them and create a more competitive spirit where losing customers is _actually_ important.
Author
Owner

@a-dmx commented on GitHub (Jan 9, 2026):

Because previously, many of you you were paying for a $20-$200 subscription and then using $1,000+worth of tokens, if some of the stuff I've seen posted online is true. That simply wasn't sustainable, cant be for any company, any organization, and they were forced to do this to survive because you were abusing them before.

Anyways, it's completely legal to use their $200 subscription $1000 worth of token just by using their buggy claude-code cli? Please be serious about things here. What they did was just cutting competetive cli out of spite it delivers better features and has better ecosystem. By the way, I'm Polish, there's a nice Polish saying "Nie strasz, nie strasz.." :)

@a-dmx commented on GitHub (Jan 9, 2026): > Because previously, many of you you were paying for a $20-$200 subscription and then using $1,000+worth of tokens, if some of the stuff I've seen posted online is true. That simply wasn't sustainable, cant be for any company, any organization, and they were forced to do this to survive because you were abusing them before. Anyways, it's completely legal to use their $200 subscription $1000 worth of token just by using their buggy claude-code cli? Please be serious about things here. What they did was just cutting competetive cli out of spite it delivers better features and has better ecosystem. By the way, I'm Polish, there's a nice Polish saying "Nie strasz, nie strasz.." :)
Author
Owner

@bimawa commented on GitHub (Jan 9, 2026):

Guys after update on 1.1.9 by curl -fsSL https://opencode.ai/install | bash
looks like issue disappear?

@bimawa commented on GitHub (Jan 9, 2026): Guys after update on 1.1.9 by `curl -fsSL https://opencode.ai/install | bash` looks like issue disappear?
Author
Owner

@JoshuaDietz commented on GitHub (Jan 9, 2026):

Can people recommend alternatives with their specific use cases? It would be great to guide people to the best direct competitors in order to support them and create a more competitive spirit where losing customers is actually important.

@aymennasri
Pretty happy with Minimax 2.1 and GLM 4.7. Quality a still a bit lower than the Anthropic Models, but not that far off and since the models are open and cheap to run no one can take them away because you can just switch providers. And their subscriptions are waaayy cheaper than Anthropics.

@JoshuaDietz commented on GitHub (Jan 9, 2026): > Can people recommend alternatives with their specific use cases? It would be great to guide people to the best direct competitors in order to support them and create a more competitive spirit where losing customers is _actually_ important. @aymennasri Pretty happy with Minimax 2.1 and GLM 4.7. Quality a still a bit lower than the Anthropic Models, but not that far off and since the models are open and cheap to run no one can take them away because you can just switch providers. And their subscriptions are waaayy cheaper than Anthropics.
Author
Owner

@duaneking commented on GitHub (Jan 9, 2026):

Anyways, it's completely legal to use their $200 subscription $1000 worth of token just by using their buggy claude-code cli?

That's a misrepresentation of the facts; The only reason people were using their Claude Code Specific API key outside of Claude code was to get around those limits. Use open code if you want, but use an API key that isn't artificially constrained to a lower price for you at the expense of a higher price that you know someone else is going to have to pay if you do not.

Have some empathy, people. ;)

@duaneking commented on GitHub (Jan 9, 2026): > Anyways, it's completely legal to use their $200 subscription $1000 worth of token just by using their buggy claude-code cli? That's a misrepresentation of the facts; The only reason people were using their Claude Code Specific API key outside of Claude code was to get around those limits. Use open code if you want, but use an API key that isn't artificially constrained to a lower price for you at the expense of a higher price that you know someone else is going to have to pay if you do not. Have some empathy, people. ;)
Author
Owner

@H0llyW00dzZ commented on GitHub (Jan 9, 2026):

yall need to switch to an alternative AI provider

@H0llyW00dzZ commented on GitHub (Jan 9, 2026): yall need to switch to an alternative AI provider
Author
Owner

@iamthemediagit commented on GitHub (Jan 9, 2026):

Which one do you recommend?
Updated for max a few days ago ;(

@iamthemediagit commented on GitHub (Jan 9, 2026): Which one do you recommend? Updated for max a few days ago ;(
Author
Owner

@a-dmx commented on GitHub (Jan 9, 2026):

as

Anyways, it's completely legal to use their $200 subscription $1000 worth of token just by using their buggy claude-code cli?

That's a misrepresentation of the facts; The only reason people were using their Claude Code Specific API key outside of Claude code was to get around those limits. Use open code if you want, but use an API key that isn't artificially constrained to a lower price for you at the expense of a higher price that you know someone else is going to have to pay if you do not.

Have some empathy, people. ;)

That sounds as complete manipulation. So you say using cli that lets you utilize your limit in more effective way, the limit you LEGALLY paid for, is a kind of lack of empathy. I say they knew what they do while selling people those subscriptions (expected that people won't use it much) and now they are unhappy that people started using the service to the limit of allowance. The answer is - do not offer subscription with limits so then you don't have to blame people, so it's lack of empathy but on the other side. :)

@a-dmx commented on GitHub (Jan 9, 2026): as > > Anyways, it's completely legal to use their $200 subscription $1000 worth of token just by using their buggy claude-code cli? > > That's a misrepresentation of the facts; The only reason people were using their Claude Code Specific API key outside of Claude code was to get around those limits. Use open code if you want, but use an API key that isn't artificially constrained to a lower price for you at the expense of a higher price that you know someone else is going to have to pay if you do not. > > Have some empathy, people. ;) That sounds as complete manipulation. So you say using cli that lets you utilize your limit in more effective way, the limit you LEGALLY paid for, is a kind of lack of empathy. I say they knew what they do while selling people those subscriptions (expected that people won't use it much) and now they are unhappy that people started using the service to the limit of allowance. The answer is - do not offer subscription with limits so then you don't have to blame people, so it's lack of empathy but on the other side. :)
Author
Owner

@H0llyW00dzZ commented on GitHub (Jan 9, 2026):

Can people recommend alternatives with their specific use cases? It would be great to guide people to the best direct competitors in order to support them and create a more competitive spirit where losing customers is actually important.

If you're looking for a cheap one, there are a lot of options.
For example: Grok, GLM, and MiniMax

@H0llyW00dzZ commented on GitHub (Jan 9, 2026): > Can people recommend alternatives with their specific use cases? It would be great to guide people to the best direct competitors in order to support them and create a more competitive spirit where losing customers is _actually_ important. If you're looking for a cheap one, there are a lot of options. For example: Grok, GLM, and MiniMax
Author
Owner

@deveworld commented on GitHub (Jan 9, 2026):

Anyways, it's completely legal to use their $200 subscription $1000 worth of token just by using their buggy claude-code cli?

That's a misrepresentation of the facts; The only reason people were using their Claude Code Specific API key outside of Claude code was to get around those limits. Use open code if you want, but use an API key that isn't artificially constrained to a lower price for you at the expense of a higher price that you know someone else is going to have to pay if you do not.

Have some empathy, people. ;)

@duaneking The business logic is fine. Subscription = money + data, API = just money. We get it (if they'd admit it)

But, the real problem is Anthropic framing it as "telemetry helps debugging" when they have server logs, or "we want third-party harnesses" while banning them in ToS.

If they just said "subscriptions require our client for data collection, use API otherwise", that's honest and defensible. The PR-speak and contradictions are what's frustrating, not the policy itself.

@deveworld commented on GitHub (Jan 9, 2026): > > Anyways, it's completely legal to use their $200 subscription $1000 worth of token just by using their buggy claude-code cli? > > That's a misrepresentation of the facts; The only reason people were using their Claude Code Specific API key outside of Claude code was to get around those limits. Use open code if you want, but use an API key that isn't artificially constrained to a lower price for you at the expense of a higher price that you know someone else is going to have to pay if you do not. > > Have some empathy, people. ;) @duaneking The business logic is fine. Subscription = money + data, API = just money. We get it (if they'd admit it) But, the real problem is Anthropic framing it as "telemetry helps debugging" when they have server logs, or "we want third-party harnesses" while banning them in ToS. If they just said "subscriptions require our client for data collection, use API otherwise", that's honest and defensible. The PR-speak and contradictions are what's frustrating, not the policy itself.
Author
Owner

@duaneking commented on GitHub (Jan 9, 2026):

That sounds as complete manipulation. So you say using cli that lets you utilize your limit in more effective way, the limit you LEGALLY paid for, is a kind of lack of empathy. I say they knew what they do while selling people those subscriptions (expected that people won't use it much) and now they are unhappy that people started using the service to the limit of allowance. The answer is - do not offer subscription with limits so then you don't have to blame people, so it's lack of empathy but on the other side. :)

I'm just thankful I've seen so many LLM powered responses talking about empathy from what are clearly accounts held by non-technical people who have never done anything without an LLM holding their hand. It gives me hope that someday robots can actually perform that as a service as well.

From my perspective, the people that abused the API key and intentionally set up their stuff knowing that they were going to go over their limit to intentionally commit fraud by abusing the open code platform to throw the entire open code community under the bus are the problem here, because they did so simply so they could get free token usage and did not care that by doing that they were making the opencode community look like it was adversarial to the model providers that it depends on.

My honest guess guess is a lot of you are going to get banned from using Anthropic models if you haven't been already. Most of you have no empathy and that's why you're not thinking about how this impacts the relationship with opencode and other providers, or how it could limit the ability to gain access to models or the goodwill to allow opencode to simply have a provider for a service in the future with it being a problem that harms Access for everybody else down the line.

In simple english, The fact that Anthropic even had to do this severely hurts the reputation of the opencode community and makes it seem more darknet friendly than it should be. The opencode leadership needs to dramatically sway away from this, be public about the problem, and actively support what Anthropic did or it will lose legitimacy with every other provider.

This is one of the reasons why you should all be thinking about empathy and trying to be a good and collaborative player in the ecosystem instead of forcing things or trying to extract value forcefully. You are critically dependent on API access to access their models and this time all they did was cut off one client they didn't remove your entire account like they could have.

Like I said, Anthropic is being very chill about this and you should be appreciative and empathetic of that.

It's easy to ask other people to be empathetic when you're not the one being harmed, But I challenge you all to be more empathetic when you're the one losing out, And I challenge you to understand that if this makes opencode adversarial with anthropic, it could create bad blood with other providers and that's not what you want, either. Yes, it's open source, and open source can be good, but it needs to be maintained legitimacy, in order to maintain itself, because if it becomes this rogue software project that attempts to extract free resources from API's as a dark client (as is currently being claimed by some of you) when it's not allowed to be, then it will just be declared a hacking tool and deleted by GitHub, and at that point Anthropic will stop being so chill.

Every single one of you that's trying to get past the security that anthropic has put up is actively putting the open source community and this project at risk, and need to stop.

I don't think anybody wants Anthropic to show their teeth here; It's not like they don't know who owns the API keys that are being billed.

Just accept that this was a security hole that has since been fixed, and move on with your life, is my greatest advice here, and that is why I'm going to be muting this thread.

Because I know a lot of you are just angry that your toy was taken away, and you're too busy having a tantrum to think about this rationally or logically, so you're going to downvote, you're going to insult, your going to let your emotions control you irrationally, your going to either misunderstand or just flat out going to misrepresent the facts that you don't like or cant accept, you're going to do all those things. Most of them have already happened for many of you. Some of you are already at the point where you've had your panic attack and you've broken down and now you're feeling tired and fatigued because of the energy it took out of you. Many of you have already tried to psychologically manipulate others into agreeing with you because in your mind that makes you feel safer to be around people who agree with you, and it's uncomfortable to have other people have different facts or different data or different perspectives... but I assure you, interacting with other people that have different perspectives makes you a better engineer.

@duaneking commented on GitHub (Jan 9, 2026): > That sounds as complete manipulation. So you say using cli that lets you utilize your limit in more effective way, the limit you LEGALLY paid for, is a kind of lack of empathy. I say they knew what they do while selling people those subscriptions (expected that people won't use it much) and now they are unhappy that people started using the service to the limit of allowance. The answer is - do not offer subscription with limits so then you don't have to blame people, so it's lack of empathy but on the other side. :) I'm just thankful I've seen so many LLM powered responses talking about empathy from what are clearly accounts held by non-technical people who have never done anything without an LLM holding their hand. It gives me hope that someday robots can actually perform that as a service as well. From my perspective, the people that abused the API key and intentionally set up their stuff knowing that they were going to go over their limit to intentionally commit fraud by abusing the open code platform to throw the entire open code community under the bus are the problem here, because they did so simply so they could get free token usage and did not care that by doing that they were making the opencode community look like it was adversarial to the model providers that it depends on. My honest guess guess is a lot of you are going to get banned from using Anthropic models if you haven't been already. Most of you have no empathy and that's why you're not thinking about how this impacts the relationship with opencode and other providers, or how it could limit the ability to gain access to models or the goodwill to allow opencode to simply have a provider for a service in the future with it being a problem that harms Access for everybody else down the line. In simple english, The fact that Anthropic even had to do this severely hurts the reputation of the opencode community and makes it seem more darknet friendly than it should be. The opencode leadership needs to dramatically sway away from this, be public about the problem, and actively support what Anthropic did or it will lose legitimacy with every other provider. This is one of the reasons why you should all be thinking about empathy and trying to be a good and collaborative player in the ecosystem instead of forcing things or trying to extract value forcefully. You are critically dependent on API access to access their models and this time all they did was cut off one client they didn't remove your entire account like they could have. Like I said, Anthropic is being very chill about this and you should be appreciative and empathetic of that. It's easy to ask other people to be empathetic when you're not the one being harmed, But I challenge you all to be more empathetic when you're the one losing out, And I challenge you to understand that if this makes opencode adversarial with anthropic, it could create bad blood with other providers and that's not what you want, either. Yes, it's open source, and open source can be good, but it needs to be maintained legitimacy, in order to maintain itself, because if it becomes this rogue software project that attempts to extract free resources from API's as a dark client (as is currently being claimed by some of you) when it's not allowed to be, then it will just be declared a hacking tool and deleted by GitHub, and at that point Anthropic will stop being so chill. Every single one of you that's trying to get past the security that anthropic has put up is actively putting the open source community and this project at risk, and need to stop. I don't think anybody wants Anthropic to show their teeth here; It's not like they don't know who owns the API keys that are being billed. Just accept that this was a security hole that has since been fixed, and move on with your life, is my greatest advice here, and that is why I'm going to be muting this thread. Because I know a lot of you are just angry that your toy was taken away, and you're too busy having a tantrum to think about this rationally or logically, so you're going to downvote, you're going to insult, your going to let your emotions control you irrationally, your going to either misunderstand or just flat out going to misrepresent the facts that you don't like or cant accept, you're going to do all those things. Most of them have already happened for many of you. Some of you are already at the point where you've had your panic attack and you've broken down and now you're feeling tired and fatigued because of the energy it took out of you. Many of you have already tried to psychologically manipulate others into agreeing with you because in your mind that makes you feel safer to be around people who agree with you, and it's uncomfortable to have other people have different facts or different data or different perspectives... but I assure you, interacting with other people that have different perspectives makes you a better engineer.
Author
Owner

@Linkk93 commented on GitHub (Jan 9, 2026):

wtf is that wall of text? I just want to keep opus in opencode lmao

@Linkk93 commented on GitHub (Jan 9, 2026): wtf is that wall of text? I just want to keep opus in opencode lmao
Author
Owner

@Srivathsav-max commented on GitHub (Jan 9, 2026):

Guys after update on 1.1.9 by curl -fsSL https://opencode.ai/install | bash looks like issue disappear?

seems working now with new 1.1.9 version

@Srivathsav-max commented on GitHub (Jan 9, 2026): > Guys after update on 1.1.9 by `curl -fsSL https://opencode.ai/install | bash` looks like issue disappear? seems working now with new 1.1.9 version
Author
Owner

@enesahn commented on GitHub (Jan 9, 2026):

"plugin": [
    "opencode-anthropic-auth@0.0.8"
],

Thanks! It works

@enesahn commented on GitHub (Jan 9, 2026): > ``` > "plugin": [ > "opencode-anthropic-auth@0.0.8" > ], > ``` Thanks! It works
Author
Owner

@humblecoder commented on GitHub (Jan 9, 2026):

That sounds as complete manipulation. So you say using cli that lets you utilize your limit in more effective way, the limit you LEGALLY paid for, is a kind of lack of empathy. I say they knew what they do while selling people those subscriptions (expected that people won't use it much) and now they are unhappy that people started using the service to the limit of allowance. The answer is - do not offer subscription with limits so then you don't have to blame people, so it's lack of empathy but on the other side. :)

...

Because I know a lot of you are just angry that your toy was taken away, and you're too busy having a tantrum to think about this rationally or logically, so you're going to downvote, you're going to insult, your going to let your emotions control you irrationally, your going to either misunderstand or just flat out going to misrepresent the facts that you don't like or cant accept, you're going to do all those things. Most of them have already happened for many of you. Some of you are already at the point where you've had your panic attack and you've broken down and now you're feeling tired and fatigued because of the energy it took out of you. Many of you have already tried to psychologically manipulate others into agreeing with you because in your mind that makes you feel safer to be around people who agree with you, and it's uncomfortable to have other people have different facts or different data or different perspectives... but I assure you, interacting with other people that have different perspectives makes you a better engineer.

Perhaps I misunderstand the intent of this post, but it seems to paint the community with an incredibly broad brush while ignoring a massive segment of the user base: those of us who are paying Anthropic customers.

I have been a developer since the late 90s, and I’ve seen the industry evolve through several paradigm shifts. Today, tools like Claude are transformative because they allow me to operate as an architect and orchestrator rather than being bogged down strictly with the syntax of every line of code. To maintain that level of high-level orchestration, I've come to enjoy a flexible interface that fits my workflow . . . which is exactly why I use OpenCode.

I pay $100+ a month for a Max-tier subscription. I am not trying to "extract free value" or "commit fraud." I am trying to use the compute I pay for through a tool that supports my professional output. The idea that using a third-party client is somehow "adversarial" or "darknet-adjacent" is a bizarre take that fundamentally mischaracterizes why many of us are here.

Again, apologies if I completely misunderstand your intent, but, at an initial read-through, I completely disagree.

@humblecoder commented on GitHub (Jan 9, 2026): > > That sounds as complete manipulation. So you say using cli that lets you utilize your limit in more effective way, the limit you LEGALLY paid for, is a kind of lack of empathy. I say they knew what they do while selling people those subscriptions (expected that people won't use it much) and now they are unhappy that people started using the service to the limit of allowance. The answer is - do not offer subscription with limits so then you don't have to blame people, so it's lack of empathy but on the other side. :) > ... > Because I know a lot of you are just angry that your toy was taken away, and you're too busy having a tantrum to think about this rationally or logically, so you're going to downvote, you're going to insult, your going to let your emotions control you irrationally, your going to either misunderstand or just flat out going to misrepresent the facts that you don't like or cant accept, you're going to do all those things. Most of them have already happened for many of you. Some of you are already at the point where you've had your panic attack and you've broken down and now you're feeling tired and fatigued because of the energy it took out of you. Many of you have already tried to psychologically manipulate others into agreeing with you because in your mind that makes you feel safer to be around people who agree with you, and it's uncomfortable to have other people have different facts or different data or different perspectives... but I assure you, interacting with other people that have different perspectives makes you a better engineer. Perhaps I misunderstand the intent of this post, but it seems to paint the community with an incredibly broad brush while ignoring a massive segment of the user base: those of us who are paying Anthropic customers. I have been a developer since the late 90s, and I’ve seen the industry evolve through several paradigm shifts. Today, tools like Claude are transformative because they allow me to operate as an architect and orchestrator rather than being bogged down strictly with the syntax of every line of code. To maintain that level of high-level orchestration, I've come to enjoy a flexible interface that fits my workflow . . . which is exactly why I use OpenCode. I pay $100+ a month for a Max-tier subscription. I am not trying to "extract free value" or "commit fraud." I am trying to use the compute I pay for through a tool that supports my professional output. The idea that using a third-party client is somehow "adversarial" or "darknet-adjacent" is a bizarre take that fundamentally mischaracterizes why many of us are here. Again, apologies if I completely misunderstand your intent, but, at an initial read-through, I completely disagree.
Author
Owner

@ramtinJ95 commented on GitHub (Jan 9, 2026):

That sounds as complete manipulation. So you say using cli that lets you utilize your limit in more effective way, the limit you LEGALLY paid for, is a kind of lack of empathy. I say they knew what they do while selling people those subscriptions (expected that people won't use it much) and now they are unhappy that people started using the service to the limit of allowance. The answer is - do not offer subscription with limits so then you don't have to blame people, so it's lack of empathy but on the other side. :)

I'm just thankful I've seen so many LLM powered responses talking about empathy from what are clearly accounts held by non-technical people who have never done anything without an LLM holding their hand. It gives me hope that someday robots can actually perform that as a service as well.

From my perspective, the people that abused the API key and intentionally set up their stuff knowing that they were going to go over their limit to intentionally commit fraud by abusing the open code platform to throw the entire open code community under the bus are the problem here, because they did so simply so they could get free token usage and did not care that by doing that they were making the opencode community look like it was adversarial to the model providers that it depends on.

My honest guess guess is a lot of you are going to get banned from using Anthropic models if you haven't been already. Most of you have no empathy and that's why you're not thinking about how this impacts the relationship with opencode and other providers, or how it could limit the ability to gain access to models or the goodwill to allow opencode to simply have a provider for a service in the future with it being a problem that harms Access for everybody else down the line.

In simple english, The fact that Anthropic even had to do this severely hurts the reputation of the opencode community and makes it seem more darknet friendly than it should be. The opencode leadership needs to dramatically sway away from this, be public about the problem, and actively support what Anthropic did or it will lose legitimacy with every other provider.

This is one of the reasons why you should all be thinking about empathy and trying to be a good and collaborative player in the ecosystem instead of forcing things or trying to extract value forcefully. You are critically dependent on API access to access their models and this time all they did was cut off one client they didn't remove your entire account like they could have.

Like I said, Anthropic is being very chill about this and you should be appreciative and empathetic of that.

It's easy to ask other people to be empathetic when you're not the one being harmed, But I challenge you all to be more empathetic when you're the one losing out, And I challenge you to understand that if this makes opencode adversarial with anthropic, it could create bad blood with other providers and that's not what you want, either. Yes, it's open source, and open source can be good, but it needs to be maintained legitimacy, in order to maintain itself, because if it becomes this rogue software project that attempts to extract free resources from API's as a dark client (as is currently being claimed by some of you) when it's not allowed to be, then it will just be declared a hacking tool and deleted by GitHub, and at that point Anthropic will stop being so chill.

Every single one of you that's trying to get past the security that anthropic has put up is actively putting the open source community and this project at risk, and need to stop.

I don't think anybody wants Anthropic to show their teeth here; It's not like they don't know who owns the API keys that are being billed.

Just accept that this was a security hole that has since been fixed, and move on with your life, is my greatest advice here, and that is why I'm going to be muting this thread.

Because I know a lot of you are just angry that your toy was taken away, and you're too busy having a tantrum to think about this rationally or logically, so you're going to downvote, you're going to insult, your going to let your emotions control you irrationally, your going to either misunderstand or just flat out going to misrepresent the facts that you don't like or cant accept, you're going to do all those things. Most of them have already happened for many of you. Some of you are already at the point where you've had your panic attack and you've broken down and now you're feeling tired and fatigued because of the energy it took out of you. Many of you have already tried to psychologically manipulate others into agreeing with you because in your mind that makes you feel safer to be around people who agree with you, and it's uncomfortable to have other people have different facts or different data or different perspectives... but I assure you, interacting with other people that have different perspectives makes you a better engineer.

man anthropic should be appreciative and empathetic to us for not raging harder. They have stolen everything their model is built on. They should appreciate society and all users not demanding governments to bring them in line. Now they have the audacity to stop paying users from using a different client.... Take that wall of text down and stop embarrassing yourself. Telling us to be appreciative and empathetic, the things i want to say to you, but lets stay civil.

@ramtinJ95 commented on GitHub (Jan 9, 2026): > > That sounds as complete manipulation. So you say using cli that lets you utilize your limit in more effective way, the limit you LEGALLY paid for, is a kind of lack of empathy. I say they knew what they do while selling people those subscriptions (expected that people won't use it much) and now they are unhappy that people started using the service to the limit of allowance. The answer is - do not offer subscription with limits so then you don't have to blame people, so it's lack of empathy but on the other side. :) > > I'm just thankful I've seen so many LLM powered responses talking about empathy from what are clearly accounts held by non-technical people who have never done anything without an LLM holding their hand. It gives me hope that someday robots can actually perform that as a service as well. > > From my perspective, the people that abused the API key and intentionally set up their stuff knowing that they were going to go over their limit to intentionally commit fraud by abusing the open code platform to throw the entire open code community under the bus are the problem here, because they did so simply so they could get free token usage and did not care that by doing that they were making the opencode community look like it was adversarial to the model providers that it depends on. > > My honest guess guess is a lot of you are going to get banned from using Anthropic models if you haven't been already. Most of you have no empathy and that's why you're not thinking about how this impacts the relationship with opencode and other providers, or how it could limit the ability to gain access to models or the goodwill to allow opencode to simply have a provider for a service in the future with it being a problem that harms Access for everybody else down the line. > > In simple english, The fact that Anthropic even had to do this severely hurts the reputation of the opencode community and makes it seem more darknet friendly than it should be. The opencode leadership needs to dramatically sway away from this, be public about the problem, and actively support what Anthropic did or it will lose legitimacy with every other provider. > > This is one of the reasons why you should all be thinking about empathy and trying to be a good and collaborative player in the ecosystem instead of forcing things or trying to extract value forcefully. You are critically dependent on API access to access their models and this time all they did was cut off one client they didn't remove your entire account like they could have. > > Like I said, Anthropic is being very chill about this and you should be appreciative and empathetic of that. > > It's easy to ask other people to be empathetic when you're not the one being harmed, But I challenge you all to be more empathetic when you're the one losing out, And I challenge you to understand that if this makes opencode adversarial with anthropic, it could create bad blood with other providers and that's not what you want, either. Yes, it's open source, and open source can be good, but it needs to be maintained legitimacy, in order to maintain itself, because if it becomes this rogue software project that attempts to extract free resources from API's as a dark client (as is currently being claimed by some of you) when it's not allowed to be, then it will just be declared a hacking tool and deleted by GitHub, and at that point Anthropic will stop being so chill. > > Every single one of you that's trying to get past the security that anthropic has put up is actively putting the open source community and this project at risk, and need to stop. > > I don't think anybody wants Anthropic to show their teeth here; It's not like they don't know who owns the API keys that are being billed. > > Just accept that this was a security hole that has since been fixed, and move on with your life, is my greatest advice here, and that is why I'm going to be muting this thread. > > Because I know a lot of you are just angry that your toy was taken away, and you're too busy having a tantrum to think about this rationally or logically, so you're going to downvote, you're going to insult, your going to let your emotions control you irrationally, your going to either misunderstand or just flat out going to misrepresent the facts that you don't like or cant accept, you're going to do all those things. Most of them have already happened for many of you. Some of you are already at the point where you've had your panic attack and you've broken down and now you're feeling tired and fatigued because of the energy it took out of you. Many of you have already tried to psychologically manipulate others into agreeing with you because in your mind that makes you feel safer to be around people who agree with you, and it's uncomfortable to have other people have different facts or different data or different perspectives... but I assure you, interacting with other people that have different perspectives makes you a better engineer. man anthropic should be appreciative and empathetic to us for not raging harder. They have stolen everything their model is built on. They should appreciate society and all users not demanding governments to bring them in line. Now they have the audacity to stop paying users from using a different client.... Take that wall of text down and stop embarrassing yourself. Telling us to be appreciative and empathetic, the things i want to say to you, but lets stay civil.
Author
Owner

@bitgineer commented on GitHub (Jan 9, 2026):

Guys after update on 1.1.9 by curl -fsSL https://opencode.ai/install | bash looks like issue disappear?

seems working now with new 1.1.9 version

confirm.

Image
@bitgineer commented on GitHub (Jan 9, 2026): > > Guys after update on 1.1.9 by `curl -fsSL https://opencode.ai/install | bash` looks like issue disappear? > > seems working now with new 1.1.9 version confirm. <img width="1920" height="1017" alt="Image" src="https://github.com/user-attachments/assets/e911b4ad-2d96-40a6-b789-3ed94267f066" />
Author
Owner

@ClaudiuBogdan commented on GitHub (Jan 9, 2026):

That sounds as complete manipulation. So you say using cli that lets you utilize your limit in more effective way, the limit you LEGALLY paid for, is a kind of lack of empathy. I say they knew what they do while selling people those subscriptions (expected that people won't use it much) and now they are unhappy that people started using the service to the limit of allowance. The answer is - do not offer subscription with limits so then you don't have to blame people, so it's lack of empathy but on the other side. :)

I'm just thankful I've seen so many LLM powered responses talking about empathy from what are clearly accounts held by non-technical people who have never done anything without an LLM holding their hand. It gives me hope that someday robots can actually perform that as a service as well.

From my perspective, the people that abused the API key and intentionally set up their stuff knowing that they were going to go over their limit to intentionally commit fraud by abusing the open code platform to throw the entire open code community under the bus are the problem here, because they did so simply so they could get free token usage and did not care that by doing that they were making the opencode community look like it was adversarial to the model providers that it depends on.

My honest guess guess is a lot of you are going to get banned from using Anthropic models if you haven't been already. Most of you have no empathy and that's why you're not thinking about how this impacts the relationship with opencode and other providers, or how it could limit the ability to gain access to models or the goodwill to allow opencode to simply have a provider for a service in the future with it being a problem that harms Access for everybody else down the line.

In simple english, The fact that Anthropic even had to do this severely hurts the reputation of the opencode community and makes it seem more darknet friendly than it should be. The opencode leadership needs to dramatically sway away from this, be public about the problem, and actively support what Anthropic did or it will lose legitimacy with every other provider.

This is one of the reasons why you should all be thinking about empathy and trying to be a good and collaborative player in the ecosystem instead of forcing things or trying to extract value forcefully. You are critically dependent on API access to access their models and this time all they did was cut off one client they didn't remove your entire account like they could have.

Like I said, Anthropic is being very chill about this and you should be appreciative and empathetic of that.

It's easy to ask other people to be empathetic when you're not the one being harmed, But I challenge you all to be more empathetic when you're the one losing out, And I challenge you to understand that if this makes opencode adversarial with anthropic, it could create bad blood with other providers and that's not what you want, either. Yes, it's open source, and open source can be good, but it needs to be maintained legitimacy, in order to maintain itself, because if it becomes this rogue software project that attempts to extract free resources from API's as a dark client (as is currently being claimed by some of you) when it's not allowed to be, then it will just be declared a hacking tool and deleted by GitHub, and at that point Anthropic will stop being so chill.

Every single one of you that's trying to get past the security that anthropic has put up is actively putting the open source community and this project at risk, and need to stop.

I don't think anybody wants Anthropic to show their teeth here; It's not like they don't know who owns the API keys that are being billed.

Just accept that this was a security hole that has since been fixed, and move on with your life, is my greatest advice here, and that is why I'm going to be muting this thread.

Because I know a lot of you are just angry that your toy was taken away, and you're too busy having a tantrum to think about this rationally or logically, so you're going to downvote, you're going to insult, your going to let your emotions control you irrationally, your going to either misunderstand or just flat out going to misrepresent the facts that you don't like or cant accept, you're going to do all those things. Most of them have already happened for many of you. Some of you are already at the point where you've had your panic attack and you've broken down and now you're feeling tired and fatigued because of the energy it took out of you. Many of you have already tried to psychologically manipulate others into agreeing with you because in your mind that makes you feel safer to be around people who agree with you, and it's uncomfortable to have other people have different facts or different data or different perspectives... but I assure you, interacting with other people that have different perspectives makes you a better engineer.

It definitely feels like losing a fun toy. I was enjoying using the Max subscription with OpenCode. But now that it is gone, I'm considering the subscription from Zen. We should support the development of OpenCode in some way.

@ClaudiuBogdan commented on GitHub (Jan 9, 2026): > > That sounds as complete manipulation. So you say using cli that lets you utilize your limit in more effective way, the limit you LEGALLY paid for, is a kind of lack of empathy. I say they knew what they do while selling people those subscriptions (expected that people won't use it much) and now they are unhappy that people started using the service to the limit of allowance. The answer is - do not offer subscription with limits so then you don't have to blame people, so it's lack of empathy but on the other side. :) > > I'm just thankful I've seen so many LLM powered responses talking about empathy from what are clearly accounts held by non-technical people who have never done anything without an LLM holding their hand. It gives me hope that someday robots can actually perform that as a service as well. > > From my perspective, the people that abused the API key and intentionally set up their stuff knowing that they were going to go over their limit to intentionally commit fraud by abusing the open code platform to throw the entire open code community under the bus are the problem here, because they did so simply so they could get free token usage and did not care that by doing that they were making the opencode community look like it was adversarial to the model providers that it depends on. > > My honest guess guess is a lot of you are going to get banned from using Anthropic models if you haven't been already. Most of you have no empathy and that's why you're not thinking about how this impacts the relationship with opencode and other providers, or how it could limit the ability to gain access to models or the goodwill to allow opencode to simply have a provider for a service in the future with it being a problem that harms Access for everybody else down the line. > > In simple english, The fact that Anthropic even had to do this severely hurts the reputation of the opencode community and makes it seem more darknet friendly than it should be. The opencode leadership needs to dramatically sway away from this, be public about the problem, and actively support what Anthropic did or it will lose legitimacy with every other provider. > > This is one of the reasons why you should all be thinking about empathy and trying to be a good and collaborative player in the ecosystem instead of forcing things or trying to extract value forcefully. You are critically dependent on API access to access their models and this time all they did was cut off one client they didn't remove your entire account like they could have. > > Like I said, Anthropic is being very chill about this and you should be appreciative and empathetic of that. > > It's easy to ask other people to be empathetic when you're not the one being harmed, But I challenge you all to be more empathetic when you're the one losing out, And I challenge you to understand that if this makes opencode adversarial with anthropic, it could create bad blood with other providers and that's not what you want, either. Yes, it's open source, and open source can be good, but it needs to be maintained legitimacy, in order to maintain itself, because if it becomes this rogue software project that attempts to extract free resources from API's as a dark client (as is currently being claimed by some of you) when it's not allowed to be, then it will just be declared a hacking tool and deleted by GitHub, and at that point Anthropic will stop being so chill. > > Every single one of you that's trying to get past the security that anthropic has put up is actively putting the open source community and this project at risk, and need to stop. > > I don't think anybody wants Anthropic to show their teeth here; It's not like they don't know who owns the API keys that are being billed. > > Just accept that this was a security hole that has since been fixed, and move on with your life, is my greatest advice here, and that is why I'm going to be muting this thread. > > Because I know a lot of you are just angry that your toy was taken away, and you're too busy having a tantrum to think about this rationally or logically, so you're going to downvote, you're going to insult, your going to let your emotions control you irrationally, your going to either misunderstand or just flat out going to misrepresent the facts that you don't like or cant accept, you're going to do all those things. Most of them have already happened for many of you. Some of you are already at the point where you've had your panic attack and you've broken down and now you're feeling tired and fatigued because of the energy it took out of you. Many of you have already tried to psychologically manipulate others into agreeing with you because in your mind that makes you feel safer to be around people who agree with you, and it's uncomfortable to have other people have different facts or different data or different perspectives... but I assure you, interacting with other people that have different perspectives makes you a better engineer. It definitely feels like losing a fun toy. I was enjoying using the Max subscription with OpenCode. But now that it is gone, I'm considering the subscription from Zen. We should support the development of OpenCode in some way.
Author
Owner

@a-dmx commented on GitHub (Jan 9, 2026):

Guys after update on 1.1.9 by curl -fsSL https://opencode.ai/install | bash looks like issue disappear?

seems working now with new 1.1.9 version

confirm.

Image

Are you sure anyone who tries that isn't banned? (on the other hand, who cares)

@a-dmx commented on GitHub (Jan 9, 2026): > > > Guys after update on 1.1.9 by `curl -fsSL https://opencode.ai/install | bash` looks like issue disappear? > > > > > > seems working now with new 1.1.9 version > > confirm. > > <img alt="Image" width="1920" height="1017" src="https://private-user-images.githubusercontent.com/133060368/534110549-e911b4ad-2d96-40a6-b789-3ed94267f066.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njc5OTMyOTYsIm5iZiI6MTc2Nzk5Mjk5NiwicGF0aCI6Ii8xMzMwNjAzNjgvNTM0MTEwNTQ5LWU5MTFiNGFkLTJkOTYtNDBhNi1iNzg5LTNlZDk0MjY3ZjA2Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMTA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDEwOVQyMTA5NTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iZmFmOTQ1YzIyNjJmOTBjY2Q0ZTQ4ODAyOGFkM2JhY2FjYzI1Y2Y3NGQ1ZjIyODE1YjE1MDJmMDJhYjJiZmFmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.kNj4aeO6Td18acXXRAAj68m5BXJyPx4VtZOUTgSXf_4"> Are you sure anyone who tries that isn't banned? (on the other hand, who cares)
Author
Owner

@arthur404dev commented on GitHub (Jan 9, 2026):

Opus 4.5 from antigravity's sub works like a charm btw, yielding better results than I was getting directly from anthropic

@arthur404dev commented on GitHub (Jan 9, 2026): Opus 4.5 from antigravity's sub works like a charm btw, yielding better results than I was getting directly from anthropic
Author
Owner

@ChristDev commented on GitHub (Jan 9, 2026):

Any recommendations for using another provider that works with the Opus model (with the same context)?

@ChristDev commented on GitHub (Jan 9, 2026): Any recommendations for using another provider that works with the Opus model (with the same context)?
Author
Owner

@bitgineer commented on GitHub (Jan 9, 2026):

Can confirm this is working! Currently on Opus 4.5 latest using the opencode-anthropic-auth plugin.

edit: (sent via opencode)

@bitgineer commented on GitHub (Jan 9, 2026): Can confirm this is working! Currently on Opus 4.5 latest using the opencode-anthropic-auth plugin. edit: (sent via opencode)
Author
Owner

@bitgineer commented on GitHub (Jan 9, 2026):

Any recommendations for using another provider that works with the Opus model (with the same context)?

I'd recommend using the anti-gravity uh plugin. Setting up multiple Google accounts if you have 'em. I currently have three set up, and I rarely hit my limits. You can use all the Opus models, along with the Gemini models.

@bitgineer commented on GitHub (Jan 9, 2026): > Any recommendations for using another provider that works with the Opus model (with the same context)? I'd recommend using the anti-gravity uh plugin. Setting up multiple Google accounts if you have 'em. I currently have three set up, and I rarely hit my limits. You can use all the Opus models, along with the Gemini models.
Author
Owner

@huynle commented on GitHub (Jan 9, 2026):

Opus 4.5 from antigravity's sub works like a charm btw, yielding better results than I was getting directly from anthropic

but it's not a TUI. Opencode is awesome at this! and i can confirm the opencode-anthropic-auth plugin is working also.

@huynle commented on GitHub (Jan 9, 2026): > Opus 4.5 from antigravity's sub works like a charm btw, yielding better results than I was getting directly from anthropic but it's not a TUI. Opencode is awesome at this! and i can confirm the opencode-anthropic-auth plugin is working also.
Author
Owner

@bitgineer commented on GitHub (Jan 9, 2026):

Opus 4.5 from antigravity's sub works like a charm btw, yielding better results than I was getting directly from anthropic

but it's not a TUI. Opencode is awesome at this! and i can confirm the opencode-anthropic-auth plugin is working also.

I don't know if it was misunderstood, but you could use anti-gravity's models within opencode using

antigravity Opencode Plugin

@bitgineer commented on GitHub (Jan 9, 2026): > > Opus 4.5 from antigravity's sub works like a charm btw, yielding better results than I was getting directly from anthropic > > but it's not a TUI. Opencode is awesome at this! and i can confirm the opencode-anthropic-auth plugin is working also. I don't know if it was misunderstood, but you could use anti-gravity's models within opencode using [antigravity Opencode Plugin](https://github.com/NoeFabris/opencode-antigravity-auth)
Author
Owner

@arthur404dev commented on GitHub (Jan 9, 2026):

Yeah, it's a plugin for opencode:

Image
@arthur404dev commented on GitHub (Jan 9, 2026): Yeah, it's a plugin for opencode: <img width="745" height="181" alt="Image" src="https://github.com/user-attachments/assets/6f5fe3b2-3a65-4492-9ccf-b454863f369c" />
Author
Owner

@huynle commented on GitHub (Jan 9, 2026):

Yeah, it's a plugin for opencode:

Image

Totally did not see that coming! Opencode is even better now.

@huynle commented on GitHub (Jan 9, 2026): > Yeah, it's a plugin for opencode: > > <img width="745" height="181" alt="Image" src="https://github.com/user-attachments/assets/6f5fe3b2-3a65-4492-9ccf-b454863f369c" /> > Totally did not see that coming! Opencode is even better now.
Author
Owner

@arthur404dev commented on GitHub (Jan 9, 2026):

TBH google's AI ultra is a way better package and it gives you better specialist models (gemini 3 pro for any visual task).

Dunno how much google will be offering claude models for in antigravity, but seeing that they have way more money than Anthropic to burn maybe they stick with it.

@arthur404dev commented on GitHub (Jan 9, 2026): TBH google's AI ultra is a way better package and it gives you better specialist models (gemini 3 pro for any visual task). Dunno how much google will be offering claude models for in antigravity, but seeing that they have way more money than Anthropic to burn maybe they stick with it.
Author
Owner

@a-dmx commented on GitHub (Jan 9, 2026):

Yeah, it's a plugin for opencode:
Image

Totally did not see that coming! Opencode is even better now.

Yeah I'm trying out that just now. 😃 Btw. here you can see their usage limit https://antigravity.google/docs/plans.

@a-dmx commented on GitHub (Jan 9, 2026): > > Yeah, it's a plugin for opencode: > > <img alt="Image" width="745" height="181" src="https://private-user-images.githubusercontent.com/59490008/534120850-6f5fe3b2-3a65-4492-9ccf-b454863f369c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njc5OTUwOTksIm5iZiI6MTc2Nzk5NDc5OSwicGF0aCI6Ii81OTQ5MDAwOC81MzQxMjA4NTAtNmY1ZmUzYjItM2E2NS00NDkyLTljY2YtYjQ1NDg2M2YzNjljLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTA5VDIxMzk1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk2ZDQ2YTIwZDMxZGZmZmU4N2IzNWMyZDc4NGM1N2Q4OWIyMDJlMmZhNWJlNmJlYmQyNzBmY2Y3YWQxMTU2ZTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.NP8_5E90JTFlWs9U4G7hSmJGecerRaSlYMwzQnkx2AY"> > > Totally did not see that coming! Opencode is even better now. Yeah I'm trying out that just now. 😃 Btw. here you can see their usage limit https://antigravity.google/docs/plans.
Author
Owner

@Tetrahedrite commented on GitHub (Jan 9, 2026):

Just tried it on 1.1.10 and it’s been patched. It feels like a total cat-and-mouse game. I wonder if they have any defenses left.

@Tetrahedrite commented on GitHub (Jan 9, 2026): Just tried it on 1.1.10 and it’s been patched. It feels like a total cat-and-mouse game. I wonder if they have any defenses left.
Author
Owner

@nullStack65 commented on GitHub (Jan 9, 2026):

At least Codex oauth support has been merged into opencode 🎉

https://github.com/anomalyco/opencode/pull/7537

@nullStack65 commented on GitHub (Jan 9, 2026): At least Codex oauth support has been merged into opencode 🎉 https://github.com/anomalyco/opencode/pull/7537
Author
Owner

@ekkyarmandi commented on GitHub (Jan 9, 2026):

Upgrading my opencode to v1.1.10 resolved the anthropic claude auth issue

@ekkyarmandi commented on GitHub (Jan 9, 2026): Upgrading my opencode to v1.1.10 resolved the anthropic claude auth issue
Author
Owner

@adiled commented on GitHub (Jan 10, 2026):

This has served as a decent opportunity to explore other models, and that wouldn't have been possible without opencode's exceptionally brilliant make and form that has captured multiple developer personas. This is a productive lock-in exemplified.

Model lock-ins are unlockable, anthropic is catching up to exactly that as global model wars commence. UI lock-in is hardly unlockable.

The TOS, violations, CC the subscription, CC the CLI, suit and ties is mere froth. LLM scale like any innovative industry is a tribal environment, where these open-closed federated-proprietary frictions play to its growth.

The end-to-end lock-in is a 20th century reality, but 21st century fantasy. It's fair play for anthropic to position the brand as a fantasy and still survive, so the move overall is self-fulfilling. Such is the nature of tribal period, it's good to see the OC community by large embraces it, that's demonstration of a solid community.

@adiled commented on GitHub (Jan 10, 2026): This has served as a decent opportunity to explore other models, and that wouldn't have been possible without opencode's exceptionally brilliant make and form that has captured multiple developer personas. This is a _productive_ lock-in exemplified. Model lock-ins are unlockable, anthropic is catching up to exactly that as global model wars commence. UI lock-in is hardly unlockable. The TOS, violations, CC the subscription, CC the CLI, suit and ties is mere froth. LLM scale like any innovative industry is a tribal environment, where these open-closed federated-proprietary frictions play to its growth. The end-to-end lock-in is a 20th century reality, but 21st century fantasy. It's fair play for anthropic to position the brand as a fantasy and still survive, so the move overall is self-fulfilling. Such is the nature of tribal period, it's good to see the OC community by large embraces it, that's demonstration of a solid community.
Author
Owner

@jimmy3574 commented on GitHub (Jan 10, 2026):

CC auth is working fine for me today (ran command, obtained auth token, all fine) however I'm getting this on all the models..

Image
@jimmy3574 commented on GitHub (Jan 10, 2026): CC auth is working fine for me today (ran command, obtained auth token, all fine) however I'm getting this on all the models.. <img width="836" height="428" alt="Image" src="https://github.com/user-attachments/assets/66c0cfd1-2344-4299-a96c-2bb8c288f393" />
Author
Owner

@deveworld commented on GitHub (Jan 10, 2026):

CC auth is working fine for me today (ran command, obtained auth token, all fine) however I'm getting this on all the models..

I think it's about context problem, not oauth.
Opencode doesn't contain context about the model and version when send llm requests.
I confirmed with Cluade Developer Platform (API).

Image
@deveworld commented on GitHub (Jan 10, 2026): > CC auth is working fine for me today (ran command, obtained auth token, all fine) however I'm getting this on all the models.. I think it's about context problem, not oauth. Opencode doesn't contain context about the model and version when send llm requests. I confirmed with Cluade Developer Platform (API). <img width="1632" height="238" alt="Image" src="https://github.com/user-attachments/assets/3cb319b3-2eb2-4b4e-907e-5ba9267c35ac" />
Author
Owner

@aymennasri commented on GitHub (Jan 10, 2026):

Opus 4.5 from antigravity's sub works like a charm btw, yielding better results than I was getting directly from anthropic

Just a heads up, they actually collect your data/prompts by default :)

"Interactions are collected and used in accordance with this Agreement and the Privacy Policy. Google employees and contractors may access, view, review and use Interactions. If you don't want your Interactions used in this way, navigate to settings to change your preference on how such data is used."
Source

@aymennasri commented on GitHub (Jan 10, 2026): > Opus 4.5 from antigravity's sub works like a charm btw, yielding better results than I was getting directly from anthropic Just a heads up, they actually collect your data/prompts by default :) "Interactions are collected and used in accordance with this Agreement and the Privacy Policy. Google employees and contractors may access, view, review and use Interactions. If you don't want your Interactions used in this way, navigate to settings to change your preference on how such data is used." [Source](https://antigravity.google/terms)
Author
Owner

@ten3roberts commented on GitHub (Jan 10, 2026):

This has served as a decent opportunity to explore other models, and that wouldn't have been possible without opencode's exceptionally brilliant make and form that has captured multiple developer personas. This is a productive lock-in exemplified.

Thank you for all the brilliant and lovely minds in this thread, as well as all of opencode (the questions feature is the only feature Claude has had that I've missed from Opencode, but now that is in, and even more amazing and intuitive than in Claude)


What has been your experience with other models/providers?

I.e; which other models, like the Gemini or GPT family would you recommend as alternatives that are decent?

GLM 4.7 is quite good, and exceptional for lighter work, due to its cost, and you can also self-host these if you really want to (having many tools in your tool box is always a good idea)

@ten3roberts commented on GitHub (Jan 10, 2026): > This has served as a decent opportunity to explore other models, and that wouldn't have been possible without opencode's exceptionally brilliant make and form that has captured multiple developer personas. This is a productive lock-in exemplified. Thank you for all the brilliant and lovely minds in this thread, as well as all of opencode (the questions feature is the *only* feature Claude has had that I've missed from Opencode, but now that is in, and even *more* amazing and intuitive than in Claude) --- What has been your experience with other models/providers? I.e; which other models, like the Gemini or GPT family would you recommend as alternatives that are decent? GLM 4.7 is quite good, and exceptional for lighter work, due to its cost, and you can also self-host these if you really want to (having many tools in your tool box is always a good idea)
Author
Owner

@cryptobetEU commented on GitHub (Jan 10, 2026):

I switched to Codex for now, if this gets drained ill go to Claude API :(

how you work with codex ? if I use codex it's only planning and talking and thinking but not even ONE fucking change

@cryptobetEU commented on GitHub (Jan 10, 2026): > I switched to Codex for now, if this gets drained ill go to Claude API :( how you work with codex ? if I use codex it's only planning and talking and thinking but not even ONE fucking change
Author
Owner

@huynle commented on GitHub (Jan 10, 2026):

This has served as a decent opportunity to explore other models, and that wouldn't have been possible without opencode's exceptionally brilliant make and form that has captured multiple developer personas. This is a productive lock-in exemplified.

Thank you for all the brilliant and lovely minds in this thread, as well as all of opencode (the questions feature is the only feature Claude has had that I've missed from Opencode, but now that is in, and even more amazing and intuitive than in Claude)


What has been your experience with other models/providers?

I.e; which other models, like the Gemini or GPT family would you recommend as alternatives that are decent?

GLM 4.7 is quite good, and exceptional for lighter work, due to its cost, and you can also self-host these if you really want to (having many tools in your tool box is always a good idea)

opus-4.5 for sure for development tasks. But I have opencode components that allow the model to do what it needs on my labs and complete access to all my network to fix any issue, and it does so most of the time one-shot. I haven't worked with other models enough to "trust" it.

@huynle commented on GitHub (Jan 10, 2026): > > This has served as a decent opportunity to explore other models, and that wouldn't have been possible without opencode's exceptionally brilliant make and form that has captured multiple developer personas. This is a productive lock-in exemplified. > > Thank you for all the brilliant and lovely minds in this thread, as well as all of opencode (the questions feature is the *only* feature Claude has had that I've missed from Opencode, but now that is in, and even *more* amazing and intuitive than in Claude) > > --- > > What has been your experience with other models/providers? > > I.e; which other models, like the Gemini or GPT family would you recommend as alternatives that are decent? > > GLM 4.7 is quite good, and exceptional for lighter work, due to its cost, and you can also self-host these if you really want to (having many tools in your tool box is always a good idea) opus-4.5 for sure for development tasks. But I have opencode components that allow the model to do what it needs on my labs and complete access to all my network to fix any issue, and it does so most of the time one-shot. I haven't worked with other models enough to "trust" it.
Author
Owner

@lozanobosch commented on GitHub (Jan 10, 2026):

Upgrading OpenCode to v1.1.12 has resolved the Anthropic Claude authentication issue, at least for now.

@lozanobosch commented on GitHub (Jan 10, 2026): Upgrading OpenCode to v1.1.12 has resolved the Anthropic Claude authentication issue, at least for now.
Author
Owner

@frntn commented on GitHub (Jan 10, 2026):

I see people telling an upgrade may fix the auth issue but that doesn't seems to be an auth issue but a ban/unban on their side trying to figure out what they consider a fair setup :
https://x.com/trq212/status/2009689809875591565

Image
@frntn commented on GitHub (Jan 10, 2026): I see people telling an upgrade may fix the auth issue but that doesn't seems to be an auth issue but a ban/unban on their side trying to figure out what they consider a fair setup : https://x.com/trq212/status/2009689809875591565 <img width="599" height="1088" alt="Image" src="https://github.com/user-attachments/assets/480e7f5c-c982-47e0-aff0-b79d74e1bdb0" />
Author
Owner

@the-vampiire commented on GitHub (Jan 10, 2026):

ya i'm weary of it now that they are making it obvious that it's a ToS violation when authenticating. it may work, but they can easily ban you with no opportunity for recovery of refund.

it's clear that the telemetry data is used for more than debugging and support. they want it for training. that makes sense considering how deeply they subsidize the plans. for that reason it's doubtful they will be allowing OC to continue using it.

i'll be watching to see if they start banning again but in the mean time i'm not risking it.

@the-vampiire commented on GitHub (Jan 10, 2026): ya i'm weary of it now that they are making it obvious that it's a ToS violation when authenticating. it may work, but they can easily ban you with no opportunity for recovery of refund. it's clear that the telemetry data is used for more than debugging and support. they want it for training. that makes sense considering how deeply they subsidize the plans. for that reason it's doubtful they will be allowing OC to continue using it. i'll be watching to see if they start banning again but in the mean time i'm not risking it.
Author
Owner

@cryptobetEU commented on GitHub (Jan 10, 2026):

Upgrading my opencode to v1.1.10 resolved the anthropic claude auth issue

perhaps but I cannot use opus it's all models but not opus

@cryptobetEU commented on GitHub (Jan 10, 2026): > Upgrading my opencode to v1.1.10 resolved the anthropic claude auth issue perhaps but I cannot use opus it's all models but not opus
Author
Owner

@diwu-sf commented on GitHub (Jan 10, 2026):

So what's the current verdict? Even if the latest version still works, if we get our Claude account banned for ToS violation, it's still unusable, and I'd rather NOT even have the option to "connect anthropic" if that eventually leads to an account ban.

Can we get an official statement on whether this will cause account bans or not?

@diwu-sf commented on GitHub (Jan 10, 2026): So what's the current verdict? Even if the latest version still works, if we get our Claude account banned for ToS violation, it's still unusable, and I'd rather NOT even have the option to "connect anthropic" if that eventually leads to an account ban. Can we get an official statement on whether this will cause account bans or not?
Author
Owner

@michaelnew commented on GitHub (Jan 10, 2026):

without any of the usual telemetry... making it really hard for us to help

What a line. Cancelled my Max plan today.

@michaelnew commented on GitHub (Jan 10, 2026): > without any of the usual telemetry... making it really hard for us to help What a line. Cancelled my Max plan today.
Author
Owner

@joshribakoff commented on GitHub (Jan 10, 2026):

Anthropic account ban?! Don’t threaten us with a good time! 🪦 wont anyone here show sympathy to the multi billion dollar company implicated in lawsuits for doing the same?

—-
To:
Support@Anthropic.com

Message:
To Whom It May Concern at Anthropic,
I am writing to express my serious frustration and disappointment regarding your recent actions warning users against using alternative clients to access Claude.
Let me be direct: the reason users seek out alternative clients is because your own official client has significant usability issues and, from what I can observe, appears to be actively degrading in quality. Rather than addressing these problems, you are choosing to penalize users who are simply trying to get value from a service they are paying for.
This approach is unacceptable. When I subscribed, I entered into an agreement to access Claude’s capabilities. If your official interface is inadequate and you simultaneously prevent me from using alternatives that would allow me to actually use what I’m paying for, you are effectively interfering with my ability to receive the service I contracted for. I consider this a potential breach of our agreement.
I want to make my position clear:
1. If you continue to obstruct users from accessing the service through functional means while failing to provide a usable official client, I am prepared to file a credit card dispute on the grounds that I am not receiving the service as reasonably expected.
2. I am requesting that you clarify Anthropic’s official position on this matter so I can make an informed decision about whether to continue my subscription.
I would appreciate a prompt response addressing these concerns.

@joshribakoff commented on GitHub (Jan 10, 2026): Anthropic account ban?! Don’t threaten us with a good time! 🪦 wont anyone here show sympathy to the multi billion dollar company implicated in lawsuits for doing the same? —- To: Support@Anthropic.com Message: To Whom It May Concern at Anthropic, I am writing to express my serious frustration and disappointment regarding your recent actions warning users against using alternative clients to access Claude. Let me be direct: the reason users seek out alternative clients is because your own official client has significant usability issues and, from what I can observe, appears to be actively degrading in quality. Rather than addressing these problems, you are choosing to penalize users who are simply trying to get value from a service they are paying for. This approach is unacceptable. When I subscribed, I entered into an agreement to access Claude’s capabilities. If your official interface is inadequate and you simultaneously prevent me from using alternatives that would allow me to actually use what I’m paying for, you are effectively interfering with my ability to receive the service I contracted for. I consider this a potential breach of our agreement. I want to make my position clear: 1. If you continue to obstruct users from accessing the service through functional means while failing to provide a usable official client, I am prepared to file a credit card dispute on the grounds that I am not receiving the service as reasonably expected. 2. I am requesting that you clarify Anthropic’s official position on this matter so I can make an informed decision about whether to continue my subscription. I would appreciate a prompt response addressing these concerns.
Author
Owner

@bchewy commented on GitHub (Jan 10, 2026):

So what's the current verdict? Even if the latest version still works, if we get our Claude account banned for ToS violation, it's still unusable, and I'd rather NOT even have the option to "connect anthropic" if that eventually leads to an account ban.

Can we get an official statement on whether this will cause account bans or not?

+1

@bchewy commented on GitHub (Jan 10, 2026): > So what's the current verdict? Even if the latest version still works, if we get our Claude account banned for ToS violation, it's still unusable, and I'd rather NOT even have the option to "connect anthropic" if that eventually leads to an account ban. > > Can we get an official statement on whether this will cause account bans or not? +1
Author
Owner

@osirishorus commented on GitHub (Jan 10, 2026):

I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far.

@osirishorus commented on GitHub (Jan 10, 2026): I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far.
Author
Owner

@execute008 commented on GitHub (Jan 10, 2026):

I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far.

this fixes the problem @osirishorus

~/.config/opencode/opencode.jsonc
{
"$schema": "https://opencode.ai/config.json",
"autoupdate": true,
"plugin": [
"opencode-anthropic-auth@0.0.8",
],
}

@execute008 commented on GitHub (Jan 10, 2026): > I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far. this fixes the problem @osirishorus ~/.config/opencode/opencode.jsonc { "$schema": "https://opencode.ai/config.json", "autoupdate": true, "plugin": [ "opencode-anthropic-auth@0.0.8", ], }
Author
Owner
@isomoes commented on GitHub (Jan 10, 2026): it fixed in v1.1.12, see https://github.com/anomalyco/opencode/commit/de286b08f6b4955af4d23c217232fbf3d26f756b & https://github.com/anomalyco/opencode-anthropic-auth/commit/499ec92cdab93533a833f5f6994b6fd1faced583
Author
Owner

@cryptobetEU commented on GitHub (Jan 11, 2026):

# 1. Rename all tools
LC_ALL=C sed -i '' \
  -e 's/Tool2\.define("bash"/Tool2.define("bas_"/g' \
  -e 's/Tool2\.define("read"/Tool2.define("rea_"/g' \
  -e 's/Tool2\.define("edit"/Tool2.define("edi_"/g' \
  -e 's/Tool2\.define("glob"/Tool2.define("glo_"/g' \
  -e 's/Tool2\.define("grep"/Tool2.define("gre_"/g' \
  -e 's/Tool2\.define("task"/Tool2.define("tas_"/g' \
  -e 's/Tool2\.define("write"/Tool2.define("writ_"/g' \
  -e 's/Tool2\.define("batch"/Tool2.define("batc_"/g' \
  -e 's/Tool2\.define("patch"/Tool2.define("patc_"/g' \
  -e 's/Tool2\.define("question"/Tool2.define("questio_"/g' \
  -e 's/Tool2\.define("todowrite"/Tool2.define("todowrit_"/g' \
  -e 's/Tool2\.define("todoread"/Tool2.define("todorea_"/g' \
  -e 's/Tool2\.define("webfetch"/Tool2.define("webfetc_"/g' \
  -e 's/Tool2\.define("websearch"/Tool2.define("websearc_"/g' \
  -e 's/Tool2\.define("codesearch"/Tool2.define("codesearc_"/g' \
  -e 's/Tool2\.define("skill"/Tool2.define("skil_"/g' \
  -e 's/Tool2\.define("invalid"/Tool2.define("invali_"/g' \
  -e 's/Tool2\.define("lsp"/Tool2.define("ls_"/g' \
  -e 's/Tool2\.define("list"/Tool2.define("lis_"/g' \
  /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode
# 2. Re-sign the binary
codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode

This renames all tools with readrea_. Use at your own risk.

Does opus work with this ? Or does it still use/call claude sonnet ?

@cryptobetEU commented on GitHub (Jan 11, 2026): > ``` > # 1. Rename all tools > LC_ALL=C sed -i '' \ > -e 's/Tool2\.define("bash"/Tool2.define("bas_"/g' \ > -e 's/Tool2\.define("read"/Tool2.define("rea_"/g' \ > -e 's/Tool2\.define("edit"/Tool2.define("edi_"/g' \ > -e 's/Tool2\.define("glob"/Tool2.define("glo_"/g' \ > -e 's/Tool2\.define("grep"/Tool2.define("gre_"/g' \ > -e 's/Tool2\.define("task"/Tool2.define("tas_"/g' \ > -e 's/Tool2\.define("write"/Tool2.define("writ_"/g' \ > -e 's/Tool2\.define("batch"/Tool2.define("batc_"/g' \ > -e 's/Tool2\.define("patch"/Tool2.define("patc_"/g' \ > -e 's/Tool2\.define("question"/Tool2.define("questio_"/g' \ > -e 's/Tool2\.define("todowrite"/Tool2.define("todowrit_"/g' \ > -e 's/Tool2\.define("todoread"/Tool2.define("todorea_"/g' \ > -e 's/Tool2\.define("webfetch"/Tool2.define("webfetc_"/g' \ > -e 's/Tool2\.define("websearch"/Tool2.define("websearc_"/g' \ > -e 's/Tool2\.define("codesearch"/Tool2.define("codesearc_"/g' \ > -e 's/Tool2\.define("skill"/Tool2.define("skil_"/g' \ > -e 's/Tool2\.define("invalid"/Tool2.define("invali_"/g' \ > -e 's/Tool2\.define("lsp"/Tool2.define("ls_"/g' \ > -e 's/Tool2\.define("list"/Tool2.define("lis_"/g' \ > /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode > # 2. Re-sign the binary > codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode > ``` > > This renames all tools with `read` → `rea_`. Use at your own risk. Does opus work with this ? Or does it still use/call claude sonnet ?
Author
Owner

@iamthemediagit commented on GitHub (Jan 11, 2026):

Opus 4.5 working

@iamthemediagit commented on GitHub (Jan 11, 2026): Opus 4.5 working
Author
Owner

@cryptobetEU commented on GitHub (Jan 11, 2026):

Opus 4.5 working

Did you ask/verify? Because i am only getting sonnet 4 when i ask (or even lower)

@cryptobetEU commented on GitHub (Jan 11, 2026): > Opus 4.5 working Did you ask/verify? Because i am only getting sonnet 4 when i ask (or even lower)
Author
Owner

@iamthemediagit commented on GitHub (Jan 11, 2026):

yes i did :)

Image
@iamthemediagit commented on GitHub (Jan 11, 2026): yes i did :) <img width="467" height="64" alt="Image" src="https://github.com/user-attachments/assets/56b4f5c8-d730-4637-ab63-eba86cd0f3d4" />
Author
Owner

@cryptobetEU commented on GitHub (Jan 11, 2026):

yes i did :)
Image

This is what you did ?

1. Rename all tools

LC_ALL=C sed -i ''
-e 's/Tool2.define("bash"/Tool2.define("bas_"/g'
-e 's/Tool2.define("read"/Tool2.define("rea_"/g'
-e 's/Tool2.define("edit"/Tool2.define("edi_"/g'
-e 's/Tool2.define("glob"/Tool2.define("glo_"/g'
-e 's/Tool2.define("grep"/Tool2.define("gre_"/g'
-e 's/Tool2.define("task"/Tool2.define("tas_"/g'
-e 's/Tool2.define("write"/Tool2.define("writ_"/g'
-e 's/Tool2.define("batch"/Tool2.define("batc_"/g'
-e 's/Tool2.define("patch"/Tool2.define("patc_"/g'
-e 's/Tool2.define("question"/Tool2.define("questio_"/g'
-e 's/Tool2.define("todowrite"/Tool2.define("todowrit_"/g'
-e 's/Tool2.define("todoread"/Tool2.define("todorea_"/g'
-e 's/Tool2.define("webfetch"/Tool2.define("webfetc_"/g'
-e 's/Tool2.define("websearch"/Tool2.define("websearc_"/g'
-e 's/Tool2.define("codesearch"/Tool2.define("codesearc_"/g'
-e 's/Tool2.define("skill"/Tool2.define("skil_"/g'
-e 's/Tool2.define("invalid"/Tool2.define("invali_"/g'
-e 's/Tool2.define("lsp"/Tool2.define("ls_"/g'
-e 's/Tool2.define("list"/Tool2.define("lis_"/g'
/opt/homebrew/Cellar/opencode/1.1.8/bin/opencode

2. Re-sign the binary

codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode

@cryptobetEU commented on GitHub (Jan 11, 2026): > yes i did :) > <img alt="Image" width="467" height="64" src="https://private-user-images.githubusercontent.com/154741852/534357689-56b4f5c8-d730-4637-ab63-eba86cd0f3d4.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjgxNDA2ODEsIm5iZiI6MTc2ODE0MDM4MSwicGF0aCI6Ii8xNTQ3NDE4NTIvNTM0MzU3Njg5LTU2YjRmNWM4LWQ3MzAtNDYzNy1hYjYzLWViYTg2Y2QwZjNkNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMTExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDExMVQxNDA2MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lOTI0ZGIyOGNiZjAzNTAwMDY0YTg2OTg2NGNiMjYyMjczNTVhYWM3ZTVlNzYwNDVmZTkxMzhmYTk1ODEwMTcyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.3u1pH0TeH1NBRJU9uRvLT_mRY14l6rWhadFKjc_KDeE"> This is what you did ? # 1. Rename all tools LC_ALL=C sed -i '' \ -e 's/Tool2\.define("bash"/Tool2.define("bas_"/g' \ -e 's/Tool2\.define("read"/Tool2.define("rea_"/g' \ -e 's/Tool2\.define("edit"/Tool2.define("edi_"/g' \ -e 's/Tool2\.define("glob"/Tool2.define("glo_"/g' \ -e 's/Tool2\.define("grep"/Tool2.define("gre_"/g' \ -e 's/Tool2\.define("task"/Tool2.define("tas_"/g' \ -e 's/Tool2\.define("write"/Tool2.define("writ_"/g' \ -e 's/Tool2\.define("batch"/Tool2.define("batc_"/g' \ -e 's/Tool2\.define("patch"/Tool2.define("patc_"/g' \ -e 's/Tool2\.define("question"/Tool2.define("questio_"/g' \ -e 's/Tool2\.define("todowrite"/Tool2.define("todowrit_"/g' \ -e 's/Tool2\.define("todoread"/Tool2.define("todorea_"/g' \ -e 's/Tool2\.define("webfetch"/Tool2.define("webfetc_"/g' \ -e 's/Tool2\.define("websearch"/Tool2.define("websearc_"/g' \ -e 's/Tool2\.define("codesearch"/Tool2.define("codesearc_"/g' \ -e 's/Tool2\.define("skill"/Tool2.define("skil_"/g' \ -e 's/Tool2\.define("invalid"/Tool2.define("invali_"/g' \ -e 's/Tool2\.define("lsp"/Tool2.define("ls_"/g' \ -e 's/Tool2\.define("list"/Tool2.define("lis_"/g' \ /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode # 2. Re-sign the binary codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode
Author
Owner

@jonathan-purnomo commented on GitHub (Jan 11, 2026):

yes

yes i did :)
Image

This is what you did ?

1. Rename all tools

LC_ALL=C sed -i '' -e 's/Tool2.define("bash"/Tool2.define("bas_"/g' -e 's/Tool2.define("read"/Tool2.define("rea_"/g' -e 's/Tool2.define("edit"/Tool2.define("edi_"/g' -e 's/Tool2.define("glob"/Tool2.define("glo_"/g' -e 's/Tool2.define("grep"/Tool2.define("gre_"/g' -e 's/Tool2.define("task"/Tool2.define("tas_"/g' -e 's/Tool2.define("write"/Tool2.define("writ_"/g' -e 's/Tool2.define("batch"/Tool2.define("batc_"/g' -e 's/Tool2.define("patch"/Tool2.define("patc_"/g' -e 's/Tool2.define("question"/Tool2.define("questio_"/g' -e 's/Tool2.define("todowrite"/Tool2.define("todowrit_"/g' -e 's/Tool2.define("todoread"/Tool2.define("todorea_"/g' -e 's/Tool2.define("webfetch"/Tool2.define("webfetc_"/g' -e 's/Tool2.define("websearch"/Tool2.define("websearc_"/g' -e 's/Tool2.define("codesearch"/Tool2.define("codesearc_"/g' -e 's/Tool2.define("skill"/Tool2.define("skil_"/g' -e 's/Tool2.define("invalid"/Tool2.define("invali_"/g' -e 's/Tool2.define("lsp"/Tool2.define("ls_"/g' -e 's/Tool2.define("list"/Tool2.define("lis_"/g' /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode

2. Re-sign the binary

codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode

yes this work for me I got opus

@jonathan-purnomo commented on GitHub (Jan 11, 2026): yes > > yes i did :) > > <img alt="Image" width="467" height="64" src="https://private-user-images.githubusercontent.com/154741852/534357689-56b4f5c8-d730-4637-ab63-eba86cd0f3d4.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjgxNDA2ODEsIm5iZiI6MTc2ODE0MDM4MSwicGF0aCI6Ii8xNTQ3NDE4NTIvNTM0MzU3Njg5LTU2YjRmNWM4LWQ3MzAtNDYzNy1hYjYzLWViYTg2Y2QwZjNkNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMTExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDExMVQxNDA2MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lOTI0ZGIyOGNiZjAzNTAwMDY0YTg2OTg2NGNiMjYyMjczNTVhYWM3ZTVlNzYwNDVmZTkxMzhmYTk1ODEwMTcyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.3u1pH0TeH1NBRJU9uRvLT_mRY14l6rWhadFKjc_KDeE"> > > This is what you did ? > > # 1. Rename all tools > LC_ALL=C sed -i '' -e 's/Tool2.define("bash"/Tool2.define("bas_"/g' -e 's/Tool2.define("read"/Tool2.define("rea_"/g' -e 's/Tool2.define("edit"/Tool2.define("edi_"/g' -e 's/Tool2.define("glob"/Tool2.define("glo_"/g' -e 's/Tool2.define("grep"/Tool2.define("gre_"/g' -e 's/Tool2.define("task"/Tool2.define("tas_"/g' -e 's/Tool2.define("write"/Tool2.define("writ_"/g' -e 's/Tool2.define("batch"/Tool2.define("batc_"/g' -e 's/Tool2.define("patch"/Tool2.define("patc_"/g' -e 's/Tool2.define("question"/Tool2.define("questio_"/g' -e 's/Tool2.define("todowrite"/Tool2.define("todowrit_"/g' -e 's/Tool2.define("todoread"/Tool2.define("todorea_"/g' -e 's/Tool2.define("webfetch"/Tool2.define("webfetc_"/g' -e 's/Tool2.define("websearch"/Tool2.define("websearc_"/g' -e 's/Tool2.define("codesearch"/Tool2.define("codesearc_"/g' -e 's/Tool2.define("skill"/Tool2.define("skil_"/g' -e 's/Tool2.define("invalid"/Tool2.define("invali_"/g' -e 's/Tool2.define("lsp"/Tool2.define("ls_"/g' -e 's/Tool2.define("list"/Tool2.define("lis_"/g' /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode > > # 2. Re-sign the binary > codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode yes this work for me I got opus
Author
Owner

@iamthemediagit commented on GitHub (Jan 11, 2026):

i only brew reinstall and then /connect
I m on osx

@iamthemediagit commented on GitHub (Jan 11, 2026): i only brew reinstall and then /connect I m on osx
Author
Owner

@cryptobetEU commented on GitHub (Jan 11, 2026):

yes

yes i did :)
Image

This is what you did ?

1. Rename all tools

LC_ALL=C sed -i '' -e 's/Tool2.define("bash"/Tool2.define("bas_"/g' -e 's/Tool2.define("read"/Tool2.define("rea_"/g' -e 's/Tool2.define("edit"/Tool2.define("edi_"/g' -e 's/Tool2.define("glob"/Tool2.define("glo_"/g' -e 's/Tool2.define("grep"/Tool2.define("gre_"/g' -e 's/Tool2.define("task"/Tool2.define("tas_"/g' -e 's/Tool2.define("write"/Tool2.define("writ_"/g' -e 's/Tool2.define("batch"/Tool2.define("batc_"/g' -e 's/Tool2.define("patch"/Tool2.define("patc_"/g' -e 's/Tool2.define("question"/Tool2.define("questio_"/g' -e 's/Tool2.define("todowrite"/Tool2.define("todowrit_"/g' -e 's/Tool2.define("todoread"/Tool2.define("todorea_"/g' -e 's/Tool2.define("webfetch"/Tool2.define("webfetc_"/g' -e 's/Tool2.define("websearch"/Tool2.define("websearc_"/g' -e 's/Tool2.define("codesearch"/Tool2.define("codesearc_"/g' -e 's/Tool2.define("skill"/Tool2.define("skil_"/g' -e 's/Tool2.define("invalid"/Tool2.define("invali_"/g' -e 's/Tool2.define("lsp"/Tool2.define("ls_"/g' -e 's/Tool2.define("list"/Tool2.define("lis_"/g' /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode

2. Re-sign the binary

codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode

yes this work for me I got opus

Well when I ask which model it is, he cannot tell anymore I will do some planning/working see if sonnet increases or not

@cryptobetEU commented on GitHub (Jan 11, 2026): > yes > > > > yes i did :) > > > <img alt="Image" width="467" height="64" src="https://private-user-images.githubusercontent.com/154741852/534357689-56b4f5c8-d730-4637-ab63-eba86cd0f3d4.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjgxNDA2ODEsIm5iZiI6MTc2ODE0MDM4MSwicGF0aCI6Ii8xNTQ3NDE4NTIvNTM0MzU3Njg5LTU2YjRmNWM4LWQ3MzAtNDYzNy1hYjYzLWViYTg2Y2QwZjNkNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMTExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDExMVQxNDA2MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lOTI0ZGIyOGNiZjAzNTAwMDY0YTg2OTg2NGNiMjYyMjczNTVhYWM3ZTVlNzYwNDVmZTkxMzhmYTk1ODEwMTcyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.3u1pH0TeH1NBRJU9uRvLT_mRY14l6rWhadFKjc_KDeE"> > > > > > > This is what you did ? > > # 1. Rename all tools > > LC_ALL=C sed -i '' -e 's/Tool2.define("bash"/Tool2.define("bas_"/g' -e 's/Tool2.define("read"/Tool2.define("rea_"/g' -e 's/Tool2.define("edit"/Tool2.define("edi_"/g' -e 's/Tool2.define("glob"/Tool2.define("glo_"/g' -e 's/Tool2.define("grep"/Tool2.define("gre_"/g' -e 's/Tool2.define("task"/Tool2.define("tas_"/g' -e 's/Tool2.define("write"/Tool2.define("writ_"/g' -e 's/Tool2.define("batch"/Tool2.define("batc_"/g' -e 's/Tool2.define("patch"/Tool2.define("patc_"/g' -e 's/Tool2.define("question"/Tool2.define("questio_"/g' -e 's/Tool2.define("todowrite"/Tool2.define("todowrit_"/g' -e 's/Tool2.define("todoread"/Tool2.define("todorea_"/g' -e 's/Tool2.define("webfetch"/Tool2.define("webfetc_"/g' -e 's/Tool2.define("websearch"/Tool2.define("websearc_"/g' -e 's/Tool2.define("codesearch"/Tool2.define("codesearc_"/g' -e 's/Tool2.define("skill"/Tool2.define("skil_"/g' -e 's/Tool2.define("invalid"/Tool2.define("invali_"/g' -e 's/Tool2.define("lsp"/Tool2.define("ls_"/g' -e 's/Tool2.define("list"/Tool2.define("lis_"/g' /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode > > # 2. Re-sign the binary > > codesign --force --sign - /opt/homebrew/Cellar/opencode/1.1.8/bin/opencode > > yes this work for me I got opus Well when I ask which model it is, he cannot tell anymore I will do some planning/working see if sonnet increases or not
Author
Owner

@cryptobetEU commented on GitHub (Jan 11, 2026):

Image Stil not working need asap opencode black
@cryptobetEU commented on GitHub (Jan 11, 2026): <img width="1385" height="1176" alt="Image" src="https://github.com/user-attachments/assets/152132be-2dab-46c7-997d-a723a32d7776" /> Stil not working need asap opencode black
Author
Owner

@cryptobetEU commented on GitHub (Jan 11, 2026):

I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far.

Can you share what you made/built ?

@cryptobetEU commented on GitHub (Jan 11, 2026): > I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far. Can you share what you made/built ?
Author
Owner

@neyb commented on GitHub (Jan 12, 2026):

This video (french) show that the identification is made on the system prompt...

The question is "should a game of cat and mouse be started?".

Also it's contrary to cluf (I believe people should boycott Claude for these cluf but believing that it can work is another topic).

@neyb commented on GitHub (Jan 12, 2026): [This video](https://youtu.be/Jq575iKYh1Q?si=msNc07JxLgz3BYNi?t=390) (french) show that the identification is made on the system prompt... The question is "should a game of cat and mouse be started?". Also it's contrary to cluf (I believe people should boycott Claude for these cluf but believing that it can work is another topic).
Author
Owner

@cryptobetEU commented on GitHub (Jan 12, 2026):

I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far.

Can you share what you made/built ?

Since no reply I am building one myself will be released later it's a proxy wrapper/forwarder for offical client

@cryptobetEU commented on GitHub (Jan 12, 2026): > > I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far. > > Can you share what you made/built ? Since no reply I am building one myself will be released later it's a proxy wrapper/forwarder for offical client
Author
Owner

@n33pm commented on GitHub (Jan 12, 2026):

Image Stil not working need asap opencode black

That's normal. Claude Code adds it in its system prompt.

....
You are powered by the model named Opus 4.5. The exact model ID is claude-opus-4-5-20251101.

Assistant knowledge cutoff is May 2025.

<claude_background_info>
The most recent frontier Claude model is Claude Opus 4.5 (model ID: 'claude-opus-4-5-20251101').
</claude_background_info>

So if you remove that and leave everything else, even the Claude Code CLI will respond with Sonnet.

I don't know if it's because Opus doesn't know about himself and it's based on Sonnet, or if they're trying to fool us.

I tested it for the last 2 hours and the usage for Sonnet does not go up.

Image
@n33pm commented on GitHub (Jan 12, 2026): > <img alt="Image" width="1385" height="1176" src="https://private-user-images.githubusercontent.com/211207067/534361371-152132be-2dab-46c7-997d-a723a32d7776.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjgyMTkxMzUsIm5iZiI6MTc2ODIxODgzNSwicGF0aCI6Ii8yMTEyMDcwNjcvNTM0MzYxMzcxLTE1MjEzMmJlLTJkYWItNDZjNy05OTdkLWE3MjNhMzJkNzc3Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDExMlQxMTUzNTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMDE5NzJjYjU0MzQ1ODc1Mzk3NzJmY2I3NmNkZTM2YTBjZWZjOWMyM2RiZDllMzNkYTA5MzlkMmUwMTA1ZWMyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.tlJyKrXJooLJObGDjYJwCxzY2EYFvMaYI9B2JWkXAbY"> Stil not working need asap opencode black That's normal. Claude Code adds it in its system prompt. ``` .... You are powered by the model named Opus 4.5. The exact model ID is claude-opus-4-5-20251101. Assistant knowledge cutoff is May 2025. <claude_background_info> The most recent frontier Claude model is Claude Opus 4.5 (model ID: 'claude-opus-4-5-20251101'). </claude_background_info> ``` So if you remove that and leave everything else, even the Claude Code CLI will respond with Sonnet. I don't know if it's because Opus doesn't know about himself and it's based on Sonnet, or if they're trying to fool us. I tested it for the last 2 hours and the usage for Sonnet does not go up. <img width="992" height="375" alt="Image" src="https://github.com/user-attachments/assets/806c853f-8428-40af-a391-6005da1ca7d1" />
Author
Owner

@cryptobetEU commented on GitHub (Jan 12, 2026):

Image Stil not working need asap opencode black

That's normal. Claude Code adds it in its system prompt.

....
You are powered by the model named Opus 4.5. The exact model ID is claude-opus-4-5-20251101.

Assistant knowledge cutoff is May 2025.

<claude_background_info>
The most recent frontier Claude model is Claude Opus 4.5 (model ID: 'claude-opus-4-5-20251101').
</claude_background_info>

So if you remove that and leave everything else, even the Claude Code CLI will respond with Sonnet.

I don't know if it's because Opus doesn't know about himself and it's based on Sonnet, or if they're trying to fool us.

I tested it for the last 2 hours and the usage for Sonnet does not go up.
Image

They are fooling you. I finally seem to get it working let me see how it will work

Image
@cryptobetEU commented on GitHub (Jan 12, 2026): > > <img alt="Image" width="1385" height="1176" src="https://private-user-images.githubusercontent.com/211207067/534361371-152132be-2dab-46c7-997d-a723a32d7776.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjgyMTkxMzUsIm5iZiI6MTc2ODIxODgzNSwicGF0aCI6Ii8yMTEyMDcwNjcvNTM0MzYxMzcxLTE1MjEzMmJlLTJkYWItNDZjNy05OTdkLWE3MjNhMzJkNzc3Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDExMlQxMTUzNTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMDE5NzJjYjU0MzQ1ODc1Mzk3NzJmY2I3NmNkZTM2YTBjZWZjOWMyM2RiZDllMzNkYTA5MzlkMmUwMTA1ZWMyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.tlJyKrXJooLJObGDjYJwCxzY2EYFvMaYI9B2JWkXAbY"> Stil not working need asap opencode black > > That's normal. Claude Code adds it in its system prompt. > > ``` > .... > You are powered by the model named Opus 4.5. The exact model ID is claude-opus-4-5-20251101. > > Assistant knowledge cutoff is May 2025. > > <claude_background_info> > The most recent frontier Claude model is Claude Opus 4.5 (model ID: 'claude-opus-4-5-20251101'). > </claude_background_info> > ``` > > So if you remove that and leave everything else, even the Claude Code CLI will respond with Sonnet. > > I don't know if it's because Opus doesn't know about himself and it's based on Sonnet, or if they're trying to fool us. > > I tested it for the last 2 hours and the usage for Sonnet does not go up. > <img alt="Image" width="992" height="375" src="https://private-user-images.githubusercontent.com/12273891/534560823-806c853f-8428-40af-a391-6005da1ca7d1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjgyMTk5NTUsIm5iZiI6MTc2ODIxOTY1NSwicGF0aCI6Ii8xMjI3Mzg5MS81MzQ1NjA4MjMtODA2Yzg1M2YtODQyOC00MGFmLWEzOTEtNjAwNWRhMWNhN2QxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTEyVDEyMDczNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNjNDhkZGEwMWNhM2JhYzg3NmQwYTE0Mjc1YmQ3MTI1ZDYxOGY2ZjdmZmYwOWI1YWE5MWNhMThhOTRjOGM2YzUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6yeiPyEiQ9OkmAI54JtxXrJA2uEbmP0JqBnDtG9qeC8"> They are fooling you. I finally seem to get it working let me see how it will work <img width="1345" height="1415" alt="Image" src="https://github.com/user-attachments/assets/28399459-b3e1-4260-8257-fde0431e152f" />
Author
Owner

@osirishorus commented on GitHub (Jan 12, 2026):

I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far.

Can you share what you made/built ?

Since no reply I am building one myself will be released later it's a proxy wrapper/forwarder for offical client

I can release it, just need to put it together for release ready first. Should have time later today or tomorrow

@osirishorus commented on GitHub (Jan 12, 2026): > > > I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far. > > > > Can you share what you made/built ? > > Since no reply I am building one myself will be released later it's a proxy wrapper/forwarder for offical client > I can release it, just need to put it together for release ready first. Should have time later today or tomorrow
Author
Owner

@n33pm commented on GitHub (Jan 12, 2026):

They are fooling you. I finally seem to get it working let me see how it will work

Image

If I look at your image, I can see you are routing it through Claude Code CLI, which already has the mentioned system prompt! So it's not proof that it's working or that it's the correct model.

@n33pm commented on GitHub (Jan 12, 2026): > They are fooling you. I finally seem to get it working let me see how it will work > > <img alt="Image" width="1345" height="1415" src="https://private-user-images.githubusercontent.com/211207067/534564358-28399459-b3e1-4260-8257-fde0431e152f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjgyMjA1ODIsIm5iZiI6MTc2ODIyMDI4MiwicGF0aCI6Ii8yMTEyMDcwNjcvNTM0NTY0MzU4LTI4Mzk5NDU5LWIzZTEtNDI2MC04MjU3LWZkZTA0MzFlMTUyZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDExMlQxMjE4MDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02ZWEyYzA4NWRhNzM1NDQ3MWQ3NzMyYWYwNzc0OTA0M2E4ZjkzZjg4ZDZlZDAxOGQxZjY0YzM2OWYyOWIzNzlmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.iSZy-4yWEqgn1UwRdsBYK0r7wDyfquqZOlge4th562c"> If I look at your image, I can see you are routing it through Claude Code CLI, which already has the mentioned system prompt! So it's not proof that it's working or that it's the correct model.
Author
Owner

@cryptobetEU commented on GitHub (Jan 12, 2026):

I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far.

Can you share what you made/built ?

Since no reply I am building one myself will be released later it's a proxy wrapper/forwarder for offical client

I can release it, just need to put it together for release ready first. Should have time later today or tomorrow

I have it working but doesn't operate as opencode normally does, did you manage to get it operate like opencode normally did ?

@cryptobetEU commented on GitHub (Jan 12, 2026): > > > > I got it working by proxying directly through claude code itself. It's not as fast but seems to be working good so far. > > > > > > > > > Can you share what you made/built ? > > > > > > Since no reply I am building one myself will be released later it's a proxy wrapper/forwarder for offical client > > I can release it, just need to put it together for release ready first. Should have time later today or tomorrow I have it working but doesn't operate as opencode normally does, did you manage to get it operate like opencode normally did ?
Author
Owner

@lubikx commented on GitHub (Jan 12, 2026):

I've cancelled my Claude subscription. There are different providers. Show that the companies will pay for being hostile. Money and how it is spent are two of the last things we can still control.

@lubikx commented on GitHub (Jan 12, 2026): I've cancelled my Claude subscription. There are different providers. Show that the companies will pay for being hostile. Money and how it is spent are two of the last things we can still control.
Author
Owner

@skhaz commented on GitHub (Jan 12, 2026):

The problem is only in Claude? Other companies allows?

@skhaz commented on GitHub (Jan 12, 2026): The problem is only in Claude? Other companies allows?
Author
Owner

@mxmzb commented on GitHub (Jan 13, 2026):

Same. Downgraded my claude plan to $100 immediately because I won't be able to use it as much without opencode.

Honestly using CC is like going back to stone age. Gonna be rough until if/when this gets fixed.

EDIT: I've cancelled my Anthropic subscription completely. Trying to use CC for the last 10 minutes and it's unusuable for the workflows I have and the visibility I need that opencode has enabled me to have. Will explore other models.

@Naomarik Genuinely curious and would love to learn: How exactly do your workflows look like that they become so unusable with CC, or rather how exactly does OpenCode enable them?

@mxmzb commented on GitHub (Jan 13, 2026): > Same. Downgraded my claude plan to $100 immediately because I won't be able to use it as much without opencode. > > Honestly using CC is like going back to stone age. Gonna be rough until if/when this gets fixed. > > EDIT: I've cancelled my Anthropic subscription completely. Trying to use CC for the last 10 minutes and it's unusuable for the workflows I have and the visibility I need that opencode has enabled me to have. Will explore other models. @Naomarik Genuinely curious and would love to learn: How exactly do your workflows look like that they become so unusable with CC, or rather how exactly does OpenCode enable them?
Author
Owner

@Naomarik commented on GitHub (Jan 13, 2026):

Same. Downgraded my claude plan to $100 immediately because I won't be able to use it as much without opencode.
Honestly using CC is like going back to stone age. Gonna be rough until if/when this gets fixed.
EDIT: I've cancelled my Anthropic subscription completely. Trying to use CC for the last 10 minutes and it's unusuable for the workflows I have and the visibility I need that opencode has enabled me to have. Will explore other models.

@Naomarik Genuinely curious and would love to learn: How exactly do your workflows look like that they become so unusable with CC, or rather how exactly does OpenCode enable them?

@mxmzb
Several things. I've iteratively developed a "workflow" for specifications, which I consider to be major features that builds up to creating N number of task files that are orchestrated by a main agent. These are just markdown files I've been able to gradually steer into producing results I really like. This isn't something I've cloned off other people or some ralph wiggums variant, just me encoding my will on how I'd like things built given the constraints of using LLMs effectively into markdown files and repeatedly using it to build features over time. That has slowly got me building extremely specific features that can take a full hour for Opus 4.5 to build.

I also am not completely blind as to what the LLMs are working on. Opencode makes it extremely easy to see what's going on, so I can halt the process, or undo, and decide to edit my prompt or markdown files. It has taught me, just due to the fact that it's always present, that the context window and the kinds of tasks I'm working on let me decide on what gets delegated to subagents, when to clear, when to compact, or when to keep pushing even if I'm 75% full.

I've used Claude Code in the past heavily to create a PWA I host on Cloudflare pages that is pure JS no dependencies, and I had to interrupt it a lot. I spent a full week with that, and during that time it did not teach me much about how to be more effective. I honestly kind of hated myself at the end of it. Opencode makes you better naturally because it shows you things that actually matter, and you can see way more on the screen about what it's doing.

If Opencode is like having a large crisp 4k monitor, Claude Code in comparison is like using an old Nokia Phone to read text messages. I know a lot of people just drop their prompt into the TUI and let it rip, but I need a lot more than that.

@Naomarik commented on GitHub (Jan 13, 2026): > > Same. Downgraded my claude plan to $100 immediately because I won't be able to use it as much without opencode. > > Honestly using CC is like going back to stone age. Gonna be rough until if/when this gets fixed. > > EDIT: I've cancelled my Anthropic subscription completely. Trying to use CC for the last 10 minutes and it's unusuable for the workflows I have and the visibility I need that opencode has enabled me to have. Will explore other models. > > [@Naomarik](https://github.com/Naomarik) Genuinely curious and would love to learn: How exactly do your workflows look like that they become so unusable with CC, or rather how exactly does OpenCode enable them? @mxmzb Several things. I've iteratively developed a "workflow" for specifications, which I consider to be major features that builds up to creating N number of task files that are orchestrated by a main agent. These are just markdown files I've been able to gradually steer into producing results I really like. This isn't something I've cloned off other people or some ralph wiggums variant, just me encoding my will on how I'd like things built given the constraints of using LLMs effectively into markdown files and repeatedly using it to build features over time. That has slowly got me building extremely specific features that can take a full hour for Opus 4.5 to build. I also am not completely blind as to what the LLMs are working on. Opencode makes it extremely easy to see what's going on, so I can halt the process, or undo, and decide to edit my prompt or markdown files. It has taught me, just due to the fact that it's always present, that the context window and the kinds of tasks I'm working on let me decide on what gets delegated to subagents, when to clear, when to compact, or when to keep pushing even if I'm 75% full. I've used Claude Code in the past heavily to create a PWA I host on Cloudflare pages that is pure JS no dependencies, and I had to interrupt it a lot. I spent a full week with that, and during that time it did not teach me much about how to be more effective. I honestly kind of hated myself at the end of it. Opencode makes you better naturally because it shows you things that actually matter, and you can see way more on the screen about what it's doing. If Opencode is like having a large crisp 4k monitor, Claude Code in comparison is like using an old Nokia Phone to read text messages. I know a lot of people just drop their prompt into the TUI and let it rip, but I need a lot more than that.
Author
Owner

@MartinVerges commented on GitHub (Jan 14, 2026):

@Naomarik Genuinely curious and would love to learn: How exactly do your workflows look like that they become so unusable with CC, or rather how exactly does OpenCode enable them?

Not the author, but I tried switching back to CC, and things that just work and produce good results in opencode lead to non working output and lots of token wasted in CC to begin with. The configuration structure inside projects and on a userlevel helps as well. Using multiple models with the same tool, for example having a codex reviewing something that sonnet wrote is simply better in opencode than using 20 different tools, just because they don't like their paying customers and force on their CLIs. CC often has bugs where the shell scrolls up/down very fast for a few seconds and lots of other reasons why CC is not even close to be as good as opencode. For me personally, I'm interested to pay for their model, not for the crappy CLI and I never saw their CLI as a mandatory requirement when paying for a usage limit (plan). I rather switch away from paying them money than going back to stone age CC.

@MartinVerges commented on GitHub (Jan 14, 2026): > [@Naomarik](https://github.com/Naomarik) Genuinely curious and would love to learn: How exactly do your workflows look like that they become so unusable with CC, or rather how exactly does OpenCode enable them? Not the author, but I tried switching back to CC, and things that just work and produce good results in opencode lead to non working output and lots of token wasted in CC to begin with. The configuration structure inside projects and on a userlevel helps as well. Using multiple models with the same tool, for example having a codex reviewing something that sonnet wrote is simply better in opencode than using 20 different tools, just because they don't like their paying customers and force on their CLIs. CC often has bugs where the shell scrolls up/down very fast for a few seconds and lots of other reasons why CC is not even close to be as good as opencode. For me personally, I'm interested to pay for their model, not for the crappy CLI and I never saw their CLI as a mandatory requirement when paying for a usage limit (plan). I rather switch away from paying them money than going back to stone age CC.
Author
Owner

@ejj commented on GitHub (Jan 14, 2026):

Seems to be working for me as of 2025-01-14 on Version 1.1.20. I don't see anything in the release notes ... Did anthropic back track? Does it work for anyone else?

@ejj commented on GitHub (Jan 14, 2026): Seems to be working for me as of 2025-01-14 on Version 1.1.20. I don't see anything in the release notes ... Did anthropic back track? Does it work for anyone else?
Author
Owner

@nullStack65 commented on GitHub (Jan 14, 2026):

just broke again 1/14/26 3:36PM Eastern

@nullStack65 commented on GitHub (Jan 14, 2026): just broke again 1/14/26 3:36PM Eastern
Author
Owner

@enesahn commented on GitHub (Jan 14, 2026):

Image

The cat and mouse game continues

@enesahn commented on GitHub (Jan 14, 2026): <img width="1036" height="76" alt="Image" src="https://github.com/user-attachments/assets/e6c08e17-ea1e-444b-920a-ac2755ae446c" /> The cat and mouse game continues
Author
Owner

@ejj commented on GitHub (Jan 14, 2026):

Broken again for me as well. I wonder if this was just a hiccup on Anthropic's end.

@ejj commented on GitHub (Jan 14, 2026): Broken again for me as well. I wonder if this was just a hiccup on Anthropic's end.
Author
Owner

@itsmylife44 commented on GitHub (Jan 14, 2026):

Image

rip x2

@itsmylife44 commented on GitHub (Jan 14, 2026): <img width="1036" height="127" alt="Image" src="https://github.com/user-attachments/assets/f9108f21-b810-459c-b87d-240f68b03da2" /> rip x2
Author
Owner

@JuliaBonita commented on GitHub (Jan 14, 2026):

Theo sums up Anthropic's stupidy well here: https://www.youtube.com/watch?v=gh6aFBnwQj4

We know Anthropic is watching this thread. So to them: Keep doing this dictatorial BS and watch how fast you lose market share. Other cheaper models will soon be as good as CC. As soon as that happens, all the goodwill you're destroying now will accelerate your demise.

When that happens, you will be forced to beg daddy Bezos to bail you out. Then you will be trapped with nowhere to go but to the darkest corners of Amazon. No soul. No options. Just lifelong slavery to your corporate overlords. Enjoy your freedom while it lasts.

@JuliaBonita commented on GitHub (Jan 14, 2026): Theo sums up Anthropic's stupidy well here: https://www.youtube.com/watch?v=gh6aFBnwQj4 We know Anthropic is watching this thread. So to them: Keep doing this dictatorial BS and watch how fast you lose market share. Other cheaper models will soon be as good as CC. As soon as that happens, all the goodwill you're destroying now will accelerate your demise. When that happens, you will be forced to beg daddy Bezos to bail you out. Then you will be trapped with nowhere to go but to the darkest corners of Amazon. No soul. No options. Just lifelong slavery to your corporate overlords. Enjoy your freedom while it lasts.
Author
Owner

@camme commented on GitHub (Jan 14, 2026):

Our entire company began using Claude a couple of months ago and we bought Claude Premium (Team) for all developers. But after this past week with this issue, I'm thinking about canceling all subscriptions. Already checking and testing Gemini 3, z.ai, and more to look for alternatives. But more importantly, making sure that we are never dependant on Anthropics clients like CC.

@camme commented on GitHub (Jan 14, 2026): Our entire company began using Claude a couple of months ago and we bought Claude Premium (Team) for all developers. But after this past week with this issue, I'm thinking about canceling all subscriptions. Already checking and testing Gemini 3, z.ai, and more to look for alternatives. But more importantly, making sure that we are never dependant on Anthropics clients like CC.
Author
Owner

@rickbassham commented on GitHub (Jan 14, 2026):

I'm getting the same, but also getting errors in the Claude Desktop app using CoWork and Code there. Tool naming issues.

@rickbassham commented on GitHub (Jan 14, 2026): I'm getting the same, but also getting errors in the Claude Desktop app using CoWork and Code there. Tool naming issues.
Author
Owner

@thomastthai commented on GitHub (Jan 14, 2026):

Designing our workflow around a particular company's tool(s) or service(s) is risky and gives the company too much control over us.

@thomastthai commented on GitHub (Jan 14, 2026): Designing our workflow around a particular company's tool(s) or service(s) is risky and gives the company too much control over us.
Author
Owner

@skhaz commented on GitHub (Jan 14, 2026):

If OpenCode can't work with Claude Max, I'll cancel my subscription and use another model.

At that point, AI models are no longer a novelty, it's a commodity.

Claude Code is pure vibe-coded crapware.

@skhaz commented on GitHub (Jan 14, 2026): If OpenCode can't work with Claude Max, I'll cancel my subscription and use another model. At that point, AI models are no longer a novelty, it's a commodity. Claude Code is pure vibe-coded crapware.
Author
Owner

@alikinir commented on GitHub (Jan 14, 2026):

If OpenCode can't work with Claude Max, I'll cancel my subscription and use another model.

At that point, AI models are no longer a novelty, it's a commodity.

Claude Code is pure vibe-coded crapware.

What model can you suggest that can perform similar to Opus 4.5 for coding?

@alikinir commented on GitHub (Jan 14, 2026): > If OpenCode can't work with Claude Max, I'll cancel my subscription and use another model. > > At that point, AI models are no longer a novelty, it's a commodity. > > Claude Code is pure vibe-coded crapware. What model can you suggest that can perform similar to Opus 4.5 for coding?
Author
Owner

@ejj commented on GitHub (Jan 14, 2026):

FWIW in my personal experience ChatGPT 5.2 is basically as good as Opus particularly with higher thinking budgets. Larger context window, some awkward style choices, but it's really a preference thing.

@ejj commented on GitHub (Jan 14, 2026): FWIW in my personal experience ChatGPT 5.2 is basically as good as Opus particularly with higher thinking budgets. Larger context window, some awkward style choices, but it's really a preference thing.
Author
Owner

@rcdailey commented on GitHub (Jan 14, 2026):

FWIW in my personal experience ChatGPT 5.2 is basically as good as Opus particularly with higher thinking budgets. Larger context window, some awkward style choices, but it's really a preference thing.

the choice is unfortunately a $20 or $200 plan though, right? I'm not aware of a $100 plan. I wonder if their $20 version is more generous.

@rcdailey commented on GitHub (Jan 14, 2026): > FWIW in my personal experience ChatGPT 5.2 is basically as good as Opus particularly with higher thinking budgets. Larger context window, some awkward style choices, but it's really a preference thing. the choice is unfortunately a $20 or $200 plan though, right? I'm not aware of a $100 plan. I wonder if their $20 version is more generous.
Author
Owner

@ejj commented on GitHub (Jan 14, 2026):

You can always use zen, though of course you're taking responsibility for cost management ...

@ejj commented on GitHub (Jan 14, 2026): You can always use [zen](https://opencode.ai/docs/zen/), though of course you're taking responsibility for cost management ...
Author
Owner

@jetm commented on GitHub (Jan 14, 2026):

You can always use zen, though of course you're taking responsibility for cost management ...

API usage will be more costly than using a subscription. It would be nice if Zen OpenCode offered a subscription to use any of those models. But I don't know if that is currently possible. I know there are several solutions out there like OpenRouter with API usage, but there is none to use a subscription allowing you to select any of the well-known current models.

@jetm commented on GitHub (Jan 14, 2026): > You can always use [zen](https://opencode.ai/docs/zen/), though of course you're taking responsibility for cost management ... API usage will be more costly than using a subscription. It would be nice if Zen OpenCode offered a subscription to use any of those models. But I don't know if that is currently possible. I know there are several solutions out there like OpenRouter with API usage, but there is none to use a subscription allowing you to select any of the well-known current models.
Author
Owner

@skhaz commented on GitHub (Jan 14, 2026):

Last time I was using pay per token I ended 50 dolars per day.On 14 Jan 2026, at 19:46, Javier Tia @.***> wrote:jetm left a comment (anomalyco/opencode#7410)

You can always use zen, though of course you're taking responsibility for cost management ...

API usage will be more costly than using a subscription. It would be nice if Zen OpenCode offered a subscription to use any of those models. But I don't know if that is currently possible. I know there are several solutions out there like OpenRouter with API usage, but there is none to use a subscription allowing you to select any of the well-known current models.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

@skhaz commented on GitHub (Jan 14, 2026): Last time I was using pay per token I ended 50 dolars per day.On 14 Jan 2026, at 19:46, Javier Tia ***@***.***> wrote:jetm left a comment (anomalyco/opencode#7410) You can always use zen, though of course you're taking responsibility for cost management ... API usage will be more costly than using a subscription. It would be nice if Zen OpenCode offered a subscription to use any of those models. But I don't know if that is currently possible. I know there are several solutions out there like OpenRouter with API usage, but there is none to use a subscription allowing you to select any of the well-known current models. —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
Author
Owner

@jetm commented on GitHub (Jan 14, 2026):

Last time I was using pay per token I ended 50 dolars per day.

Yes, that has been my experience too.

@jetm commented on GitHub (Jan 14, 2026): > Last time I was using pay per token I ended 50 dolars per day. Yes, that has been my experience too.
Author
Owner

@NazmiAltun commented on GitHub (Jan 14, 2026):

I started to face this issue again on opencode. F.U Anthropic!

@NazmiAltun commented on GitHub (Jan 14, 2026): I started to face this issue again on opencode. F.U Anthropic!
Author
Owner

@momomo commented on GitHub (Jan 14, 2026):

Aside from all the complaining ... this can't be impossible to get around can it?

I bet Anthropic will keep adjusting their software to block any new implementations, but mimicking an existing Claude Code installation from my computer to make the calls, can't be impossible, can it?

Whatever the Claude Code application is doing, maybe even refreshing tokens every 1 minute, we should be able to do that too, right? If we start off with a logged in token, it must be the headers or similar that they have introduced some detection mechanism for on their backend, but this should be possible to mimic, no?

Of course, whenever they change the way inevitably something would break until someone again looks at it, but perhaps adding a little snitch network monitor and forcing a claude code installation to be present and snooping on it and sending it to opencode, if they are refreshing tokens.

Of course there are 100's of ways this can be made difficult on their end, but not impossible ...

@momomo commented on GitHub (Jan 14, 2026): Aside from all the complaining ... this can't be impossible to get around can it? I bet Anthropic will keep adjusting their software to block any new implementations, but mimicking an existing Claude Code installation from my computer to make the calls, can't be impossible, can it? Whatever the Claude Code application is doing, maybe even refreshing tokens every 1 minute, we should be able to do that too, right? If we start off with a logged in token, it must be the headers or similar that they have introduced some detection mechanism for on their backend, but this should be possible to mimic, no? Of course, whenever they change the way inevitably something would break until someone again looks at it, but perhaps adding a little snitch network monitor and forcing a claude code installation to be present and snooping on it and sending it to opencode, if they are refreshing tokens. Of course there are 100's of ways this can be made difficult on their end, but not impossible ...
Author
Owner

@westito commented on GitHub (Jan 15, 2026):

@momomo Workaround is literally mimick Claude Coude. Specific headers in query, specific text in system prompt. Specific tool naming. Anthropic always change this a bit, update Claude Code with new changes, but other tools can't follow.

From a business perspective, Anthropic's behavior is understandable. The "Pro/Max" subscription is fundamentally loss-making for the company. As many have pointed out, using the pure API costs significantly more—that's the real price. This is product bundling for them, steering users toward Claude Code and their own services. Subscribers who don't fully utilize their plan essentially subsidize those who use it constantly. Anthropic can afford to do this, but Zen couldn't finance a subscription package the same way. They can only purchase tokens at the same API price as anyone else, and this model only works if there are enough subscribers who don't max out their quota to cover the heavy users—or if you have investors backing you.

Pro tip by the way: you can also use Opus 4.5 in GitHub Copilot. Sure, the context is smaller and you'll hit rate limits sooner, but ChatGPT 5-mini is free. If you set it as a subagent, you can offload a lot of tasks that won't count against your quota. Also worth setting up Sonnet as a custom subagent for specific tasks—makes your quota last longer.

@westito commented on GitHub (Jan 15, 2026): @momomo Workaround is literally mimick Claude Coude. Specific headers in query, specific text in system prompt. Specific tool naming. Anthropic always change this a bit, update Claude Code with new changes, but other tools can't follow. From a business perspective, Anthropic's behavior is understandable. The "Pro/Max" subscription is fundamentally loss-making for the company. As many have pointed out, using the pure API costs significantly more—that's the real price. This is product bundling for them, steering users toward Claude Code and their own services. Subscribers who don't fully utilize their plan essentially subsidize those who use it constantly. Anthropic can afford to do this, but Zen couldn't finance a subscription package the same way. They can only purchase tokens at the same API price as anyone else, and this model only works if there are enough subscribers who don't max out their quota to cover the heavy users—or if you have investors backing you. **Pro tip** by the way: you can also use Opus 4.5 in GitHub Copilot. Sure, the context is smaller and you'll hit rate limits sooner, but ChatGPT 5-mini is free. If you set it as a subagent, you can offload a lot of tasks that won't count against your quota. Also worth setting up Sonnet as a custom subagent for specific tasks—makes your quota last longer.
Author
Owner
@pranshuchittora commented on GitHub (Jan 15, 2026):

(

Image
@pranshuchittora commented on GitHub (Jan 15, 2026): : ( <img width="1239" height="70" alt="Image" src="https://github.com/user-attachments/assets/0df67063-d61a-4901-8783-91f7574dbbc3" />
Author
Owner

@westito commented on GitHub (Jan 15, 2026):

Update to version 1.1.21, it is already fixed!

@westito commented on GitHub (Jan 15, 2026): Update to version `1.1.21`, it is already fixed!
Author
Owner

@pranshuchittora commented on GitHub (Jan 15, 2026):

Update to version 1.1.21, it is already fixed!

But the older sessions can't be resumed. /sessions : (

@pranshuchittora commented on GitHub (Jan 15, 2026): > Update to version `1.1.21`, it is already fixed! But the older sessions can't be resumed. `/sessions` : (
Author
Owner

@mehow28 commented on GitHub (Jan 15, 2026):

Update to version 1.1.21, it is already fixed!

But the older sessions can't be resumed. /sessions : (

I just upgraded and opened up yesterdays session on claude sonnet 4.5 succesfully, both win11 desktop and linux

@mehow28 commented on GitHub (Jan 15, 2026): > > Update to version `1.1.21`, it is already fixed! > > But the older sessions can't be resumed. `/sessions` : ( I just upgraded and opened up yesterdays session on claude sonnet 4.5 succesfully, both win11 desktop and linux
Author
Owner

@pranshuchittora commented on GitHub (Jan 15, 2026):

Update to version 1.1.21, it is already fixed!

But the older sessions can't be resumed. /sessions : (

I just upgraded and opened up yesterdays session on claude sonnet 4.5 succesfully, both win11 desktop and linux

Works when Anthropic says “yes.” 🤣

Image
@pranshuchittora commented on GitHub (Jan 15, 2026): > > > Update to version `1.1.21`, it is already fixed! > > > > > > But the older sessions can't be resumed. `/sessions` : ( > > I just upgraded and opened up yesterdays session on claude sonnet 4.5 succesfully, both win11 desktop and linux Works when Anthropic says “yes.” 🤣 <img width="1512" height="366" alt="Image" src="https://github.com/user-attachments/assets/6952d3f6-c00d-48d4-b8ad-fad0053c4e40" />
Author
Owner

@momomo commented on GitHub (Jan 16, 2026):

@momomo Workaround is literally mimick Claude Coude. Specific headers in query, specific text in system prompt. Specific tool naming. Anthropic always change this a bit, update Claude Code with new changes, but other tools can't follow.

From a business perspective, Anthropic's behavior is understandable. The "Pro/Max" subscription is fundamentally loss-making for the company. As many have pointed out, using the pure API costs significantly more—that's the real price. This is product bundling for them, steering users toward Claude Code and their own services. Subscribers who don't fully utilize their plan essentially subsidize those who use it constantly. Anthropic can afford to do this, but Zen couldn't finance a subscription package the same way. They can only purchase tokens at the same API price as anyone else, and this model only works if there are enough subscribers who don't max out their quota to cover the heavy users—or if you have investors backing you.

Pro tip by the way: you can also use Opus 4.5 in GitHub Copilot. Sure, the context is smaller and you'll hit rate limits sooner, but ChatGPT 5-mini is free. If you set it as a subagent, you can offload a lot of tasks that won't count against your quota. Also worth setting up Sonnet as a custom subagent for specific tasks—makes your quota last longer.

Here's a cleaned-up version that keeps your voice and all your points:

Thanks for the tips. I'm still early in my journey with these tools and figuring out the best way to utilize them.
Right now, I spend a lot of time analyzing responses and crafting replies back, which feels inefficient. I'm not certain yet whether I want to move toward more automation, but I can see how using multiple tools strategically would help.
As for GitHub Copilot: if you mean inside VS Code, unfortunately that's not a great fit for me. I'm an IntelliJ user, and the refactoring tools in VS Code and Cursor feel clunky or are missing features I rely on. So for now, I'm primarily using other agents through the browser for feedback.

I noticed your answer was polished with an agent, while mine isn't ( (yet, yes em dashes gave it away while writing my reply and realizing i had dots ... everywhere, but i guess its a good thing now as we don't try to pretend we are always perfect, last one was me typing freely). I was hesitant to use Claude to clean up my reply, worried something might get lost in translation... but let me try.

Oh, its pretty good, but i kind of hate those em dashes just looks so fake when applied to me! So I told Claude to remove them! I wonder how this process can become more automated inside the browser in the future. Fixing texts and dots ... and grammar as we type ... instead of running it through afterwwards and then reeading it back.

@momomo commented on GitHub (Jan 16, 2026): > [@momomo](https://github.com/momomo) Workaround is literally mimick Claude Coude. Specific headers in query, specific text in system prompt. Specific tool naming. Anthropic always change this a bit, update Claude Code with new changes, but other tools can't follow. > > From a business perspective, Anthropic's behavior is understandable. The "Pro/Max" subscription is fundamentally loss-making for the company. As many have pointed out, using the pure API costs significantly more—that's the real price. This is product bundling for them, steering users toward Claude Code and their own services. Subscribers who don't fully utilize their plan essentially subsidize those who use it constantly. Anthropic can afford to do this, but Zen couldn't finance a subscription package the same way. They can only purchase tokens at the same API price as anyone else, and this model only works if there are enough subscribers who don't max out their quota to cover the heavy users—or if you have investors backing you. > > **Pro tip** by the way: you can also use Opus 4.5 in GitHub Copilot. Sure, the context is smaller and you'll hit rate limits sooner, but ChatGPT 5-mini is free. If you set it as a subagent, you can offload a lot of tasks that won't count against your quota. Also worth setting up Sonnet as a custom subagent for specific tasks—makes your quota last longer. Here's a cleaned-up version that keeps your voice and all your points: Thanks for the tips. I'm still early in my journey with these tools and figuring out the best way to utilize them. Right now, I spend a lot of time analyzing responses and crafting replies back, which feels inefficient. I'm not certain yet whether I want to move toward more automation, but I can see how using multiple tools strategically would help. As for GitHub Copilot: if you mean inside VS Code, unfortunately that's not a great fit for me. I'm an IntelliJ user, and the refactoring tools in VS Code and Cursor feel clunky or are missing features I rely on. So for now, I'm primarily using other agents through the browser for feedback. I noticed your answer was polished with an agent, while mine isn't ( (yet, yes em dashes gave it away while writing my reply and realizing i had dots ... everywhere, but i guess its a good thing now as we don't try to pretend we are always perfect, last one was me typing freely). I was hesitant to use Claude to clean up my reply, worried something might get lost in translation... but let me try. Oh, its pretty good, but i kind of hate those em dashes just looks so fake when applied to me! So I told Claude to remove them! I wonder how this process can become more automated inside the browser in the future. Fixing texts and dots ... and grammar as we type ... instead of running it through afterwwards and then reeading it back.
Author
Owner

@westito commented on GitHub (Jan 16, 2026):

I mean you can login to Copilot and use Copilot subscription in OpenCode, not in IntelliJ/VSCode. It's not polished, I simply translate from my own language. My thought was too long and too complex, and I afraid of can't write it down properly in English. Anyways, I like dashes - often makes the flow of thought more articulated 😄 -, and I use regularly regardless of using model to translate or not.

@westito commented on GitHub (Jan 16, 2026): I mean you can login to Copilot and use Copilot subscription in OpenCode, not in IntelliJ/VSCode. It's not polished, I simply translate from my own language. My thought was too long and too complex, and I afraid of can't write it down properly in English. Anyways, I like dashes - often makes the flow of thought more articulated 😄 -, and I use regularly regardless of using model to translate or not.
Author
Owner

@momomo commented on GitHub (Jan 19, 2026):

Route opencode through a local Claude instance CLI instead of the API.

Rather than calling Anthropic’s API directly, opencode could communicate only with a user-installed Claude (e.g. via Claude CLI). Prompts, context, and tool output are piped to the local Claude process, and responses are read back from stdout or IPC.

At that point, opencode is no longer an API client — it’s automation layered on top of a user-controlled Claude installation.

Why this is hard to block:

  • Users already script Claude via CLIs, editors, and agent loops
  • Popular patterns (e.g. Ralph Loop–style iteration) look identical to this
  • From the vendor’s perspective, this is just a human-installed client running locally

Blocking this would require detecting or limiting automation inside Claude itself, which would break legitimate power-user workflows.

Tradeoffs:

  • Higher latency than direct API calls
  • Manual context/state management
  • Some API-only features may be unavailable
  • More setup friction (local install + auth)

Bottom line:
Once interaction is local, the API enforcement boundary disappears. This pattern is hard to prevent without collateral damage and is likely to persist across agents and models.

@momomo commented on GitHub (Jan 19, 2026): Route opencode through a local Claude instance **CLI** instead of the API. Rather than calling Anthropic’s API directly, opencode could communicate only with a user-installed Claude (e.g. via Claude **CLI**). Prompts, context, and tool output are piped to the local Claude process, and responses are read back from stdout or IPC. At that point, opencode is no longer an API client — it’s **automation layered on top of a user-controlled Claude installation**. **Why this is hard to block:** - Users already script Claude via CLIs, editors, and agent loops - Popular patterns (e.g. Ralph Loop–style iteration) look identical to this - From the vendor’s perspective, this is just a human-installed client running locally Blocking this would require detecting or limiting automation *inside* Claude itself, which would break legitimate power-user workflows. **Tradeoffs:** - Higher latency than direct API calls - Manual context/state management - Some API-only features may be unavailable - More setup friction (local install + auth) **Bottom line:** Once interaction is local, the API enforcement boundary disappears. This pattern is hard to prevent without collateral damage and is likely to persist across agents and models.
Author
Owner

@jetm commented on GitHub (Jan 19, 2026):

Route opencode through a local Claude instance CLI instead of the API.

Rather than calling Anthropic’s API directly, opencode could communicate only with a user-installed Claude (e.g. via Claude CLI). Prompts, context, and tool output are piped to the local Claude process, and responses are read back from stdout or IPC.

I am doing a similar approach but using Claude SDK. Code is at https://github.com/jetm/tooling and put a table to compare the pros and cons of using API vs. Claude SDK.

Edit: Adding the link to the table https://github.com/jetm/tooling?tab=readme-ov-file#architecture-claude-sdk-vs-api

@jetm commented on GitHub (Jan 19, 2026): > Route opencode through a local Claude instance **CLI** instead of the API. > > Rather than calling Anthropic’s API directly, opencode could communicate only with a user-installed Claude (e.g. via Claude **CLI**). Prompts, context, and tool output are piped to the local Claude process, and responses are read back from stdout or IPC. I am doing a similar approach but using Claude SDK. Code is at https://github.com/jetm/tooling and put a table to compare the pros and cons of using API vs. Claude SDK. Edit: Adding the link to the table https://github.com/jetm/tooling?tab=readme-ov-file#architecture-claude-sdk-vs-api
Author
Owner

@westito commented on GitHub (Jan 19, 2026):

Route opencode through a local Claude instance CLI instead of the API.

Rather than calling Anthropic’s API directly, opencode could communicate only with a user-installed Claude (e.g. via Claude CLI). Prompts, context, and tool output are piped to the local Claude process, and responses are read back from stdout or IPC.

At that point, opencode is no longer an API client — it’s automation layered on top of a user-controlled Claude installation.

Why this is hard to block:

  • Users already script Claude via CLIs, editors, and agent loops
  • Popular patterns (e.g. Ralph Loop–style iteration) look identical to this
  • From the vendor’s perspective, this is just a human-installed client running locally

Blocking this would require detecting or limiting automation inside Claude itself, which would break legitimate power-user workflows.

Tradeoffs:

  • Higher latency than direct API calls
  • Manual context/state management
  • Some API-only features may be unavailable
  • More setup friction (local install + auth)

Bottom line: Once interaction is local, the API enforcement boundary disappears. This pattern is hard to prevent without collateral damage and is likely to persist across agents and models.

You can't just proxy OpenCode or any other agentic tool through Claude Code CLI. OC has its own toolset and system messages. That's the point which distinguishes OC from CC. So basically its impossible to do that, or if you do it, it will be a CC labeled as OpenCode with no advantage over CC.

@westito commented on GitHub (Jan 19, 2026): > Route opencode through a local Claude instance **CLI** instead of the API. > > Rather than calling Anthropic’s API directly, opencode could communicate only with a user-installed Claude (e.g. via Claude **CLI**). Prompts, context, and tool output are piped to the local Claude process, and responses are read back from stdout or IPC. > > At that point, opencode is no longer an API client — it’s **automation layered on top of a user-controlled Claude installation**. > > **Why this is hard to block:** > > * Users already script Claude via CLIs, editors, and agent loops > * Popular patterns (e.g. Ralph Loop–style iteration) look identical to this > * From the vendor’s perspective, this is just a human-installed client running locally > > Blocking this would require detecting or limiting automation _inside_ Claude itself, which would break legitimate power-user workflows. > > **Tradeoffs:** > > * Higher latency than direct API calls > * Manual context/state management > * Some API-only features may be unavailable > * More setup friction (local install + auth) > > **Bottom line:** Once interaction is local, the API enforcement boundary disappears. This pattern is hard to prevent without collateral damage and is likely to persist across agents and models. You can't just proxy OpenCode or any other agentic tool through Claude Code CLI. OC has its own toolset and system messages. That's the point which distinguishes OC from CC. So basically its impossible to do that, or if you do it, it will be a CC labeled as OpenCode with no advantage over CC.
Author
Owner

@westito commented on GitHub (Jan 19, 2026):

Route opencode through a local Claude instance CLI instead of the API.
Rather than calling Anthropic’s API directly, opencode could communicate only with a user-installed Claude (e.g. via Claude CLI). Prompts, context, and tool output are piped to the local Claude process, and responses are read back from stdout or IPC.

I am doing a similar approach but using Claude SDK. Code is at https://github.com/jetm/tooling and put a table to compare the pros and cons of using API vs. Claude SDK.

Claude SDK is just a wrapper around HTTP API thats works only with token, it won't solve the SSO problem.
Edit: The Python Claude SDK you pointed out is a CC wrapper - not the raw API - but the problem is the same. You can send user messages as like you use CC, but you CAN'T change built-in tools or system massage that the most important part for a custom agent.

@westito commented on GitHub (Jan 19, 2026): > > Route opencode through a local Claude instance **CLI** instead of the API. > > Rather than calling Anthropic’s API directly, opencode could communicate only with a user-installed Claude (e.g. via Claude **CLI**). Prompts, context, and tool output are piped to the local Claude process, and responses are read back from stdout or IPC. > > I am doing a similar approach but using Claude SDK. Code is at https://github.com/jetm/tooling and put a table to compare the pros and cons of using API vs. Claude SDK. Claude SDK is just a wrapper around HTTP API thats works only with token, it won't solve the SSO problem. Edit: The Python Claude SDK you pointed out is a CC wrapper - not the raw API - but the problem is the same. You can send user messages as like you use CC, but you CAN'T change built-in tools or system massage that the most important part for a custom agent.
Author
Owner

@phil65 commented on GitHub (Jan 19, 2026):

Route opencode through a local Claude instance CLI instead of the API.
Rather than calling Anthropic’s API directly, opencode could communicate only with a user-installed Claude (e.g. via Claude CLI). Prompts, context, and tool output are piped to the local Claude process, and responses are read back from stdout or IPC.

I am doing a similar approach but using Claude SDK. Code is at jetm/tooling and put a table to compare the pros and cons of using API vs. Claude SDK.

Claude SDK is just a wrapper around HTTP API thats works only with token, it won't solve the SSO problem. Edit: The Python Claude SDK you pointed out is a CC wrapper - not the raw API - but the problem is the same. You can send user messages as like you use CC, but you CAN'T change built-in tools or system massage that the most important part for a custom agent.

Not exactly true. The SDK exposes options to replace the builtin system prompt, claude codes internal tools can get disabled, and own tools can get injected using an in-process MCP server as a bridge. The "real" issues popping up with that approach are more how claude code sdk is tied to its own storage system.

@phil65 commented on GitHub (Jan 19, 2026): > > > Route opencode through a local Claude instance **CLI** instead of the API. > > > Rather than calling Anthropic’s API directly, opencode could communicate only with a user-installed Claude (e.g. via Claude **CLI**). Prompts, context, and tool output are piped to the local Claude process, and responses are read back from stdout or IPC. > > > > > > I am doing a similar approach but using Claude SDK. Code is at [jetm/tooling](https://github.com/jetm/tooling?rgh-link-date=2026-01-19T16%3A35%3A25.000Z) and put a table to compare the pros and cons of using API vs. Claude SDK. > > Claude SDK is just a wrapper around HTTP API thats works only with token, it won't solve the SSO problem. Edit: The Python Claude SDK you pointed out is a CC wrapper - not the raw API - but the problem is the same. You can send user messages as like you use CC, but you CAN'T change built-in tools or system massage that the most important part for a custom agent. Not exactly true. The SDK exposes options to replace the builtin system prompt, claude codes internal tools can get disabled, and own tools can get injected using an in-process MCP server as a bridge. The "real" issues popping up with that approach are more how claude code sdk is tied to its own storage system.
Author
Owner

@westito commented on GitHub (Jan 19, 2026):

I see... true. But I still think it won't allow SSO, because as message say "only for Claude Code" and not "only for Claude SDK". Claude SDK is still a helper lib that wraps Claude API, not the actual product that SSO allowed for. Claude API checks for system message and tool names to authorise Claude Code. If you change any of these, Claude will block even you are using Claude SDK.

@westito commented on GitHub (Jan 19, 2026): I see... true. But I still think it won't allow SSO, because as message say "only for Claude Code" and not "only for Claude SDK". Claude SDK is still a helper lib that wraps Claude API, not the actual product that SSO allowed for. Claude API checks for system message and tool names to authorise Claude Code. If you change any of these, Claude will block even you are using Claude SDK.
Author
Owner

@phil65 commented on GitHub (Jan 19, 2026):

I see... true. But I still think it won't allow SSO, because as message say "only for Claude Code" and not "only for Claude SDK". Claude SDK is still a helper lib that wraps Claude API, not the actual product that SSO allowed for. Claude API checks for system message and tool names to authorise Claude Code. If you change any of these, Claude will block even you are using Claude SDK.

The Claude Agent SDK directly uses the Claude code binary, and also uses Claude codes auth.
I have coded exactly that, an OpenCode compatible server which allows running "agent sdks" as well as ACP agents natively while injecting tools to replace the builtin ones. That appraoch wasnt and isnt affected in any way.

@phil65 commented on GitHub (Jan 19, 2026): > I see... true. But I still think it won't allow SSO, because as message say "only for Claude Code" and not "only for Claude SDK". Claude SDK is still a helper lib that wraps Claude API, not the actual product that SSO allowed for. Claude API checks for system message and tool names to authorise Claude Code. If you change any of these, Claude will block even you are using Claude SDK. The Claude Agent SDK directly uses the Claude code binary, and also uses Claude codes auth. I have coded exactly that, an OpenCode compatible server which allows running "agent sdks" as well as ACP agents natively while injecting tools to replace the builtin ones. That appraoch wasnt and isnt affected in any way.
Author
Owner

@thomastthai commented on GitHub (Jan 25, 2026):

I wrote a simple Go CLI program to use Claude's OAuth with my Max 200 plan. The CLI program can send prompts and get responses including tool use. There isn't anything unique about this CLI program. Why is it not blocked?

@thomastthai commented on GitHub (Jan 25, 2026): I wrote a simple Go CLI program to use Claude's OAuth with my Max 200 plan. The CLI program can send prompts and get responses including tool use. There isn't anything unique about this CLI program. Why is it not blocked?
Author
Owner

@westito commented on GitHub (Jan 25, 2026):

Are you use fully customised system message with "OpenCode" in it? It's funny but Anthropic blocks request when system message contains the "opencode" phrase 😂

@westito commented on GitHub (Jan 25, 2026): Are you use fully customised system message with "OpenCode" in it? It's funny but Anthropic blocks request when system message contains the "opencode" phrase 😂
Author
Owner

@thomastthai commented on GitHub (Jan 25, 2026):

//go:build ignore

package main

import (
	"bufio"
	"bytes"
	"crypto/rand"
	"crypto/sha256"
	"encoding/base64"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"os"
	"os/exec"
	"runtime"
	"strings"
)

// OAuthTokens represents the complete token response
type OAuthTokens struct {
	TokenType    string                 `json:"token_type"`
	AccessToken  string                 `json:"access_token"`
	ExpiresIn    int                    `json:"expires_in"`
	RefreshToken string                 `json:"refresh_token"`
	Scope        string                 `json:"scope"`
	Organization map[string]interface{} `json:"organization"`
	Account      map[string]interface{} `json:"account"`
	ExpiresAt    int64                  `json:"expires_at"`
	CreatedAt    string                 `json:"created_at"`
}

const (
	clientID     = "9d1c250a-e61b-44d9-88ed-5944d1962f5e"
	authorizeURL = "https://claude.ai/oauth/authorize"
	tokenURL     = "https://console.anthropic.com/v1/oauth/token"
	redirectURI  = "https://console.anthropic.com/oauth/code/callback"
	scope        = "org:create_api_key user:profile user:inference"
)

func main() {
	fmt.Println("=== Claude Max OAuth - Working Implementation ===")
	fmt.Println("Based on anthropic-oauth-max-plan CLI")
	fmt.Println()

	// Generate PKCE parameters
	verifier := generateCodeVerifier()
	challenge := generateCodeChallenge(verifier)
	state := generateState()

	// Build authorization URL
	authURL := buildAuthURL(challenge, state)

	fmt.Println("🔐 Starting OAuth flow...")
	fmt.Println()
	fmt.Println("Opening browser to:")
	fmt.Println(authURL)
	fmt.Println()

	openBrowser(authURL)

	fmt.Println("=" + strings.Repeat("=", 69))
	fmt.Println("After authorizing, the page will show a code and state.")
	fmt.Println("Copy them and paste in this format: code#state")
	fmt.Println("Example: abc123xyz...#def456uvw...")
	fmt.Println("=" + strings.Repeat("=", 69))
	fmt.Println()

	reader := bufio.NewReader(os.Stdin)
	fmt.Print("Paste code#state here: ")
	input, _ := reader.ReadString('\n')
	codeState := strings.TrimSpace(input)

	if !strings.Contains(codeState, "#") {
		fmt.Println("❌ Invalid format. Expected: code#state")
		return
	}

	parts := strings.Split(codeState, "#")
	code := parts[0]
	returnedState := parts[1]

	// Validate state (CSRF protection)
	if returnedState != state {
		fmt.Println("❌ State mismatch - possible CSRF attack")
		fmt.Printf("Expected: %s\n", state)
		fmt.Printf("Got:      %s\n", returnedState)
		return
	}

	fmt.Println("\n✅ Authorization code received!")
	fmt.Println("\n🔄 Exchanging for tokens...")

	// Exchange code for tokens
	tokens, err := exchangeCodeForTokens(code, verifier, returnedState)
	if err != nil {
		fmt.Printf("❌ Token exchange failed: %v\n", err)
		return
	}

	fmt.Println("✅ Tokens obtained successfully!")
	fmt.Println()
	fmt.Printf("Access Token:  %s...\n", tokens.AccessToken[:40])
	fmt.Printf("Refresh Token: %s...\n", tokens.RefreshToken[:40])
	fmt.Printf("Scope:         %s\n", tokens.Scope)
	fmt.Printf("Expires In:    %d seconds (%d hours)\n", tokens.ExpiresIn, tokens.ExpiresIn/3600)
	fmt.Println()

	// Test the token immediately
	fmt.Println("🧪 Testing token with API call...")
	if err := testToken(tokens.AccessToken); err != nil {
		fmt.Printf("❌ API test failed: %v\n", err)
		return
	}

	fmt.Println("\n🎉 SUCCESS! OAuth authentication working!")
	fmt.Println()
	fmt.Println("✅ Token exchange successful")
	fmt.Println("✅ API authentication successful")
	fmt.Println("✅ Claude Max OAuth tokens work with Anthropic API!")
}

func buildAuthURL(challenge, state string) string {
	params := url.Values{
		"code":                  {"true"},
		"client_id":             {clientID},
		"redirect_uri":          {redirectURI},
		"response_type":         {"code"},
		"scope":                 {scope},
		"code_challenge":        {challenge},
		"code_challenge_method": {"S256"},
		"state":                 {state},
	}
	return authorizeURL + "?" + params.Encode()
}

func exchangeCodeForTokens(code, codeVerifier, state string) (*OAuthTokens, error) {
	requestBody := map[string]string{
		"code":          code,
		"state":         state,
		"grant_type":    "authorization_code",
		"client_id":     clientID,
		"redirect_uri":  redirectURI,
		"code_verifier": codeVerifier,
	}

	jsonData, _ := json.Marshal(requestBody)

	resp, err := http.Post(tokenURL, "application/json", bytes.NewBuffer(jsonData))
	if err != nil {
		return nil, fmt.Errorf("request failed: %w", err)
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)

	if resp.StatusCode != 200 {
		return nil, fmt.Errorf("status %d: %s", resp.StatusCode, string(body))
	}

	var tokens OAuthTokens
	if err := json.Unmarshal(body, &tokens); err != nil {
		return nil, fmt.Errorf("parse failed: %w", err)
	}

	// Add timestamps (for compatibility with CLI format)
	tokens.ExpiresAt = int64(tokens.ExpiresIn) * 1000
	tokens.CreatedAt = "now"

	return &tokens, nil
}

func testToken(accessToken string) error {
	// Test 1: OAuth validation
	fmt.Println("\n📝 Request 1:")
	fmt.Println("Prompt: Say 'OAuth works!' if you receive this.")

	requestBody1 := map[string]interface{}{
		"model":      "claude-sonnet-4-5",
		"max_tokens": 100,
		"system": []map[string]interface{}{
			{
				"type": "text",
				"text": "You are Claude Code, Anthropic's official CLI for Claude.",
			},
		},
		"messages": []map[string]interface{}{
			{
				"role":    "user",
				"content": "Say 'OAuth works!' if you receive this.",
			},
		},
	}

	jsonData1, _ := json.Marshal(requestBody1)
	req1, _ := http.NewRequest("POST", "https://api.anthropic.com/v1/messages", bytes.NewBuffer(jsonData1))
	req1.Header.Set("Authorization", "Bearer "+accessToken)
	req1.Header.Set("Content-Type", "application/json")
	req1.Header.Set("anthropic-version", "2023-06-01")
	req1.Header.Set("anthropic-beta", "oauth-2025-04-20,claude-code-20250219,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14")

	resp1, err := http.DefaultClient.Do(req1)
	if err != nil {
		return fmt.Errorf("request failed: %w", err)
	}
	defer resp1.Body.Close()

	body1, _ := io.ReadAll(resp1.Body)

	if resp1.StatusCode != 200 {
		return fmt.Errorf("API returned %d: %s", resp1.StatusCode, string(body1))
	}

	var response1 map[string]interface{}
	json.Unmarshal(body1, &response1)

	if content, ok := response1["content"].([]interface{}); ok && len(content) > 0 {
		if textBlock, ok := content[0].(map[string]interface{}); ok {
			if text, ok := textBlock["text"].(string); ok {
				fmt.Printf("Response 1: %s\n", text)
			}
		}
	}

	// Test 2: Plan awareness test
	fmt.Println("\n📝 Request 2:")
	fmt.Println("Prompt: What is the maximum context window for Claude models?")

	requestBody2 := map[string]interface{}{
		"model":      "claude-sonnet-4-5",
		"max_tokens": 200,
		"system": []map[string]interface{}{
			{
				"type": "text",
				"text": "You are Claude Code, Anthropic's official CLI for Claude.",
			},
		},
		"messages": []map[string]interface{}{
			{
				"role":    "user",
				"content": "What is the maximum context window for Claude models?",
			},
		},
	}

	jsonData2, _ := json.Marshal(requestBody2)
	req2, _ := http.NewRequest("POST", "https://api.anthropic.com/v1/messages", bytes.NewBuffer(jsonData2))
	req2.Header.Set("Authorization", "Bearer "+accessToken)
	req2.Header.Set("Content-Type", "application/json")
	req2.Header.Set("anthropic-version", "2023-06-01")
	req2.Header.Set("anthropic-beta", "oauth-2025-04-20,claude-code-20250219,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14")

	resp2, err := http.DefaultClient.Do(req2)
	if err != nil {
		return fmt.Errorf("request failed: %w", err)
	}
	defer resp2.Body.Close()

	body2, _ := io.ReadAll(resp2.Body)

	if resp2.StatusCode != 200 {
		return fmt.Errorf("API returned %d: %s", resp2.StatusCode, string(body2))
	}

	var response2 map[string]interface{}
	json.Unmarshal(body2, &response2)

	if content, ok := response2["content"].([]interface{}); ok && len(content) > 0 {
		if textBlock, ok := content[0].(map[string]interface{}); ok {
			if text, ok := textBlock["text"].(string); ok {
				fmt.Printf("Response 2: %s\n", text)
			}
		}
	}

	// Test 3: Tool calls test - THIS MAY GET BLOCKED
	fmt.Println("\n📝 Request 3 (WITH TOOLS):")
	fmt.Println("Prompt: List files in the current directory")
	fmt.Println("Tools: Bash, Read (like Claude Code uses)")

	requestBody3 := map[string]interface{}{
		"model":      "claude-sonnet-4-5",
		"max_tokens": 500,
		"system": []map[string]interface{}{
			{
				"type": "text",
				"text": "You are Claude Code, Anthropic's official CLI for Claude.",
			},
		},
		"tools": []map[string]interface{}{
			{
				"name":        "Bash",
				"description": "Executes a bash command in the terminal",
				"input_schema": map[string]interface{}{
					"type": "object",
					"properties": map[string]interface{}{
						"command": map[string]interface{}{
							"type":        "string",
							"description": "The bash command to execute",
						},
					},
					"required": []string{"command"},
				},
			},
			{
				"name":        "Read",
				"description": "Reads a file from the filesystem",
				"input_schema": map[string]interface{}{
					"type": "object",
					"properties": map[string]interface{}{
						"file_path": map[string]interface{}{
							"type":        "string",
							"description": "The path to the file to read",
						},
					},
					"required": []string{"file_path"},
				},
			},
		},
		"messages": []map[string]interface{}{
			{
				"role":    "user",
				"content": "List files in the current directory using the Bash tool.",
			},
		},
	}

	jsonData3, _ := json.Marshal(requestBody3)
	req3, _ := http.NewRequest("POST", "https://api.anthropic.com/v1/messages", bytes.NewBuffer(jsonData3))
	req3.Header.Set("Authorization", "Bearer "+accessToken)
	req3.Header.Set("Content-Type", "application/json")
	req3.Header.Set("anthropic-version", "2023-06-01")
	req3.Header.Set("anthropic-beta", "oauth-2025-04-20,claude-code-20250219,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14")

	resp3, err := http.DefaultClient.Do(req3)
	if err != nil {
		return fmt.Errorf("request 3 failed: %w", err)
	}
	defer resp3.Body.Close()

	body3, _ := io.ReadAll(resp3.Body)

	fmt.Printf("\nResponse 3 Status: %d\n", resp3.StatusCode)

	if resp3.StatusCode != 200 {
		fmt.Printf("❌ BLOCKED! Response: %s\n", string(body3))
		return fmt.Errorf("tool call request blocked: %s", string(body3))
	}

	var response3 map[string]interface{}
	json.Unmarshal(body3, &response3)

	// Pretty print the response
	prettyJSON, _ := json.MarshalIndent(response3, "", "  ")
	fmt.Printf("✅ Tool call ALLOWED! Response:\n%s\n", string(prettyJSON))

	return nil
}

func generateCodeVerifier() string {
	b := make([]byte, 32)
	rand.Read(b)
	return base64URLEncode(b)
}

func generateCodeChallenge(verifier string) string {
	hash := sha256.Sum256([]byte(verifier))
	return base64URLEncode(hash[:])
}

func generateState() string {
	b := make([]byte, 32)
	rand.Read(b)
	return base64URLEncode(b)
}

func base64URLEncode(data []byte) string {
	encoded := base64.RawURLEncoding.EncodeToString(data)
	return encoded
}

func openBrowser(url string) {
	var cmd *exec.Cmd
	switch runtime.GOOS {
	case "darwin":
		cmd = exec.Command("open", url)
	case "windows":
		cmd = exec.Command("rundll32", "url.dll,FileProtocolHandler", url)
	default:
		cmd = exec.Command("xdg-open", url)
	}
	cmd.Start()
}

Output

❯ ./tmp/oauth_working_implementation
=== Claude Max OAuth - Working Implementation ===
Based on anthropic-oauth-max-plan CLI

🔐 Starting OAuth flow...

Opening browser to:
https://claude.ai/oauth/authorize?client_id=9d1c250a-...

======================================================================
After authorizing, the page will show a code and state.
Copy them and paste in this format: code#state
Example: abc123xyz...#def456uvw...

Paste code#state here: gJzKzzSUrDl5O...

Authorization code received!

🔄 Exchanging for tokens...
Tokens obtained successfully!

Access Token: sk-ant-oat01-t-fN_...
Refresh Token: sk-ant-ort01-Ln5cA...
Scope: user:inference user:profile
Expires In: 28800 seconds (8 hours)

🧪 Testing token with API call...

📝 Request 1:
Prompt: Say 'OAuth works!' if you receive this.
Response 1: OAuth works!

📝 Request 2:
Prompt: What is the maximum context window for Claude models?
Response 2: The maximum context window varies by Claude model:

  • Claude 3.5 Sonnet and Claude 3.5 Haiku: 200,000 tokens (~150,000 words or 500+ pages)
  • Claude 3 Opus, Claude 3 Sonnet, and Claude 3 Haiku: 200,000 tokens
  • Earlier models (Claude 2.1, Claude 2.0, Claude Instant): Had smaller context windows (100,000-200,000 tokens depending on the version)

The latest Claude models can handle approximately 200,000 tokens in their context window, which is one of the largest available among major AI models. This allows for processing entire books, long documents, or extended conversations in a single interaction.

Note: The actual usable context may be slightly less depending on the API, system prom

📝 Request 3 (WITH TOOLS):
Prompt: List files in the current directory
Tools: Bash, Read (like Claude Code uses)

Response 3 Status: 200
Tool call ALLOWED! Response:
{
"content": [
{
"text": "I'll list the files in the current directory for you.",
"type": "text"
},
{
"id": "toolu_015oY9G2bffHKdAruFVXPVeQ",
"input": {
"command": "ls -la"
},
"name": "Bash",
"type": "tool_use"
}
],
"id": "msg_01RK4Tay8nctq9c5siVbtR8E",
"model": "claude-sonnet-4-5-20250929",
"role": "assistant",
"stop_reason": "tool_use",
"stop_sequence": null,
"type": "message",
"usage": {
"cache_creation": {
"ephemeral_1h_input_tokens": 0,
"ephemeral_5m_input_tokens": 0
},
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"input_tokens": 665,
"output_tokens": 67,
"service_tier": "standard"
}
}

🎉 SUCCESS! OAuth authentication working!

Token exchange successful
API authentication successful
Claude Max OAuth tokens work with Anthropic API!

@thomastthai commented on GitHub (Jan 25, 2026): ```go //go:build ignore package main import ( "bufio" "bytes" "crypto/rand" "crypto/sha256" "encoding/base64" "encoding/json" "fmt" "io" "net/http" "net/url" "os" "os/exec" "runtime" "strings" ) // OAuthTokens represents the complete token response type OAuthTokens struct { TokenType string `json:"token_type"` AccessToken string `json:"access_token"` ExpiresIn int `json:"expires_in"` RefreshToken string `json:"refresh_token"` Scope string `json:"scope"` Organization map[string]interface{} `json:"organization"` Account map[string]interface{} `json:"account"` ExpiresAt int64 `json:"expires_at"` CreatedAt string `json:"created_at"` } const ( clientID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e" authorizeURL = "https://claude.ai/oauth/authorize" tokenURL = "https://console.anthropic.com/v1/oauth/token" redirectURI = "https://console.anthropic.com/oauth/code/callback" scope = "org:create_api_key user:profile user:inference" ) func main() { fmt.Println("=== Claude Max OAuth - Working Implementation ===") fmt.Println("Based on anthropic-oauth-max-plan CLI") fmt.Println() // Generate PKCE parameters verifier := generateCodeVerifier() challenge := generateCodeChallenge(verifier) state := generateState() // Build authorization URL authURL := buildAuthURL(challenge, state) fmt.Println("🔐 Starting OAuth flow...") fmt.Println() fmt.Println("Opening browser to:") fmt.Println(authURL) fmt.Println() openBrowser(authURL) fmt.Println("=" + strings.Repeat("=", 69)) fmt.Println("After authorizing, the page will show a code and state.") fmt.Println("Copy them and paste in this format: code#state") fmt.Println("Example: abc123xyz...#def456uvw...") fmt.Println("=" + strings.Repeat("=", 69)) fmt.Println() reader := bufio.NewReader(os.Stdin) fmt.Print("Paste code#state here: ") input, _ := reader.ReadString('\n') codeState := strings.TrimSpace(input) if !strings.Contains(codeState, "#") { fmt.Println("❌ Invalid format. Expected: code#state") return } parts := strings.Split(codeState, "#") code := parts[0] returnedState := parts[1] // Validate state (CSRF protection) if returnedState != state { fmt.Println("❌ State mismatch - possible CSRF attack") fmt.Printf("Expected: %s\n", state) fmt.Printf("Got: %s\n", returnedState) return } fmt.Println("\n✅ Authorization code received!") fmt.Println("\n🔄 Exchanging for tokens...") // Exchange code for tokens tokens, err := exchangeCodeForTokens(code, verifier, returnedState) if err != nil { fmt.Printf("❌ Token exchange failed: %v\n", err) return } fmt.Println("✅ Tokens obtained successfully!") fmt.Println() fmt.Printf("Access Token: %s...\n", tokens.AccessToken[:40]) fmt.Printf("Refresh Token: %s...\n", tokens.RefreshToken[:40]) fmt.Printf("Scope: %s\n", tokens.Scope) fmt.Printf("Expires In: %d seconds (%d hours)\n", tokens.ExpiresIn, tokens.ExpiresIn/3600) fmt.Println() // Test the token immediately fmt.Println("🧪 Testing token with API call...") if err := testToken(tokens.AccessToken); err != nil { fmt.Printf("❌ API test failed: %v\n", err) return } fmt.Println("\n🎉 SUCCESS! OAuth authentication working!") fmt.Println() fmt.Println("✅ Token exchange successful") fmt.Println("✅ API authentication successful") fmt.Println("✅ Claude Max OAuth tokens work with Anthropic API!") } func buildAuthURL(challenge, state string) string { params := url.Values{ "code": {"true"}, "client_id": {clientID}, "redirect_uri": {redirectURI}, "response_type": {"code"}, "scope": {scope}, "code_challenge": {challenge}, "code_challenge_method": {"S256"}, "state": {state}, } return authorizeURL + "?" + params.Encode() } func exchangeCodeForTokens(code, codeVerifier, state string) (*OAuthTokens, error) { requestBody := map[string]string{ "code": code, "state": state, "grant_type": "authorization_code", "client_id": clientID, "redirect_uri": redirectURI, "code_verifier": codeVerifier, } jsonData, _ := json.Marshal(requestBody) resp, err := http.Post(tokenURL, "application/json", bytes.NewBuffer(jsonData)) if err != nil { return nil, fmt.Errorf("request failed: %w", err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) if resp.StatusCode != 200 { return nil, fmt.Errorf("status %d: %s", resp.StatusCode, string(body)) } var tokens OAuthTokens if err := json.Unmarshal(body, &tokens); err != nil { return nil, fmt.Errorf("parse failed: %w", err) } // Add timestamps (for compatibility with CLI format) tokens.ExpiresAt = int64(tokens.ExpiresIn) * 1000 tokens.CreatedAt = "now" return &tokens, nil } func testToken(accessToken string) error { // Test 1: OAuth validation fmt.Println("\n📝 Request 1:") fmt.Println("Prompt: Say 'OAuth works!' if you receive this.") requestBody1 := map[string]interface{}{ "model": "claude-sonnet-4-5", "max_tokens": 100, "system": []map[string]interface{}{ { "type": "text", "text": "You are Claude Code, Anthropic's official CLI for Claude.", }, }, "messages": []map[string]interface{}{ { "role": "user", "content": "Say 'OAuth works!' if you receive this.", }, }, } jsonData1, _ := json.Marshal(requestBody1) req1, _ := http.NewRequest("POST", "https://api.anthropic.com/v1/messages", bytes.NewBuffer(jsonData1)) req1.Header.Set("Authorization", "Bearer "+accessToken) req1.Header.Set("Content-Type", "application/json") req1.Header.Set("anthropic-version", "2023-06-01") req1.Header.Set("anthropic-beta", "oauth-2025-04-20,claude-code-20250219,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14") resp1, err := http.DefaultClient.Do(req1) if err != nil { return fmt.Errorf("request failed: %w", err) } defer resp1.Body.Close() body1, _ := io.ReadAll(resp1.Body) if resp1.StatusCode != 200 { return fmt.Errorf("API returned %d: %s", resp1.StatusCode, string(body1)) } var response1 map[string]interface{} json.Unmarshal(body1, &response1) if content, ok := response1["content"].([]interface{}); ok && len(content) > 0 { if textBlock, ok := content[0].(map[string]interface{}); ok { if text, ok := textBlock["text"].(string); ok { fmt.Printf("Response 1: %s\n", text) } } } // Test 2: Plan awareness test fmt.Println("\n📝 Request 2:") fmt.Println("Prompt: What is the maximum context window for Claude models?") requestBody2 := map[string]interface{}{ "model": "claude-sonnet-4-5", "max_tokens": 200, "system": []map[string]interface{}{ { "type": "text", "text": "You are Claude Code, Anthropic's official CLI for Claude.", }, }, "messages": []map[string]interface{}{ { "role": "user", "content": "What is the maximum context window for Claude models?", }, }, } jsonData2, _ := json.Marshal(requestBody2) req2, _ := http.NewRequest("POST", "https://api.anthropic.com/v1/messages", bytes.NewBuffer(jsonData2)) req2.Header.Set("Authorization", "Bearer "+accessToken) req2.Header.Set("Content-Type", "application/json") req2.Header.Set("anthropic-version", "2023-06-01") req2.Header.Set("anthropic-beta", "oauth-2025-04-20,claude-code-20250219,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14") resp2, err := http.DefaultClient.Do(req2) if err != nil { return fmt.Errorf("request failed: %w", err) } defer resp2.Body.Close() body2, _ := io.ReadAll(resp2.Body) if resp2.StatusCode != 200 { return fmt.Errorf("API returned %d: %s", resp2.StatusCode, string(body2)) } var response2 map[string]interface{} json.Unmarshal(body2, &response2) if content, ok := response2["content"].([]interface{}); ok && len(content) > 0 { if textBlock, ok := content[0].(map[string]interface{}); ok { if text, ok := textBlock["text"].(string); ok { fmt.Printf("Response 2: %s\n", text) } } } // Test 3: Tool calls test - THIS MAY GET BLOCKED fmt.Println("\n📝 Request 3 (WITH TOOLS):") fmt.Println("Prompt: List files in the current directory") fmt.Println("Tools: Bash, Read (like Claude Code uses)") requestBody3 := map[string]interface{}{ "model": "claude-sonnet-4-5", "max_tokens": 500, "system": []map[string]interface{}{ { "type": "text", "text": "You are Claude Code, Anthropic's official CLI for Claude.", }, }, "tools": []map[string]interface{}{ { "name": "Bash", "description": "Executes a bash command in the terminal", "input_schema": map[string]interface{}{ "type": "object", "properties": map[string]interface{}{ "command": map[string]interface{}{ "type": "string", "description": "The bash command to execute", }, }, "required": []string{"command"}, }, }, { "name": "Read", "description": "Reads a file from the filesystem", "input_schema": map[string]interface{}{ "type": "object", "properties": map[string]interface{}{ "file_path": map[string]interface{}{ "type": "string", "description": "The path to the file to read", }, }, "required": []string{"file_path"}, }, }, }, "messages": []map[string]interface{}{ { "role": "user", "content": "List files in the current directory using the Bash tool.", }, }, } jsonData3, _ := json.Marshal(requestBody3) req3, _ := http.NewRequest("POST", "https://api.anthropic.com/v1/messages", bytes.NewBuffer(jsonData3)) req3.Header.Set("Authorization", "Bearer "+accessToken) req3.Header.Set("Content-Type", "application/json") req3.Header.Set("anthropic-version", "2023-06-01") req3.Header.Set("anthropic-beta", "oauth-2025-04-20,claude-code-20250219,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14") resp3, err := http.DefaultClient.Do(req3) if err != nil { return fmt.Errorf("request 3 failed: %w", err) } defer resp3.Body.Close() body3, _ := io.ReadAll(resp3.Body) fmt.Printf("\nResponse 3 Status: %d\n", resp3.StatusCode) if resp3.StatusCode != 200 { fmt.Printf("❌ BLOCKED! Response: %s\n", string(body3)) return fmt.Errorf("tool call request blocked: %s", string(body3)) } var response3 map[string]interface{} json.Unmarshal(body3, &response3) // Pretty print the response prettyJSON, _ := json.MarshalIndent(response3, "", " ") fmt.Printf("✅ Tool call ALLOWED! Response:\n%s\n", string(prettyJSON)) return nil } func generateCodeVerifier() string { b := make([]byte, 32) rand.Read(b) return base64URLEncode(b) } func generateCodeChallenge(verifier string) string { hash := sha256.Sum256([]byte(verifier)) return base64URLEncode(hash[:]) } func generateState() string { b := make([]byte, 32) rand.Read(b) return base64URLEncode(b) } func base64URLEncode(data []byte) string { encoded := base64.RawURLEncoding.EncodeToString(data) return encoded } func openBrowser(url string) { var cmd *exec.Cmd switch runtime.GOOS { case "darwin": cmd = exec.Command("open", url) case "windows": cmd = exec.Command("rundll32", "url.dll,FileProtocolHandler", url) default: cmd = exec.Command("xdg-open", url) } cmd.Start() } ``` ## Output ❯ ./tmp/oauth_working_implementation === Claude Max OAuth - Working Implementation === Based on anthropic-oauth-max-plan CLI 🔐 Starting OAuth flow... Opening browser to: https://claude.ai/oauth/authorize?client_id=9d1c250a-... ====================================================================== After authorizing, the page will show a code and state. Copy them and paste in this format: code#state Example: abc123xyz...#def456uvw... ====================================================================== Paste code#state here: gJzKzzSUrDl5O... ✅ Authorization code received! 🔄 Exchanging for tokens... ✅ Tokens obtained successfully! Access Token: sk-ant-oat01-t-fN_... Refresh Token: sk-ant-ort01-Ln5cA... Scope: user:inference user:profile Expires In: 28800 seconds (8 hours) 🧪 Testing token with API call... 📝 Request 1: Prompt: Say 'OAuth works!' if you receive this. Response 1: OAuth works! 📝 Request 2: Prompt: What is the maximum context window for Claude models? Response 2: The maximum context window varies by Claude model: - **Claude 3.5 Sonnet** and **Claude 3.5 Haiku**: **200,000 tokens** (~150,000 words or 500+ pages) - **Claude 3 Opus**, **Claude 3 Sonnet**, and **Claude 3 Haiku**: **200,000 tokens** - **Earlier models** (Claude 2.1, Claude 2.0, Claude Instant): Had smaller context windows (100,000-200,000 tokens depending on the version) The latest Claude models can handle approximately **200,000 tokens** in their context window, which is one of the largest available among major AI models. This allows for processing entire books, long documents, or extended conversations in a single interaction. Note: The actual usable context may be slightly less depending on the API, system prom 📝 Request 3 (WITH TOOLS): Prompt: List files in the current directory Tools: Bash, Read (like Claude Code uses) Response 3 Status: 200 ✅ Tool call ALLOWED! Response: { "content": [ { "text": "I'll list the files in the current directory for you.", "type": "text" }, { "id": "toolu_015oY9G2bffHKdAruFVXPVeQ", "input": { "command": "ls -la" }, "name": "Bash", "type": "tool_use" } ], "id": "msg_01RK4Tay8nctq9c5siVbtR8E", "model": "claude-sonnet-4-5-20250929", "role": "assistant", "stop_reason": "tool_use", "stop_sequence": null, "type": "message", "usage": { "cache_creation": { "ephemeral_1h_input_tokens": 0, "ephemeral_5m_input_tokens": 0 }, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "input_tokens": 665, "output_tokens": 67, "service_tier": "standard" } } 🎉 SUCCESS! OAuth authentication working! ✅ Token exchange successful ✅ API authentication successful ✅ Claude Max OAuth tokens work with Anthropic API!
Author
Owner

@momomo commented on GitHub (Jan 28, 2026):

@thomastthai

Great job! But I had to ask claude to explain the go code, hopefully its ok, but i thought it might be useful for others that might be working on a solutions for the future.

This Go code implements an OAuth 2.0 authentication flow with PKCE (Proof Key for Code Exchange) to obtain access tokens for the Anthropic API. Here's how it works:

The Authentication Flow

1. PKCE Setup

verifier := generateCodeVerifier()   // Random 32-byte string
challenge := generateCodeChallenge(verifier)  // SHA-256 hash of verifier
state := generateState()  // CSRF protection token

PKCE is a security extension that prevents authorization code interception attacks.

2. Authorization Request

The code builds a URL to https://claude.ai/oauth/authorize with parameters including:

  • client_id: A hardcoded UUID identifying the application
  • redirect_uri: Where Claude sends the user after authorization
  • scope: org:create_api_key user:profile user:inference — permissions being requested
  • code_challenge: The PKCE challenge

The user's browser opens this URL, they log in to Claude, and approve the permissions.

3. Token Exchange

After authorization, the user pastes back a code#state pair. The code then POSTs to https://console.anthropic.com/v1/oauth/token with:

  • The authorization code
  • The original code verifier (proving it's the same client)
  • Grant type and client credentials

This returns access and refresh tokens.

4. API Calls

The tokens are used to call https://api.anthropic.com/v1/messages:

req.Header.Set("Authorization", "Bearer "+accessToken)
req.Header.Set("anthropic-beta", "oauth-2025-04-20,claude-code-20250219,...")

The anthropic-beta headers indicate this uses OAuth authentication (rather than API keys) and enables Claude Code features.

Key Insight

This appears to reverse-engineer how Claude Code CLI authenticates—using OAuth tokens from a Claude Max subscription rather than requiring separate API credits.

@momomo commented on GitHub (Jan 28, 2026): @thomastthai Great job! But I had to ask claude to explain the go code, hopefully its ok, but i thought it might be useful for others that might be working on a solutions for the future. This Go code implements an **OAuth 2.0 authentication flow with PKCE** (Proof Key for Code Exchange) to obtain access tokens for the Anthropic API. Here's how it works: ## The Authentication Flow ### 1. PKCE Setup ```go verifier := generateCodeVerifier() // Random 32-byte string challenge := generateCodeChallenge(verifier) // SHA-256 hash of verifier state := generateState() // CSRF protection token ``` PKCE is a security extension that prevents authorization code interception attacks. ### 2. Authorization Request The code builds a URL to `https://claude.ai/oauth/authorize` with parameters including: - **client_id**: A hardcoded UUID identifying the application - **redirect_uri**: Where Claude sends the user after authorization - **scope**: `org:create_api_key user:profile user:inference` — permissions being requested - **code_challenge**: The PKCE challenge The user's browser opens this URL, they log in to Claude, and approve the permissions. ### 3. Token Exchange After authorization, the user pastes back a `code#state` pair. The code then POSTs to `https://console.anthropic.com/v1/oauth/token` with: - The authorization code - The original code verifier (proving it's the same client) - Grant type and client credentials This returns access and refresh tokens. ### 4. API Calls The tokens are used to call `https://api.anthropic.com/v1/messages`: ```go req.Header.Set("Authorization", "Bearer "+accessToken) req.Header.Set("anthropic-beta", "oauth-2025-04-20,claude-code-20250219,...") ``` The `anthropic-beta` headers indicate this uses OAuth authentication (rather than API keys) and enables Claude Code features. ## Key Insight This appears to reverse-engineer how **Claude Code CLI** authenticates—using OAuth tokens from a Claude Max subscription rather than requiring separate API credits.
Author
Owner

@todiap commented on GitHub (Jan 28, 2026):

is it doing again??? This credential is only authorized for use with Claude Code and cannot be used for other API requests.

@todiap commented on GitHub (Jan 28, 2026): is it doing again??? This credential is only authorized for use with Claude Code and cannot be used for other API requests.
Author
Owner

@Steffen025 commented on GitHub (Jan 28, 2026):

Workaround confirmed working

Added mode override in opencode.json to bypass the pattern matching:

"mode": {
  "build": {
    "prompt": "You are Claude Code, Anthropic's official CLI for Claude."
  },
  "plan": {
    "prompt": "You are Claude Code, Anthropic's official CLI for Claude."
  }
}

Tested with: Anthropic Max Subscription + claude-opus-4-5 and claude-sonnet-4-5

This replaces the system prompt identifier that Anthropic is blocking. Works as of 2026-01-28.

Copy-paste ready: See commit with full opencode.json

Reference: https://github.com/anomalyco/opencode-anthropic-auth/issues/17#issuecomment-3752059576

@Steffen025 commented on GitHub (Jan 28, 2026): ## ✅ Workaround confirmed working Added `mode` override in `opencode.json` to bypass the pattern matching: ```json "mode": { "build": { "prompt": "You are Claude Code, Anthropic's official CLI for Claude." }, "plan": { "prompt": "You are Claude Code, Anthropic's official CLI for Claude." } } ``` **Tested with:** Anthropic Max Subscription + claude-opus-4-5 and claude-sonnet-4-5 This replaces the system prompt identifier that Anthropic is blocking. Works as of 2026-01-28. **Copy-paste ready:** [See commit with full opencode.json](https://github.com/Steffen025/pai-opencode/commit/6934c7f) Reference: https://github.com/anomalyco/opencode-anthropic-auth/issues/17#issuecomment-3752059576
Author
Owner

@skhaz commented on GitHub (Jan 28, 2026):

I canceled my Claude Max subscription, I am using Codex now.

@skhaz commented on GitHub (Jan 28, 2026): I canceled my Claude Max subscription, I am using Codex now.
Author
Owner

@cryptobetEU commented on GitHub (Jan 28, 2026):

Workaround confirmed working

Added mode override in opencode.json to bypass the pattern matching:

"mode": {
"build": {
"prompt": "You are Claude Code, Anthropic's official CLI for Claude."
},
"plan": {
"prompt": "You are Claude Code, Anthropic's official CLI for Claude."
}
}

Tested with: Anthropic Max Subscription + claude-opus-4-5 and claude-sonnet-4-5

This replaces the system prompt identifier that Anthropic is blocking. Works as of 2026-01-28.

Copy-paste ready: See commit with full opencode.json

Reference: anomalyco/opencode-anthropic-auth#17 (comment)

? in the .config directory opencode.json I do not see where to add or put

{
  "plugin": [
    "oh-my-opencode",
    "opencode-antigravity-auth@1.3.2",
    "opencode-ultraplan",
    "opencode-openai-codex-auth",
    "opencode-anthropic-auth@0.0.8",
    "opencode-claude-cli"
  ],
  "provider": {
    "google": {
      "name": "Google",
      "models": {
        "antigravity-gemini-3-pro-high": {
          "name": "Gemini 3 Pro High (Antigravity)",
          "thinking": true,
          "attachment": true,
          "limit": {
            "context": 1048576,
            "output": 65535
          },
          "modalities": {
            "input": [
              "text",
              "image",
              "pdf"
            ],
            "output": [
              "text"
            ]
          }
        },
        "antigravity-gemini-3-pro-low": {
          "name": "Gemini 3 Pro Low (Antigravity)",
          "thinking": true,
          "attachment": true,
          "limit": {
            "context": 1048576,
            "output": 65535
          },
          "modalities": {
            "input": [
              "text",
              "image",
              "pdf"
            ],
            "output": [
              "text"
            ]
          }
        },
        "antigravity-gemini-3-flash": {
          "name": "Gemini 3 Flash (Antigravity)",
          "attachment": true,
          "limit": {
            "context": 1048576,
            "output": 65536
          },
          "modalities": {
            "input": [
              "text",
              "image",
              "pdf"
            ],
            "output": [
              "text"
            ]
          }
        }
      }
    },
    "openai": {
      "name": "OpenAI",
      "options": {
        "reasoningEffort": "medium",
        "reasoningSummary": "auto",
        "textVerbosity": "medium",
        "include": [
          "reasoning.encrypted_content"
        ],
        "store": false
      },
      "models": {
        "gpt-5.2": {
          "name": "GPT 5.2 (OAuth)",
          "limit": {
            "context": 272000,
            "output": 128000
          },
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          },
          "variants": {
            "none": {
              "reasoningEffort": "none",
              "reasoningSummary": "auto",
              "textVerbosity": "medium"
            },
            "low": {
              "reasoningEffort": "low",
              "reasoningSummary": "auto",
              "textVerbosity": "medium"
            },
            "medium": {
              "reasoningEffort": "medium",
              "reasoningSummary": "auto",
              "textVerbosity": "medium"
            },
            "high": {
              "reasoningEffort": "high",
              "reasoningSummary": "detailed",
              "textVerbosity": "medium"
            },
            "xhigh": {
              "reasoningEffort": "xhigh",
              "reasoningSummary": "detailed",
              "textVerbosity": "medium"
            }
          }
        },
        "gpt-5.2-codex": {
          "name": "GPT 5.2 Codex (OAuth)",
          "limit": {
            "context": 272000,
            "output": 128000
          },
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          },
          "variants": {
            "low": {
              "reasoningEffort": "low",
              "reasoningSummary": "auto",
              "textVerbosity": "medium"
            },
            "medium": {
              "reasoningEffort": "medium",
              "reasoningSummary": "auto",
              "textVerbosity": "medium"
            },
            "high": {
              "reasoningEffort": "high",
              "reasoningSummary": "detailed",
              "textVerbosity": "medium"
            },
            "xhigh": {
              "reasoningEffort": "xhigh",
              "reasoningSummary": "detailed",
              "textVerbosity": "medium"
            }
          }
        },
        "gpt-5.1-codex-max": {
          "name": "GPT 5.1 Codex Max (OAuth)",
          "limit": {
            "context": 272000,
            "output": 128000
          },
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          },
          "variants": {
            "low": {
              "reasoningEffort": "low",
              "reasoningSummary": "detailed",
              "textVerbosity": "medium"
            },
            "medium": {
              "reasoningEffort": "medium",
              "reasoningSummary": "detailed",
              "textVerbosity": "medium"
            },
            "high": {
              "reasoningEffort": "high",
              "reasoningSummary": "detailed",
              "textVerbosity": "medium"
            },
            "xhigh": {
              "reasoningEffort": "xhigh",
              "reasoningSummary": "detailed",
              "textVerbosity": "medium"
            }
          }
        },
        "gpt-5.1-codex": {
          "name": "GPT 5.1 Codex (OAuth)",
          "limit": {
            "context": 272000,
            "output": 128000
          },
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          },
          "variants": {
            "low": {
              "reasoningEffort": "low",
              "reasoningSummary": "auto",
              "textVerbosity": "medium"
            },
            "medium": {
              "reasoningEffort": "medium",
              "reasoningSummary": "auto",
              "textVerbosity": "medium"
            },
            "high": {
              "reasoningEffort": "high",
              "reasoningSummary": "detailed",
              "textVerbosity": "medium"
            }
          }
        },
        "gpt-5.1-codex-mini": {
          "name": "GPT 5.1 Codex Mini (OAuth)",
          "limit": {
            "context": 272000,
            "output": 128000
          },
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          },
          "variants": {
            "medium": {
              "reasoningEffort": "medium",
              "reasoningSummary": "auto",
              "textVerbosity": "medium"
            },
            "high": {
              "reasoningEffort": "high",
              "reasoningSummary": "detailed",
              "textVerbosity": "medium"
            }
          }
        },
        "gpt-5.1": {
          "name": "GPT 5.1 (OAuth)",
          "limit": {
            "context": 272000,
            "output": 128000
          },
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          },
          "variants": {
            "none": {
              "reasoningEffort": "none",
              "reasoningSummary": "auto",
              "textVerbosity": "medium"
            },
            "low": {
              "reasoningEffort": "low",
              "reasoningSummary": "auto",
              "textVerbosity": "low"
            },
            "medium": {
              "reasoningEffort": "medium",
              "reasoningSummary": "auto",
              "textVerbosity": "medium"
            },
            "high": {
              "reasoningEffort": "high",
              "reasoningSummary": "detailed",
              "textVerbosity": "high"
            }
          }
        }
      }
    },
    "openrouter": {
      "models": {
        "kwaipilot/kat-coder-pro:free": {
          "name": "KAT-Coder-Pro (OpenRouter Free)"
        },
        "mistralai/devstral-2512:free": {
          "name": "Devstral 2 (OpenRouter Free)"
        },
        "deepseek/deepseek-r1:free": {
          "name": "DeepSeek R1 (OpenRouter Free)"
        },
        "meta-llama/llama-3.3-70b-instruct:free": {
          "name": "Llama 3.3 70B (OpenRouter Free)"
        },
        "qwen/qwen3-coder:free": {
          "name": "Qwen3 Coder (OpenRouter Free)"
        }
      }
    },
  },
  "$schema": "https://opencode.ai/config.json"
}
@cryptobetEU commented on GitHub (Jan 28, 2026): > ## ✅ Workaround confirmed working > > Added `mode` override in `opencode.json` to bypass the pattern matching: > > "mode": { > "build": { > "prompt": "You are Claude Code, Anthropic's official CLI for Claude." > }, > "plan": { > "prompt": "You are Claude Code, Anthropic's official CLI for Claude." > } > } > > **Tested with:** Anthropic Max Subscription + claude-opus-4-5 and claude-sonnet-4-5 > > This replaces the system prompt identifier that Anthropic is blocking. Works as of 2026-01-28. > > **Copy-paste ready:** [See commit with full opencode.json](https://github.com/Steffen025/pai-opencode/commit/6934c7f) > > Reference: [anomalyco/opencode-anthropic-auth#17 (comment)](https://github.com/anomalyco/opencode-anthropic-auth/issues/17#issuecomment-3752059576) ? in the .config directory opencode.json I do not see where to add or put ``` { "plugin": [ "oh-my-opencode", "opencode-antigravity-auth@1.3.2", "opencode-ultraplan", "opencode-openai-codex-auth", "opencode-anthropic-auth@0.0.8", "opencode-claude-cli" ], "provider": { "google": { "name": "Google", "models": { "antigravity-gemini-3-pro-high": { "name": "Gemini 3 Pro High (Antigravity)", "thinking": true, "attachment": true, "limit": { "context": 1048576, "output": 65535 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] } }, "antigravity-gemini-3-pro-low": { "name": "Gemini 3 Pro Low (Antigravity)", "thinking": true, "attachment": true, "limit": { "context": 1048576, "output": 65535 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] } }, "antigravity-gemini-3-flash": { "name": "Gemini 3 Flash (Antigravity)", "attachment": true, "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": [ "text", "image", "pdf" ], "output": [ "text" ] } } } }, "openai": { "name": "OpenAI", "options": { "reasoningEffort": "medium", "reasoningSummary": "auto", "textVerbosity": "medium", "include": [ "reasoning.encrypted_content" ], "store": false }, "models": { "gpt-5.2": { "name": "GPT 5.2 (OAuth)", "limit": { "context": 272000, "output": 128000 }, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] }, "variants": { "none": { "reasoningEffort": "none", "reasoningSummary": "auto", "textVerbosity": "medium" }, "low": { "reasoningEffort": "low", "reasoningSummary": "auto", "textVerbosity": "medium" }, "medium": { "reasoningEffort": "medium", "reasoningSummary": "auto", "textVerbosity": "medium" }, "high": { "reasoningEffort": "high", "reasoningSummary": "detailed", "textVerbosity": "medium" }, "xhigh": { "reasoningEffort": "xhigh", "reasoningSummary": "detailed", "textVerbosity": "medium" } } }, "gpt-5.2-codex": { "name": "GPT 5.2 Codex (OAuth)", "limit": { "context": 272000, "output": 128000 }, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] }, "variants": { "low": { "reasoningEffort": "low", "reasoningSummary": "auto", "textVerbosity": "medium" }, "medium": { "reasoningEffort": "medium", "reasoningSummary": "auto", "textVerbosity": "medium" }, "high": { "reasoningEffort": "high", "reasoningSummary": "detailed", "textVerbosity": "medium" }, "xhigh": { "reasoningEffort": "xhigh", "reasoningSummary": "detailed", "textVerbosity": "medium" } } }, "gpt-5.1-codex-max": { "name": "GPT 5.1 Codex Max (OAuth)", "limit": { "context": 272000, "output": 128000 }, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] }, "variants": { "low": { "reasoningEffort": "low", "reasoningSummary": "detailed", "textVerbosity": "medium" }, "medium": { "reasoningEffort": "medium", "reasoningSummary": "detailed", "textVerbosity": "medium" }, "high": { "reasoningEffort": "high", "reasoningSummary": "detailed", "textVerbosity": "medium" }, "xhigh": { "reasoningEffort": "xhigh", "reasoningSummary": "detailed", "textVerbosity": "medium" } } }, "gpt-5.1-codex": { "name": "GPT 5.1 Codex (OAuth)", "limit": { "context": 272000, "output": 128000 }, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] }, "variants": { "low": { "reasoningEffort": "low", "reasoningSummary": "auto", "textVerbosity": "medium" }, "medium": { "reasoningEffort": "medium", "reasoningSummary": "auto", "textVerbosity": "medium" }, "high": { "reasoningEffort": "high", "reasoningSummary": "detailed", "textVerbosity": "medium" } } }, "gpt-5.1-codex-mini": { "name": "GPT 5.1 Codex Mini (OAuth)", "limit": { "context": 272000, "output": 128000 }, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] }, "variants": { "medium": { "reasoningEffort": "medium", "reasoningSummary": "auto", "textVerbosity": "medium" }, "high": { "reasoningEffort": "high", "reasoningSummary": "detailed", "textVerbosity": "medium" } } }, "gpt-5.1": { "name": "GPT 5.1 (OAuth)", "limit": { "context": 272000, "output": 128000 }, "modalities": { "input": [ "text", "image" ], "output": [ "text" ] }, "variants": { "none": { "reasoningEffort": "none", "reasoningSummary": "auto", "textVerbosity": "medium" }, "low": { "reasoningEffort": "low", "reasoningSummary": "auto", "textVerbosity": "low" }, "medium": { "reasoningEffort": "medium", "reasoningSummary": "auto", "textVerbosity": "medium" }, "high": { "reasoningEffort": "high", "reasoningSummary": "detailed", "textVerbosity": "high" } } } } }, "openrouter": { "models": { "kwaipilot/kat-coder-pro:free": { "name": "KAT-Coder-Pro (OpenRouter Free)" }, "mistralai/devstral-2512:free": { "name": "Devstral 2 (OpenRouter Free)" }, "deepseek/deepseek-r1:free": { "name": "DeepSeek R1 (OpenRouter Free)" }, "meta-llama/llama-3.3-70b-instruct:free": { "name": "Llama 3.3 70B (OpenRouter Free)" }, "qwen/qwen3-coder:free": { "name": "Qwen3 Coder (OpenRouter Free)" } } }, }, "$schema": "https://opencode.ai/config.json" } ```
Author
Owner

@thamrx commented on GitHub (Jan 28, 2026):

@cryptobetEU, see https://opencode.ai/docs/modes/#json-configuration

@thamrx commented on GitHub (Jan 28, 2026): @cryptobetEU, see https://opencode.ai/docs/modes/#json-configuration
Author
Owner

@Steffen025 commented on GitHub (Jan 28, 2026):

@cryptobetEU

Actually, looking at your config again - you already have opencode-anthropic-auth@0.0.8 installed.

Easiest fix for you: Just change @0.0.8 to @latest:

- "opencode-anthropic-auth@0.0.8",
+ "opencode-anthropic-auth@latest",

That's it. No need to add the mode block - the plugin does the same thing under the hood.

Hope that helps you :)

@Steffen025 commented on GitHub (Jan 28, 2026): @cryptobetEU Actually, looking at your config again - you already have `opencode-anthropic-auth@0.0.8` installed. **Easiest fix for you:** Just change `@0.0.8` to `@latest`: ```diff - "opencode-anthropic-auth@0.0.8", + "opencode-anthropic-auth@latest", ``` That's it. No need to add the `mode` block - the plugin does the same thing under the hood. Hope that helps you :)
Author
Owner

@thamrx commented on GitHub (Jan 28, 2026):

The best temporary fix is to add the following to ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": [
    "opencode-anthropic-auth@latest"
  ]
}
@thamrx commented on GitHub (Jan 28, 2026): The best temporary fix is to add the following to `~/.config/opencode/opencode.json`: ```json { "$schema": "https://opencode.ai/config.json", "plugin": [ "opencode-anthropic-auth@latest" ] } ```
Author
Owner

@johnmalek312 commented on GitHub (Jan 29, 2026):

@thamrx does this make it match claude code exact system prompt and tooling?

@johnmalek312 commented on GitHub (Jan 29, 2026): @thamrx does this make it match claude code exact system prompt and tooling?
Author
Owner

@Cyb3rDudu commented on GitHub (Jan 30, 2026):

For me, it works even with the integrated oauth. I do not need to add anything into my opencode.json
however, I realized that opencode burns my claude max tokens in a way that I saw the first time the wait some hours message.
When I work with Claude Code, the tokens are much less and I basically have multible instances of it in parallel running on different projects and I never reach that limit.
Is anyone else experiencing opencode also as token burner?

@Cyb3rDudu commented on GitHub (Jan 30, 2026): For me, it works even with the integrated oauth. I do not need to add anything into my opencode.json however, I realized that opencode burns my claude max tokens in a way that I saw the first time the wait some hours message. When I work with Claude Code, the tokens are much less and I basically have multible instances of it in parallel running on different projects and I never reach that limit. Is anyone else experiencing opencode also as token burner?
Author
Owner

@ilbarone87 commented on GitHub (Jan 30, 2026):

@Cyb3rDudu i also have noticed the same issue. It burns to my limit very quickly. I thought that was due to get-shit-done plugin, but seems i’m not the only one to experience a higher than normal usage of tokens

@ilbarone87 commented on GitHub (Jan 30, 2026): @Cyb3rDudu i also have noticed the same issue. It burns to my limit very quickly. I thought that was due to get-shit-done plugin, but seems i’m not the only one to experience a higher than normal usage of tokens
Author
Owner

@cedws commented on GitHub (Feb 1, 2026):

I believe Claude Code switches between Haiku/Opus automatically for efficiency. In OpenCode I can't see any way to use the automatic mode, if it's using Opus 4.5 for everything that would explain why it burns usage so quickly.

@cedws commented on GitHub (Feb 1, 2026): I believe Claude Code switches between Haiku/Opus automatically for efficiency. In OpenCode I can't see any way to use the automatic mode, if it's using Opus 4.5 for everything that would explain why it burns usage so quickly.
Author
Owner

@Christopher-R-Perkins commented on GitHub (Feb 1, 2026):

I believe Claude Code switches between Haiku/Opus automatically for efficiency. In OpenCode I can't see any way to use the automatic mode, if it's using Opus 4.5 for everything that would explain why it burns usage so quickly.

Claude code has their Explore agent specifically use Haiku, along with their statusline-setup using Sonnet and Claude Code Guide using Haiku, everything else inherits.

Opencode doesn't have set models, so you need to set up your subagents yourself(the builtin ones inherit)

@Christopher-R-Perkins commented on GitHub (Feb 1, 2026): > I believe Claude Code switches between Haiku/Opus automatically for efficiency. In OpenCode I can't see any way to use the automatic mode, if it's using Opus 4.5 for everything that would explain why it burns usage so quickly. Claude code has their Explore agent specifically use Haiku, along with their statusline-setup using Sonnet and Claude Code Guide using Haiku, everything else inherits. Opencode doesn't have set models, so you need to set up your subagents yourself(the builtin ones inherit)
Author
Owner

@cantalupo555 commented on GitHub (Feb 1, 2026):

I believe Claude Code switches between Haiku/Opus automatically for efficiency. In OpenCode I can't see any way to use the automatic mode, if it's using Opus 4.5 for everything that would explain why it burns usage so quickly.

@Cyb3rDudu @ilbarone87 @cedws
You need to set in the opencode.json file:

  “small_model”: “anthropic/claude-haiku-4-5”,

  "agent": {
    "general": {
      "model": "anthropic/claude-haiku-4-5"
    },
    "explore": {
      "model": "anthropic/claude-haiku-4-5"
    },
  }

You can set any model, or even a different provider, as OpenRouter:

  "small_model": "openrouter/x-ai/grok-4.1-fast",

  "agent": {
    "general": {
      "model": "openrouter/x-ai/grok-4.1-fast"
    },
    "explore": {
      "model": "openrouter/x-ai/grok-4.1-fast"
    },
  }
@cantalupo555 commented on GitHub (Feb 1, 2026): > I believe Claude Code switches between Haiku/Opus automatically for efficiency. In OpenCode I can't see any way to use the automatic mode, if it's using Opus 4.5 for everything that would explain why it burns usage so quickly. @Cyb3rDudu @ilbarone87 @cedws You need to set in the `opencode.json` file: ``` “small_model”: “anthropic/claude-haiku-4-5”, "agent": { "general": { "model": "anthropic/claude-haiku-4-5" }, "explore": { "model": "anthropic/claude-haiku-4-5" }, } ``` --- You can set any model, or even a different provider, as OpenRouter: ``` "small_model": "openrouter/x-ai/grok-4.1-fast", "agent": { "general": { "model": "openrouter/x-ai/grok-4.1-fast" }, "explore": { "model": "openrouter/x-ai/grok-4.1-fast" }, } ```
Author
Owner

@cryptobetEU commented on GitHub (Feb 2, 2026):

I believe Claude Code switches between Haiku/Opus automatically for efficiency. In OpenCode I can't see any way to use the automatic mode, if it's using Opus 4.5 for everything that would explain why it burns usage so quickly.

@Cyb3rDudu @ilbarone87 @cedws You need to set in the opencode.json file:

  “small_model”: “anthropic/claude-haiku-4-5”,

  "agent": {
    "general": {
      "model": "anthropic/claude-haiku-4-5"
    },
    "explore": {
      "model": "anthropic/claude-haiku-4-5"
    },
  }

You can set any model, or even a different provider, as OpenRouter:

  "small_model": "openrouter/x-ai/grok-4.1-fast",

  "agent": {
    "general": {
      "model": "openrouter/x-ai/grok-4.1-fast"
    },
    "explore": {
      "model": "openrouter/x-ai/grok-4.1-fast"
    },
  }

I use google gemini antigravity high for explore and general

@cryptobetEU commented on GitHub (Feb 2, 2026): > > I believe Claude Code switches between Haiku/Opus automatically for efficiency. In OpenCode I can't see any way to use the automatic mode, if it's using Opus 4.5 for everything that would explain why it burns usage so quickly. > > [@Cyb3rDudu](https://github.com/Cyb3rDudu) [@ilbarone87](https://github.com/ilbarone87) [@cedws](https://github.com/cedws) You need to set in the `opencode.json` file: > > ``` > “small_model”: “anthropic/claude-haiku-4-5”, > > "agent": { > "general": { > "model": "anthropic/claude-haiku-4-5" > }, > "explore": { > "model": "anthropic/claude-haiku-4-5" > }, > } > ``` > > You can set any model, or even a different provider, as OpenRouter: > > ``` > "small_model": "openrouter/x-ai/grok-4.1-fast", > > "agent": { > "general": { > "model": "openrouter/x-ai/grok-4.1-fast" > }, > "explore": { > "model": "openrouter/x-ai/grok-4.1-fast" > }, > } > ``` I use google gemini antigravity high for explore and general
Author
Owner

@dearkafka commented on GitHub (Feb 6, 2026):

@Cyb3rDudu @ilbarone87 its totally expected behaviour. native claude code is "dumber" partly because it relies more on cached tokens. and it is the reason why they from time to time ban max accounts using opencode. If Im not mistaken API (not pro/max sub) has control for caching.

@dearkafka commented on GitHub (Feb 6, 2026): @Cyb3rDudu @ilbarone87 its totally expected behaviour. native claude code is "dumber" partly because it relies more on cached tokens. and it is the reason why they from time to time ban max accounts using opencode. If Im not mistaken API (not pro/max sub) has control for caching.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#4475