You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[BUG]: Free tier (Muse Spark 1.3 Free) fails with 'can only be used from within OpenCode' when using MonoCode frontend with OpenCode backend #49580
Using MonoCode (desktop UI for coding agents, latest release from hardbeat920/monocode) as frontend with OpenCode backend (opencode auth login done, backend working), any request with free-tier model Muse Spark 1.3 Free fails after ~55s with:
Error from provider (Console): OpenCode's free tier can only be used from within OpenCode
Same backend works from OpenCode TUI/Desktop. This looks like the free-tier client gate described in #49433 (User-Agent opencode/<semver> + x-opencode-session: ses_... checks), but for a different third-party client (MonoCode instead of pi). There is no doc stating free tier is official-client-only, and MonoCode is documented as "Works with your OpenCode login - if OpenCode is installed and logged in, MonoCode can run it".
Related but distinct: #49433 (detailed UA/session gate analysis for pi + -git builds), #49579 / #49438 (same error message, no client details).
Request: clarify if free tier is intended to work from third-party UIs that drive the local OpenCode backend, and if so what headers/client contract they must send. If official-client-only, please state it in docs.
Plugins
No response
OpenCode version
1.18.31 (opencode --version)
Steps to reproduce
opencode auth login (logged in, free tier available)
Install MonoCode latest, select OpenCode as provider/backend
Start session with Muse Spark 1.3 Free (Console provider)
Send prompt, wait ~55s -> Error from provider (Console): OpenCode's free tier can only be used from within OpenCode
Screenshot and/or share link
Error text from UI (same as screenshot in #49579): Muse Spark 1.3 Free worked for 55s — Status update — Error from provider (Console): OpenCode's free tier can only be used from within OpenCode
Operating System
Linux CachyOS 7.2.5-1-cachyos x86_64
Terminal
MonoCode desktop app (Tauri) driving local OpenCode backend
Reacted by mosaic-roll, Yan Henridev, yarres and Saran Tanpituckpong ✔️
i keep running into the same error. love this app but every update is some new cursed bug. i tried to stick to the update with the least bugs but now they force you to update if you want to use the free teir and well that dont even work now on the latest update
i keep running into the same error. love this app but every update is some new cursed bug. i tried to stick to the update with the least bugs but now they force you to update if you want to use the free teir and well that dont even work now on the latest update
In fact, I like Opencode, especially back when it had the $5 plans, which was my gateway to AI agents, but it's actually getting worse with each update. The desktop version seems to be neglected. PRs that improve the desktop version by 90% are simply being ignored. I'm sorry, Opencode, but you're declining.
I just ran into the same issue... It was working fine for the whole day and now suddenly I get hit with this when it tries compaction.
Has anyone gotten a fix for this? I tried updating to latest version but still no luck
I just ran into the same issue... It was working fine for the whole day and now suddenly I get hit with this when it tries compaction. Has anyone gotten a fix for this? I tried updating to latest version but still no luck
I see posts from 17h ago?? how is it not on their side yet
Exactly what I was thinking. They're focusing on OpenCode v2, I believe. This is causing this version and the desktop version to decline and become full of bugs.
I see posts from 17h ago?? how is it not on their side yet
Exactly what I was thinking. They're focusing on OpenCode v2, I believe. This is causing this version and the desktop version to decline and become full of bugs.
What will V2 even give us at this point... If they can't keep this one stable.
The fact that they're dropping the $5 plan already indicates they're getting tight on cash or focusing their resources on V2. Command code is capturing a portion of the audience. I tested the desktop version and it's amazing, but my entire ecosystem is opencode. I'm afraid I'll have to migrate.
What will V2 even give us at this point... If they can't keep this one stable.
Exactly, I haven't the slightest idea what they're thinking. @thdxr keeps posting and talking about the V2. I didn't quite understand what it offers, but I'll try to understand better.
I see posts from 17h ago?? how is it not on their side yet
Exactly what I was thinking. They're focusing on OpenCode v2, I believe. This is causing this version and the desktop version to decline and become full of bugs.
What will V2 even give us at this point... If they can't keep this one stable.
@pascalthedev share more about ur custom agent. We are trying to prevent fraudulent usage of opencodes free tier, there aren't a ton of levers for us to pull to prevent it.
@pascalthedev share more about ur custom agent. We are trying to prevent fraudulent usage of opencodes free tier, there aren't a ton of levers for us to pull to prevent it.
Hi @rekram1-node, my apologies for leaving multiple comments. I completely understand the need to prevent abuse of the free tier, and I greatly appreciate all the work the OC team has done to keep this project alive.
After tinkering with it a bit more yesterday I found it seemed to be related to the permissions of the custom agents, not necessarily the custom agent itself. I haven't yet had the time to go one-by-one and narrow down which specific permission lines are the direct cause, but I did notice that a few of my agents with restrictive permissions (like my documentation agent) failed with the same error until I changed the leading permission wildcard from "*": deny to "*": ask and reloaded the session.
So it seems one of the permission lines (or perhaps a specific combination of them caught by the wildcard) when set to deny is what causes the false-flag. If I end up narrowing it down more I'd be happy to update you with more information.
I'm seeing this without any third party front end. I was using the caveman proxy, but running caveman opencode run commands seem to work when targeting a free tier model. My normal setup is running the opencode server with the caveman proxy, then running the opencode tui with the caveman proxy in a separate terminal. But not using caveman, and even not using opencode server, just the regular tui, produces this error. I'm using 1.18.32.
Was working fine 2 days ago. No changes to versions or configuration on my side since then.
Rakan-managed native OpenCode 2: authenticated read-only public task receives FreeTierError
Please confirm whether the free tier supports this setup, and either enable/fix the
authenticated reduced-tool native route or provide its supported integration contract.
We are not asking to bypass client admission, imitate another client, or obtain paid
access. A read-only file task must retain its actual read-only capability boundary.
Environment and observed result
Windows; released native OpenCode 2.0.3 managed as an isolated local service.
Native device OAuth connection selected through OpenCode's supported credential API.
Rakan's ordinary Chat dispatch selects the saved account, model
opencode/muse-spark-1.3-contributor-free, and native medium reasoning variant.
Native client attribution is honestly rakan-private-service; User-Agent is
opencode/latest/2.0.3/rakan-private-service. Native OpenCode generates its own
ses_ session ID and x-opencode-session header; none is fabricated or overridden.
Native OAuth bearer and native organisation header match the selected connection.
No anonymous fallback, environment API key, manual-store import, or paid fallback.
Task and effective native tools
The only admitted file, transit.txt, contains this synthetic public fixture:
ON14 synthetic public transit fixture, not a real timetable.
Harbor route departures: 09:15, 09:45, 10:20.
Museum route departures: 09:05, 09:35, 10:05.
Prompt:
Read transit.txt using the Read tool, then state the earliest Harbor route
departure strictly after 09:30 and quote the supporting line. The file is a
synthetic public fixture. Use only this file.
The outgoing request contains the genuine native read tool, with native path,
offset and limit parameters. The agent admits read, denies shell/edit/Skills/
subagents, and the managed Session path broker narrows reads to transit.txt.
No private source, conversation history, Skills or unrelated account data is sent.
The request uses stream:true and the model's native medium reasoning settings.
No expected answer is included in the outgoing prompt or system instructions.
At 2026-10-05 07:04:26 UTC, the one primary request returned HTTP 403:
OpenCode's free tier can only be used from within OpenCode
Native classification: provider.auth. No Read was executed and no answer was
generated. Native Session totals record zero input/output/reasoning/cache tokens
and cost 0; this is an observation, not an independent billing-entitlement claim.
The whole serialized public request was inspected locally before transmission;
its transmitted SHA-256 matched the inspected SHA-256. The observer did not alter
the body, headers, native tools or response. It and its temporary configuration
have been removed, and the production control plugin, OAuth connection and
conversation history are retained.
Relevant controls already observed
The same free-tier message was previously observed for a public file task on
genuine native CLI 2.0.22 with native cli attribution and a genuine read tool.
A previous native MiMo greeting succeeded; the public read task did not. We do
not claim greetings or catalogue discovery prove reduced-tool eligibility.
Changing the free model and using its native Responses transport did not fix
the rejection. We will not repeat unchanged generation requests, spoof client
headers, or expose shell/private files merely to make the gate pass.
Question for the maintainers
Your comment at #49580 (comment)
restricts other harnesses but invites details about very custom setups. This is
real native OpenCode providing its own tool loop, credentials, Session and HTTP
transport, with Rakan enforcing approved capabilities around it. Is this supported
on the free tier? If yes, can the route admit its genuine reduced read-only tool
set? If no, please document that boundary and identify any supported free route
for this authenticated setup. We have no authorization for purchases or top-ups.
Sanitization: account/organisation/credential/session/project identifiers, access
tokens, secret headers, user identity, local profile paths and private repository
content are omitted.
Activity
github-actions commentedon Sep 17, 2026
This issue might be a duplicate of existing issues. Please check:
yanhenrique-dev commentedon Sep 17, 2026
BROO
CrayzyEyezz commentedon Sep 17, 2026
i keep running into the same error. love this app but every update is some new cursed bug. i tried to stick to the update with the least bugs but now they force you to update if you want to use the free teir and well that dont even work now on the latest update
yanhenrique-dev commentedon Sep 17, 2026
In fact, I like Opencode, especially back when it had the $5 plans, which was my gateway to AI agents, but it's actually getting worse with each update. The desktop version seems to be neglected. PRs that improve the desktop version by 90% are simply being ignored. I'm sorry, Opencode, but you're declining.
xyzmsl commentedon Sep 17, 2026
I just ran into the same issue... It was working fine for the whole day and now suddenly I get hit with this when it tries compaction.
Has anyone gotten a fix for this? I tried updating to latest version but still no luck
yanhenrique-dev commentedon Sep 17, 2026
I don't know, but they must be very busy with Opencode V2, but that doesn't justify leaving this one buggy.
yanhenrique-dev commentedon Sep 17, 2026
The problem is not yet on their side.
xyzmsl commentedon Sep 17, 2026
I see posts from 17h ago?? how is it not on their side yet
xyzmsl commentedon Sep 17, 2026
Also I feel like the big pickle model gets worse every day 😔
yanhenrique-dev commentedon Sep 17, 2026
Exactly what I was thinking. They're focusing on OpenCode v2, I believe. This is causing this version and the desktop version to decline and become full of bugs.
yanhenrique-dev commentedon Sep 17, 2026
That's to be expected.
xyzmsl commentedon Sep 17, 2026
What will V2 even give us at this point... If they can't keep this one stable.
yanhenrique-dev commentedon Sep 17, 2026
The fact that they're dropping the $5 plan already indicates they're getting tight on cash or focusing their resources on V2. Command code is capturing a portion of the audience. I tested the desktop version and it's amazing, but my entire ecosystem is opencode. I'm afraid I'll have to migrate.
yanhenrique-dev commentedon Sep 17, 2026
Exactly, I haven't the slightest idea what they're thinking. @thdxr keeps posting and talking about the V2. I didn't quite understand what it offers, but I'll try to understand better.
yanhenrique-dev commentedon Sep 17, 2026
32 remaining items
rekram1-node commentedon Sep 18, 2026
@pascalthedev share more about ur custom agent. We are trying to prevent fraudulent usage of opencodes free tier, there aren't a ton of levers for us to pull to prevent it.
pascalthedev commentedon Sep 18, 2026
Hi @rekram1-node, my apologies for leaving multiple comments. I completely understand the need to prevent abuse of the free tier, and I greatly appreciate all the work the OC team has done to keep this project alive.
After tinkering with it a bit more yesterday I found it seemed to be related to the permissions of the custom agents, not necessarily the custom agent itself. I haven't yet had the time to go one-by-one and narrow down which specific permission lines are the direct cause, but I did notice that a few of my agents with restrictive permissions (like my
documentationagent) failed with the same error until I changed the leading permission wildcard from"*": denyto"*": askand reloaded the session.So it seems one of the permission lines (or perhaps a specific combination of them caught by the wildcard) when set to
denyis what causes the false-flag. If I end up narrowing it down more I'd be happy to update you with more information.Thanks again for your work.
llezcano-dev commentedon Sep 18, 2026
Same issue here, using opencode TUI....
rekram1-node commentedon Sep 18, 2026
@llezcano-dev
cannot reproduce
llezcano-dev commentedon Sep 18, 2026
I've used headroom as proxy. After getting that error, I turned the proxy off and still having the issue.
llezcano-dev commentedon Sep 18, 2026
So I probably got flagged by the server. Because I've just turned the proxy off headroom and still getting the issue
adriano515 commentedon Sep 18, 2026
@rekram1-node Is it intended that it also blocks calls when using OCX plugin?
rs1052 commentedon Sep 19, 2026
Removing
"bash": "deny"from my agent config fixed it for me.llezcano-dev commentedon Sep 22, 2026
@rs1052 Worked for me too
@rekram1-node try this agent
then remove
"*": denyscolebrook commentedon Sep 28, 2026
I'm seeing this without any third party front end. I was using the caveman proxy, but running
caveman opencode runcommands seem to work when targeting a free tier model. My normal setup is running the opencode server with the caveman proxy, then running the opencode tui with the caveman proxy in a separate terminal. But not using caveman, and even not using opencode server, just the regular tui, produces this error. I'm using 1.18.32.Was working fine 2 days ago. No changes to versions or configuration on my side since then.
revert(cli): stop impersonating the opencode client for Zen requests
khaled-maruf commentedon Oct 3, 2026
I'm seeing this in my Opencode TUI
rhettaaron commentedon Oct 5, 2026
Rakan-managed native OpenCode 2: authenticated read-only public task receives FreeTierError
Please confirm whether the free tier supports this setup, and either enable/fix the
authenticated reduced-tool native route or provide its supported integration contract.
We are not asking to bypass client admission, imitate another client, or obtain paid
access. A read-only file task must retain its actual read-only capability boundary.
Environment and observed result
opencode/muse-spark-1.3-contributor-free, and native medium reasoning variant.
opencode/latest/2.0.3/rakan-private-service. Native OpenCode generates its own
ses_ session ID and x-opencode-session header; none is fabricated or overridden.
https://opencode.ai/inference/openai/v1/responses. No custom inference endpoint.
No anonymous fallback, environment API key, manual-store import, or paid fallback.
Task and effective native tools
The only admitted file, transit.txt, contains this synthetic public fixture:
ON14 synthetic public transit fixture, not a real timetable.
Harbor route departures: 09:15, 09:45, 10:20.
Museum route departures: 09:05, 09:35, 10:05.
Prompt:
Read transit.txt using the Read tool, then state the earliest Harbor route
departure strictly after 09:30 and quote the supporting line. The file is a
synthetic public fixture. Use only this file.
The outgoing request contains the genuine native read tool, with native path,
offset and limit parameters. The agent admits read, denies shell/edit/Skills/
subagents, and the managed Session path broker narrows reads to transit.txt.
No private source, conversation history, Skills or unrelated account data is sent.
The request uses stream:true and the model's native medium reasoning settings.
No expected answer is included in the outgoing prompt or system instructions.
At 2026-10-05 07:04:26 UTC, the one primary request returned HTTP 403:
OpenCode's free tier can only be used from within OpenCode
Native classification: provider.auth. No Read was executed and no answer was
generated. Native Session totals record zero input/output/reasoning/cache tokens
and cost 0; this is an observation, not an independent billing-entitlement claim.
The whole serialized public request was inspected locally before transmission;
its transmitted SHA-256 matched the inspected SHA-256. The observer did not alter
the body, headers, native tools or response. It and its temporary configuration
have been removed, and the production control plugin, OAuth connection and
conversation history are retained.
Relevant controls already observed
genuine native CLI 2.0.22 with native cli attribution and a genuine read tool.
not claim greetings or catalogue discovery prove reduced-tool eligibility.
the rejection. We will not repeat unchanged generation requests, spoof client
headers, or expose shell/private files merely to make the gate pass.
Question for the maintainers
Your comment at
#49580 (comment)
restricts other harnesses but invites details about very custom setups. This is
real native OpenCode providing its own tool loop, credentials, Session and HTTP
transport, with Rakan enforcing approved capabilities around it. Is this supported
on the free tier? If yes, can the route admit its genuine reduced read-only tool
set? If no, please document that boundary and identify any supported free route
for this authenticated setup. We have no authorization for purchases or top-ups.
Sanitization: account/organisation/credential/session/project identifiers, access
tokens, secret headers, user identity, local profile paths and private repository
content are omitted.
thdxr commentedon Oct 11, 2026
Thanks for the report! OpenCode 2.0 is now out and development is focused on V2, so we're closing issues filed against OpenCode 1. Please upgrade (
opencode upgrade --major, details: https://anoma.ly/notes/opencode-2-0), and if this is still relevant on 2.0, reopen this issue or open a new one with your 2.0 version.— from 𝕺𝖕𝖊𝖓𝕮𝖔𝖉𝖊