Openrouter unwated requests to Claude Haiku 4.5. #3020

Open
opened 2026-02-16 17:38:16 -05:00 by yindo · 7 comments
Owner

Originally created by @Yyeger on GitHub (Nov 21, 2025).

Description

I have been using OpenCode with free models on openrouter for example Grok Code fast 1 and currently Grok 4.1 Fast but on openrouter dashboard i can some calls to Claude Haiku 4.5 through the opencode app that i never did, they are very small with just 10-300 tokens but slowly slowly the end up building up to different cents.

OpenCode version

1.0.80

Steps to reproduce

  1. Connect OpenRouter
  2. Message with free models like Grok 4.1 fast or grok code fast 1

Screenshot and/or share link

Image

Operating System

Fedora 42

Terminal

Alacritty + Fish

Originally created by @Yyeger on GitHub (Nov 21, 2025). ### Description I have been using OpenCode with free models on openrouter for example Grok Code fast 1 and currently Grok 4.1 Fast but on openrouter dashboard i can some calls to Claude Haiku 4.5 through the opencode app that i never did, they are very small with just 10-300 tokens but slowly slowly the end up building up to different cents. ### OpenCode version 1.0.80 ### Steps to reproduce 1. Connect OpenRouter 2. Message with free models like Grok 4.1 fast or grok code fast 1 ### Screenshot and/or share link <img width="1307" height="910" alt="Image" src="https://github.com/user-attachments/assets/ba0db7d6-236a-4a19-8dcf-83926d098b2a" /> ### Operating System Fedora 42 ### Terminal Alacritty + Fish
yindo added the opentuibug labels 2026-02-16 17:38:16 -05:00
Author
Owner

@OpeOginni commented on GitHub (Nov 21, 2025):

Hey @Yyeger Haiku must be used for things like Session Title Generation, I think adding this to you config you can switch it to another model a free one maybe.

{
  "$schema": "https://opencode.ai/config.json",
 ...
 "small_model": "x-ai/grok-4.1-fast:free"
}
@OpeOginni commented on GitHub (Nov 21, 2025): Hey @Yyeger Haiku must be used for things like Session Title Generation, I think adding this to you config you can switch it to another model a free one maybe. ```json { "$schema": "https://opencode.ai/config.json", ... "small_model": "x-ai/grok-4.1-fast:free" } ```
Author
Owner

@rekram1-node commented on GitHub (Nov 21, 2025):

^^ yup

@rekram1-node commented on GitHub (Nov 21, 2025): ^^ yup
Author
Owner

@rekram1-node commented on GitHub (Nov 21, 2025):

there are free openrouter models too i think, u can also disable this by doing

small_model: “”

or you can use free opencode models:

opencode/big-pickle

@rekram1-node commented on GitHub (Nov 21, 2025): there are free openrouter models too i think, u can also disable this by doing small_model: “” or you can use free opencode models: opencode/big-pickle
Author
Owner

@adam-ah commented on GitHub (Jan 17, 2026):

Bump. This is not a reasonable default. If I can and do select a (main) model, I expect that model to be used.

Three issue's with the current approach

  • is this actually necessary? Do I need title naming and whatnot?
  • model selection should include small model selection and never default to a model I explicitly do not want to use
  • on the ui I can clearly see my model selection for the main model but cannot see anywhere the small model selector. Unless I trawl though the logs from open router I wouldn't even know opencode is hammering a model I didn't select
@adam-ah commented on GitHub (Jan 17, 2026): Bump. This is ***not a reasonable default***. If I can and do select a (main) model, I expect that model to be used. ## Three issue's with the current approach - is this actually necessary? Do I need title naming and whatnot? - model selection should include small model selection and never default to a model I explicitly do not want to use - on the ui I can clearly see my model selection for the main model but cannot see anywhere the small model selector. Unless I trawl though the logs from open router I wouldn't even know opencode is hammering a model I didn't select
Author
Owner

@mabelisle commented on GitHub (Jan 21, 2026):

I agree with @adam-ah. It's money right out of my pockets. It took me some time to realize what was going on, and it’s definitely not good. Even when you use a free model, you still get charged by default. Seriously? Fortunately, the solution is straightforward: you can either assign the small_model to match the model you're already using or choose another free option, but this should really be the default behavior. For those interested, I’ve developed an AI CLI wrapper where I addressed this for OpenRouter, it automatically sets the small_model to match your selected one. It’s called Omni-CLI.

@mabelisle commented on GitHub (Jan 21, 2026): I agree with @adam-ah. It's money right out of my pockets. It took me some time to realize what was going on, and it’s definitely not good. Even when you use a free model, you still get charged by default. Seriously? Fortunately, the solution is straightforward: you can either assign the small_model to match the model you're already using or choose another free option, but this should really be the default behavior. For those interested, I’ve developed an AI CLI wrapper where I addressed this for OpenRouter, it automatically sets the small_model to match your selected one. It’s called [Omni-CLI](https://github.com/mabelisle/omni-cli).
Author
Owner

@TheHamkerCat commented on GitHub (Jan 30, 2026):

there are free openrouter models too i think, u can also disable this by doing

small_model: “”

I just tested, keeping small_model empty still defaults to anthropic/claude-haiku-4.5

only something like small_model: "something/invalid" works.

Also, this feature sends every message in your session (one by one, as you send the message) to this model, which might be bad for privacy for some people, if they don't want to keylog their data to this particular provider

Not to mention the cost

@TheHamkerCat commented on GitHub (Jan 30, 2026): > there are free openrouter models too i think, u can also disable this by doing > > small_model: “” I just tested, keeping small_model empty still defaults to `anthropic/claude-haiku-4.5` only something like `small_model: "something/invalid"` works. Also, this feature sends every message in your session (one by one, as you send the message) to this model, which might be bad for privacy for some people, if they don't want to keylog their data to this particular provider Not to mention the cost
Author
Owner

@txchen commented on GitHub (Feb 6, 2026):

Thanks @TheHamkerCat for the tip!
I think small_model should be disabled by default, the current behavior looks unreasonable.

@txchen commented on GitHub (Feb 6, 2026): Thanks @TheHamkerCat for the tip! I think small_model should be disabled by default, the current behavior looks unreasonable.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#3020