Gets you past OpenCode's free message limit, and tells you when it's back.
OpenCode gives you a fixed number of free messages per day and then shows:
You've used today's free messages. They reset at 2:00 AM - 10/27/2026
This tool checks whether that limit is still biting, gives you a fresh project identity when you need one, and can push OpenCode through a proxy if you want a different connection.
git clone https://github.com/Tazmyan/OpenCode-Unlimited.git
cd OpenCode-Unlimited
powershell -ExecutionPolicy Bypass -File .\install.ps1Done. Open a new terminal window so the opencode-unlimited command is found.
Nothing needs admin rights, and your OpenCode settings are not modified.
Just change your internet connection first — VPN, hotspot, router restart, whatever you have. A new connection is what usually brings the messages back.
opencode-unlimited test -liveIt asks the app for one tiny reply.
WORKING— you're free to prompt again.EMPTY— the app is still blocked on this connection.
opencode-unlimited reset "C:\Users\you\projects\my-app"That project gets a fresh identity. Its sessions, messages and history stay exactly where they are — only the id moves.
That's the whole workflow. Everything else is optional.
| Command | What it does |
|---|---|
opencode-unlimited test |
Free check of the direct API. Fast, but it does not see your app quota. |
opencode-unlimited test -live |
Real check through the app. Costs one message. |
opencode-unlimited id |
New project id, all projects move to fresh ids |
opencode-unlimited id "C:\path\to\project" |
New project id for that one folder |
opencode-unlimited status |
Project id, connection, plugin state |
opencode-unlimited reset |
Rotates every project, clears the stale "out of messages" error |
opencode-unlimited reset "C:\path\to\project" |
Same, but only that folder |
opencode-unlimited on / off |
Turn the plugin on or off |
opencode-unlimited proxy set socks5://host:port |
Route OpenCode through a proxy |
opencode-unlimited proxy off |
Back to a direct connection |
opencode-unlimited doctor |
Check node, service, plugin, identity |
opencode-unlimited uninstall |
Remove plugin, menu commands, state |
Inside OpenCode's chat you get the same thing as menu commands, just type /:
opencode-unlimited
opencode-unlimited:test
opencode-unlimited:reset C:\Users\you\projects\my-app
opencode-unlimited:id C:\Users\you\projects\my-app
The two that rotate take an optional folder. Leave it out and every project moves to a fresh id.
That's expected, and it's the one confusing part.
test without -live sends a bare request to OpenCode's API. That endpoint
answers 429 for anything that isn't the OpenCode app itself — same answer for a
random project id, a valid key or no key at all. So it can't see your real quota.
The app is the only thing that knows. Use test -live when it matters, or simply
send a message and see if it lands.
Your chats live in opencode.db, and rotating an id never deletes a row.
- The plugin only sets one header on outgoing requests.
idandresetrewrite the project id on a project and its rows. Sessions, messages and history follow the new id and stay attached to their folder.resetalso deletes the stored "you're out of messages" error rows, nothing else.- Restarting the background service never touches sessions.
Open an issue on GitHub and describe what you saw — the command, the output, and your Windows version is enough to start.
Pull requests are welcome, small ones especially: a clearer message, a compatibility fix, a missing check.
Tip
Faster answers in the Discord: https://discord.gg/8RfQBJh5JZ
Educational and research use only. Not affiliated with, endorsed by, or supported by OpenCode or any of their partners; all trademarks belong to their owners.
- It unlocks no entitlement. The free limit is enforced by OpenCode's servers and stays in force.
- Using it may break a provider's terms of service. You are responsible for that and for any consequence, including account restrictions.
- Provided "as is", with no warranty and no liability for damage, data loss or account action. Use at your own risk.
- Rights holder and want it gone? Open an issue and it gets removed promptly, no argument.