I've been using OpenCode V2 since it first appeared on the website, and I can only repeat the positive views on usability, the client/server model and self-awareness/ability to edit it's config and write plugins.
I'd like to mention two other impressive things about OpenCode.
First, their issue tracker on GitHub works really well. They have the OpenCode GitHub App connected, and for any bug report it reads the issue, tests on the mentioned version and latest dev branch, and comments the findings along with a reproduction script. For TUI Bugs it even records a video. And all that in less than two minutes, usually.
Another thing they are working on is opentunnel, where you can tunnel services to https on <random>.opentunnel.xyz and its subdomains. What's notable is that the subdomain is persistent and unique to you, and a wildcard ssl cert is actually generated on your machine, so the platform cannot see the traffic. Their primary use case seems to be making the OpenCode Server usable from anywhere, but it can do much more with their cli:
I see people talking about this being new in v2 everywhere but it's not the case. What's new is that it's the default (and also not really since `opencode service` and `opencode serve` start two different things). But in v1 it was very possible to run one opencode instance and have multiple clients connect to it (like Openchamber and neovim).
Many of the annoyances from V1 are gone. Skills and plugins reload automatically (finally). Tasks can be backgrounded (though I think this doesn't happen automatically yet). There's a built-in skill for editing the configuration (finally I can retire mine). The front-end got some love. Apparently they re-architected the loop around Effect. Sub-sessions can be communicated with better. Configuration is loaded from the folder the session is created in rather than where the server was started.
In general, this update largely takes OpenCode into the current age features-wise and is a good overhaul quality-wise. Just in time to stop my early switching away efforts, which would've been a pain because I know few other harnesses with such a strong server/client model.
To me, there are more annoyances in V2, so many that I've switched harnesses to Pi (for now?). I think the hot-reload is another security misalignment. An agent should not be able to modify plugins and have that immediately reloaded for availability.
I switched to Pi last week, have not seen anything about self modification, but have seen a lot about security, the minimalism and customization by user are closest in common selling points from exiting users
you cannot have both and be serious about security
to be clear, I'm talking about hot reload, agent can manipulate its own environment in real time, that's asking for trouble, put some controls on that or reap the consequences from loss of control
Unless I’m out of the loop, Pi can self modify in the sense that plugins are just code it can edit. It doesn’t live reload that I’m aware of.
Pi’s whole UI is customizable, so a lot of people were having their agents build their own interfaces.
The distinction is probably irrelevant for most people. I secure the whole thing in a container, because I lack the willpower to audit a bajillion lines of LLM code just inside the harness.
Pi notably ships without MCP support (or it did, I can't remember if they're adding it to Pi main or just the durable one). From a vanilla Pi perspective, I'm pretty sure but not positive that it can't. It would have to install an MCP plugin, and you would have to re-launch Pi to load that plugin.
It does have native tools, but they're also in plugins that aren't hot-reloaded. The LLM would have to write the tool, you close Pi and re-open it before it was available.
> Would you consider that a gap in security posturing?
Honestly, I think trying to secure the harness is a lost cause for the same reasons SELinux never really took off. They solve a real problem in a way so painful people would rather just live dangerously.
I actually wrote a thing to implement my security posture https://github.com/SethCurry/abyss TLDR it pretends to be an ACP agent, but runs the agent inside Docker (with optional bind mounts) and proxies the ACP connection into the container.
I'm also tinkering with WASM-based plugins in the ACP proxy to add some additional security and compliance posturing at the protocol layer (ie agnostic to what the underlying agent is). E.g. I slapped together a plugin that will automatically cancel a prompt mid-turn if an OpenRouter API token shows up in a) the prompt, b) agent output/thinking, c) agent tool calls. ([1], [2], [3]). The grand vision is slapping centralized management on that so security and compliance teams get a "firewall" of sorts to prevent leaking secrets, filter bash commands, censor PII, yada, yada.
Hey, I agree that trying to secure the harness with bubblewrap or other case-by-case limitations is inherently unsatisfactory, and I also wrote an open-source agent container tool (on top of gVisor + Kubernetes, since it can run pretty much anywhere at the cost of some performance). In case you're interested, I'd love your feedback, and obviously feel free to take any pieces that are helpful. The transparent egress proxy in particular was a pain to figure out: https://yaac.dev/
I was talking about how I was looking for something like this earlier.
1. I can feel the claudisms coming through, a turnoff for me personally
2. You're shaving yourself short on a good pun
I'll still give it a look since I am in the market for a kubernetes based platform for dealing with lots of agents across harnesses. Scion was my goto, but I'm not so keen on that project anymore.
My ideal solution does not require a running server (CRDs should be sufficient) nor a UI, I want to start new agents in my existing automations.
Hey, thanks! Probably the way I’d handle your use case would be to run the automations themselves inside yaac containers, which is admittedly a bit heavyweight, but on the plus side you always have an agent available to monitor or edit them if you want.
Also, which lines on the website are the claudiest? I tried to edit out the tone, especially too many one-two punches, but to be honest couldn’t be bothered to write every word myself still
It's not one thing in particular, it's woven throughout from the structure and phrasing to the design and color choices, there is this general vibe to claude produced artifacts. Part of the problem is that so many people are using claude, we just see this more and it's become tiring, so even a modest amount carries more impact than average.
If you want humans to spend time reading and evaluating, put the human time into writing and editing.
More than fair —- I’m already a bit tired of the glitched out aesthetic that people are using to get away from LLM smell, so I was trying to avoid being too weird or non-standard with it. But I’ll try to give the aesthetics and wording another pass based on your feedback, I appreciate it
I'm using a number of @gotgene's plugins, they are really nice
I'm looking at porting my Dagger based env to Pi, mainly because it allows me to fork / time-travel the complete environment. One thing I really like about Pi is that /tree command and friends. It aligns really well with how container layer based env can be realized with the Dagger SDK.
> you cannot have both and be serious about security
Why not? I think DSH does this pretty well with an agent preset that exposes the tools required for the agent to modify the harness.
It's kind of like how the kernel can expose interfaces to allow userspace to load kernel modules at runtime: you "just" have to control which processes can use them.
Between that, and a couple of extra injected bwrap args to make my SSH keys and LLM API credentials unreadable from the agent's shell by default, I'm pretty comfortable using the harness outside of a VM for most things.
If an agent can change the harness it is running in, in real-time, all bets are off
There is semantic ambiguity here. An agent being able to write plugin code for the harness it runs in is related, but orthogonal, to the real-time or not availability of that plugin to the current session.
When I have my agents assist with plugins, I pay closer attention and either do the testing myself or have them run the altered harness in another instance.
Part of this is because they have borked themselves and it can be super annoying to undo their f-ups. Little qwen did this once, breaking its own connection to vllm.
1. Running background code on my machine is something that gets an immediate removal from me.
2. opencode 2.0 does not exists. I mean it: there is no release[1] and per their own instructions, `npm i -g @opencode/cli@latest` does not install opencode 2.0.
3. `Error: @opencode/cli's postinstall script was not run.` Not even running postinstall.js can fix that, neither on linux nor macos. And even if it works, in a couple of days or on the next upgrade it will fail again.
DeepSeek Harness allows the user/agent to build its own plug-ins and run them without restart, mostly. Pi and OpenCode were then influenced to do the same in their respective new versions. I don't know which has the better implementation.
DeepSeek does. The entire thing is composed on plugins, using a framework called Cordis. Everything is a plugin. All the tools, the models, plan mode, file system access, everything. You can change anything anywhere, even reconfiguring active plugins deep internally. Cordis provides an effect system so everything can be rewound on uninstall time. This is how people run local models or just other major models, just by writing a new plugin to talk to whatever instead of the deepseek api. The agent loop itself is a plugin and can be swapped out.
From what I read, OpenCode V2’s design is similar. It’s built around Effect, which seems to be gaining steam as a framework for building correct software.
Cordis also looks interesting as an alternative, but appears more bound to DSH rather than a more general thing (which I prefer).
Yes, that’s the thing I had mainly been looking at as an alternative. It probably has a better culture around extensions, but also seemed a good bit more DIY, especially to get it working with a good UI.
I do not see where Pi does any automatic hot-reloading, though I believe there is a /reload command one has to run that can do this. Still new to Pi, if you have a link, I'd be appreciative.
This is all a stopgap until I have some time to go back to my personal/custom harness.
Yeah, but only I can click to move a task to the background when it takes longer, which could and IMO should happen automatically. The model can’t always judge that. (I see how my comment wasn’t clear enough that I mean this)
In general, the preventable “model gets stuck” class of annoyances has not been fixed quite yet - there are also stil no timeouts for permission requests, at least by default.
Exactly! Almost all of the time this happens is during the initial exploration when the model decides to take a peek outside of its directory. It’s so annoying that that has to effectively kill the entire session.
It’s great, they’re embracing even more the “everything’s a plugin” principle that has been pushed by other harnesses like Deepseek. Shoutout to all the AI model companies out there: if your subscription can’t be used on open code, I’ll buy something else.
Many of the workarounds I had to develop for the v1 now come as native features in v2 (i.e. session rebinding to other folders), now the only thing that was missing is the ability of plugins to read the response you’re writing (useful if you want to have the double-Esc feature like in claude code).
This is the only way. Auto mode is really just yolo mode with more LLM tokens billed. It may catch some weird shit but it isn't a reliable sandbox. Just lock up the LLM and let it run.
Are you sure? When they announced it they said they will update quotas to account for it. Which just means that the next adjustment will effectively null it out.
The docs all say there is a time and billing cost:
It's the only way if you want 100% security but often a compromise between security and usability is preferred.
I'm actually working on multi harness auto mode. It's already done for Pi and I'm currently working on copilot cli port (where it is needed the most by the fa r of autopilot in copilot being so atrocious).
The correct way for auto approve to work is similar to what claude code does (a deterministic algorithm where a separate model reads what the user says and adds rules based on what the user enables).
I couldn't believe such a thing that works well doesn't exist, but it doesn't. You either have to do borderline yolo or you cannot leave a model working overnight and not find it got stuck on some silyness after an hour.
It's an NVidia product, and so far I quite like their sandboxing and policy system. I'm still getting used to the download and upload flow though, it makes it a bit more annoying to read diffs and commit (unless you let it git as a part of the policy)
An ec2 or vps. But no sandbox can solve the problem that a true powerful harness would need access to the source of your information like slack and jira.
A pretty important feature is that the client process can crash without losing progress on my current session, similar to how I can reconnect to my tmux server without losing current active processes.
If you think about the evolution of AI coding, companies (who will eventually pay for these tools) will realize they want to run the coding tasks in a remote, controlled environment.
Every engineer typing on their machine and burning tokens (money) won't work in an enterprise setting.
> Every engineer typing on their machine and burning tokens (money) won't work in an enterprise setting.
Of course. Obviously, just a week ago and before that none of the harnesses did work in enterprise settings.
Irony aside, I don't think that there are that many tasks that will benefit from a daemon but which aren't solvable with screen or tmux. In other words, I think this feature should not exist, let alone be enabled by default.
Also, I actually am "an enterprise who pays money for these tools" and I strongly believe most of my engineers immediately disabled the background daemon. I know of a few who were unpleasantly surprised by the cli codex update.
Sorry, English is my second language. When I wrote "won't work", probably what I meant was: won't scale.
I am certain we are going to end up using these tools like we do with CI in the near future. With this, you'll get full observability, RBAC, sandboxing, and reproducible benchmarking.
I assume as an enterprise you will want all of these when you spend a big chunk of your budget on tokens.
There’s two answers, depending on your personal cynicism.
The optimistic version is that the new zeitgeist is deeply recursive agents writing _huge_ swaths of code at once. The human side seems very asynchronous. You do a lot of queueing something that the agents churn on for an hour, so being able to detach/reattach would make sense.
The cynical version is everyone is realizing that nobody will pay for a harness, so they’re pivoting to a client-server model to try to PaaS-ify them. If they haven’t announced it already, they’ll have an OpenCode Cloud within the next quarter or two.
We’ll see how that goes. I’m not holding my breath that these will thrive as long as infrastructure teams exist. Agents are too simple from an infra perspective, and we’re seeing frameworks to make them stateless pop up already.
There is, for the same reasons that people use screen or tmux (which some people do use for this). If I were queueing a prompt I expected to take hours to finish, it would be nice to be able to run it another computer so I don't have to worry about closing my laptop lid or the battery dying.
It's not world-changing, but I have had agents do `grep -r /` commands before and it would have been nice to be able to detach and let it run rather than having to kill it because I have to leave before it'll actually finish (WSL is sooo slow on that). It would be better if the agent did a better grep, but sometimes I'd rather wait 20 minutes than spend 7 minutes setting it all back up again.
It's a shame the RLVR training doesn't zap the model with a million volts every time it runs a recursive grep or find on /, but I guess that would make the benchmarks suffer.
I know. I’ve been poking at just writing a middleware for my ACP proxy that transparently rewrites them to ./ but they’re often piped to something that expects an absolute path.
Maybe that’ll be my weekend project, I’m sure no one has ever been mad to spend a weekend trying to parse bash.
I agree that it shouldn't be default, but I'm wondering why you think it shouldn't exist _at all_. The daemon mode for emacs, for instance, is incredibly useful for speeding up startup time and persisting things between windows. It's probably very similar here.
Native apps connecting to the OpenCode server is a great way to run sessions on remote hosts!
I wish Claude Code would adopt the same model. The desktop app deploys a separate engine that restarts and clobbers long-running sessions upon reconnect (Remote Control is their recommended solution but requires a Claude.ai account).
I’ve been vibe coding a native macOS Claude Code app that spawns a server that wraps Claude Code on remote hosts, but the UX and features are always lagging behind.
I am quite keen on this as well, I have been trying to move all my active development to happen inside a container, including the harnesses. This, of course, makes it very hard to run GUI harnesses. I prefer CLI, but it would be neat to be able to better isolate gui-based harnesses as well.
I have been using VSCodium with https://github.com/jeanp413/open-remote-ssh so (most of) the IDE also runs inside the container. I have been trying to get everything inside the container, including the projects I work on, the IDE, the harness, the dependencies, etc. Both for security and for portability so I can have the same setup in both my work and home computers.
One thing I haven't been able to do is limit the blast radius of is git, github ssh keys give blanket access to all repos tied to my profile and ATM I set up the github SSH key inside the container.
Claude code agents have a protocol that's usable for the same purpose it just listen locally but it's usable i have my own claw-like that has options for claude, codex, and pi (my subscription, wife subscription, and i got a yearly sub on glm when it was cheap)
No because it doesnt get backgrounded and I would need to hold one end of the stream at all time, and feature completedness is spotty
I use the protocol claude code terminal use to talk to its server to spawn agents, opencode server protocol which is published for the same purpose, and manage pi command lines by pid
That's already possible too. A single server can handle multiple sessions, and multiple devices can connect to a single session at the same time. However, since the client is limited to Anthropic's app, there is no local API for connecting your own client.
I've developed something similar for personal use. A harness who's only job is to delegate to other harnesses (i.e: AntiGravity, Codex, Claude Code, Hermes) to create an opencode-web-like interface across multiple hosts.
For Claude Code, don't use remote-connections. Your best option is to look at how the closed-source VSCode plugin interfaces with Claude Code. The way it works is that it reads files directly. This API, although unofficial, is likely very stable, because an old VSCode extension still has to interact with new version of Claude Code.
If there's any interest in this sort of thing, maybe I'll open-source it. I would have to cleanup the slop though.
I think it's due to they are doing a funny business to parse the progress, that's pretty much vibed and no one care. Like instead of using curl's progress, they re-invented a progress tracking with the tracing interface (--trace-ascii), byte by byte :(
Okay nevermind this is pretty bad. Although humans do this too and I've also done this without realizing it, only noticed when I was trying to move a file bigger than few kilobytes.
I’m kind of surprised at the overlap in “has progress bar” and “is expected to take a few seconds max”.
I’ve never even debated it for files under hundreds of megs. It’ll show up soon, if I care I’ll do an ls in a loop to look at file sizes. Just log where the file is.
It's one of those paradoxes inherent to software development: even if a tool is designed to work with Big Data, developers are too impatient / feel too unproductive to actually work with Big Data during development, so they only bother testing their tool using small data for 99.9% of development. Problems the tool has under actual Big Data tend to only start being found as of v1.0-rc1.
I don't think fast gpu rendering terminals should be mandatory for this kind of thing, and if you should have an option that facilitates the need for one then might I suggest falling back to something sensible rather than stalling out for forever when the user doesn't render glyphs as fast as you want them to?
My terminal has gpu acceleration disabled due to being wasteful with vram and while I don't use opencode I've ran the script and it was completely fine using minimal cpu.
If it doesn't work at least ok with something like xterm, someone really needs to reconsider some life decisions. Htop makes it work, why should a terminal emulator need to crack the engima just to render silly stuff?
anything that can run those applications should be able to run a progressbar, but as I have learned it updated the progress bar based on bytes received and not based on time.
Of course? I never ever upgrade any software unless I'm facing a bug or I want a new feature from the new release. Otherwise it's just taking risk for almost nothing in return.
I suspect heavy eyes free coding. I spent the last week helping them understand a major security regression in config loading, took two issues/pull requests. Our hunch is the Ai told them what they had was good, not enough human critical thinking.
I've switched to Pi because I do not like the direction v2 has taken UX. Nor do I trust the security posturing going forward. There is also the social media stunts of the CEO that push me away.
I'm now trying to advocate Pi adopt system level configuration for similar security reasons. If any HNers would like to add their thoughts, please do so here
Ive anecdotally never found OpenCode to have a real axis where I find it "best". But I havent tried it in a bit, mostly because I don't have a real gap in use case coverage between Codex/CC/Pi. Anything more specific in need probably gets a custom harness.
The Go plan is quite good, possibly the best deal out there. I recommend it for anyone interested in trying open weights ($10/month, very generous quota), and you can use it with any harness or direct curl. I have my Go sub configured through GoModel (no relation, my gateway of choice, also very good).
Took me a little while to figure out this was a llm harness for coding (also called an agent, I suppose, but that term seems overloaded and ambiguous to me)
There are many of these available, alongside the provider ones.
Are there any benchmarks which help me decide which ones I should try over the standard codex/claude?
Anthropic and OpenAI models are available via a number of different channels eg AWS, GitHub copilot, Google Cloud… using those kinds of platforms behind a vendor-neutral tool gives you the ability to swap models out while maintaining the same workflow.
this is no longer the case. If your harness handles login through the Agents SDK, you can use your sub now. That's why your Claude sub can be used in Amp and T3 Code for free now, but not in Pi (at least not without workarounds)
Does it need to be proxied through the `claude` tool still? Or is it authenticating directly? From what I can see (for Amp at least), it's all being proxied through a `claude` binary. Perhaps I'm seeing outdated info from the announcement though?
Seems foolish to use a single-vendor harness to be honest. With how fast things change, and the price/performance you get from open weight models, building a workflow around a single llm provider seems super limiting.
For example, consider something like SWEBench, where a test should pass. Harness or a skill can just tell the agent keep trying until the test pass. So same model can have a lot of behavior changes between the harnesses.
In my experience (i own a multi-agent IDE with 50+ supported harness) folks stick to first party, usually either openai or anthropic, grok, agy; if they are willing to pay for the subscription the value is unbeatable. And they don't risk trying different harnesses.
I made a harness too, and recently added eval with opencode and pi and I sat between them. No gaming other than trying to figure out why I was really bad on some evals (I was not returning thinking tokens which broke cache, for example, and different model families do things way different here). I have yet to try my harness for coding but I do have a few terabytes for it to read. And I’d rather use a local model that’s fast and good at retention, but that run could take a year, lol.
The main four seem to be Pi, Opencode, Claude Code, abd Codex.
I do often see benchmarks comparing them and usually Pi comes out on top, but I think the benchmarks are generally testing one moderately sized clear task. Pi is minimal and great in that situation.
For more general usage, where tasks are not clear, you might interrupt at any moment to steer it, etc. benchmarks are harder I guess. I personally love pi because anytime there's something I don't like, I spin up a separate session and fix it.
E.g. I've found the "reply in simple technical English" hack amazing but I have to keep saying it over and over. So I had an agent write an extension in about ten minutes that appends a short hidden message saying all user and dev facing text must be in STE, apply that without talking about STE. Works amazingly well.
I would state the same, but looking at commercial offerings for agents, such as MCP servers or skill instructions in the vender's own docs, opencode is often not mentioned at all.
Here is an example I encountered recently: The Figma MCP Server documents usage with Claude (Code), Codex, Cursor, Grok and Antigravity [], but notably not OpenCode. More so, their oauth registration seems to use some kind of whitelist, meaning just adding the MCP by url does not work either. To make it work, my agent edited the config entry to use "Codex" as the oauth name, which worked.
That's just one example, but something you see quite frequently.
The harnesses all do the same thing in a general sense. They loop over chat with defined tagging/syntax that issues commands and run sub-agents that do the same.
Pi is the most basic with the ability to add features.
opencode also supports more features and was build as an open alternative to claude.
the person said that there were too many samey harnesses and they couldn't see why or which to choose and you thought you'd fix that by adding another to the pile?
I use "harness" for the tool which calls the llm, has the tools, interacts with the computer (filesys, bash, etc), does the session bookeeping
and "agent" as the instance which is running... this is the more overloaded term because there are "agent" definitions, this is where a combinatorial exists, because the running "agent" is a combination of agent definitions, context, tool choice where you can modify each independently to create a new "agent"
It's my daily driver - very easy to customize. Added a pretty solid vim plugin for it and a few more really useful plugins. Here are my dotfiles https://github.com/dkarter/dotfiles
Can you share that vim plugin? Now running opencode at Ghostty and looking diffs at github and rarely when need to do code changes manually I am using vscode but proper vim plugin would be godsend.
it feels like a clear improvement across the board but a heads up: i got bitten by upgrading - since all tool calls now go through the background process, the sandbox that i use to wrap the TUI process quietly became useless. took me a day or two to realize that web fetches, etc. which should have been blocked were succeeding.
There are at least 3 security regressions (imo) in the initial v2 release
1. configuration loading (now fixed) dropped support for system level, then restored it incorrectly, now it is better, but still some issues in user space
2. hot-reloading of plugins, agents can now change them with immediate effect
3. this, which I was unaware of
I wonder how many more there are given this much has been found already
A well written TUI, esp with keyboard shortcuts is a power multiplier. One of the biggest bus companies in my country used real terminals well into 2000s, and continued to use the same TUI inside a terminal emulator then.
It was efficient, bug free and fast after that many years of polish and refinement, it became one of the defining pillars of the experience. Imagine doing something and that thing can be reproduced reliably by muscle memory. You can trust that system.
Trading consoles are basically TUIs which can be driven with their specialized keyboards at great speeds and reproducibility, as well.
Wat? I would have thought a TUI is the least ADA compliant. Sure it has hotkeys (as does any decent GUI app) but does it have TalkBack and all the other accessibility features? I don't think ASCII-art is very accessibility friendly.
I don't think that's the case. This is from anomalyco, the company who made sst.dev. Crush is from Charm. I think OpenCode may have originally been written in Go but nowadays their codebase is TypeScript.
Edit: I'm missing some context others have pointed out.
I'm really tired of this being retread time and time and time again.
It's just not interesting, it doesn't seem to matter, they are are separate projects and both doing great. The inside baseball about old history doesn't feel like it goes anywhere, adds anything. It didn't the last 5 times opencode got submitted!
I wish they’d invest more time in performance improvements over code mods. I recently switched to pi which uses an order of magnitude less RAM (hundreds vs dozens) and noticeably less CPU on my machine… OpenCode is really nice but it’s about as heavy as antigravity and is substandard in features…
I guess it's fine if you don't mind paying for the extra tokens.
In my experience, what works for one model in terms of system prompt doesn't necessarily transfer to another model, so I would be concerned that a large system prompt would end up being a "jack of all trades, master of none" situation where your giant prompt has to try to account for the eccentricities of every single model, and might even include details that add confusion for some models.
And pi has been eye-opening for me in terms of how well newer models perform with basically no system prompt. It makes me wonder how much of the default system prompt is essentially cruft which was added to support older models which needed more guidance, and is still in there.
I am using v2 since its released I like OpenCode because of its user experience for TUI which imo is best for any coding agents out there but still there are rough edges which have to be resolved currently I am facing clipboard issue in Ubuntu/X11. I have not figured the root cause yet i hope they gt resolved
OpenChamber ftw! I'm surprised it's not more popular - so much nicer to use than the TUI.
I'm always confused when people at work show me their opencode or Claude code setup of 6 terminal windows open simultaneously with the same illegible walls of text. No idea how people still prefer that over a nice GUI.
Once you really know your keyboard, it's like an extension of your hands. You can fly through those six terminals, and moving your hand to grab a mouse means stopping whatever you were doing. That wall of text is all familiar to me - I see an UI full of empty space and wonder what I could have used it for.
Of course there are great reasons for using pointers also. I'd say this is mostly a preference, I'm sure you are extremely effective using your own methods. I have maybe two dozen terminals open atm, and I can tell you what each of them is for - but put a phone bill or a bank statement in front of me and it might as well be Greek.
You're not wrong, and I predominately use a TUI at work where I'm actually at the computer for ~8 hours a day.
But I use OpenCode / OpenChamber for personal stuff where I might only get 20 minutes at my computer before I have to go do something else. So the web interface and especially the mobile app get more use from me there. It's kind of wild to be working on a project while walking my dog or washing dishes or something along those lines.
I also used the desktop OpenChamber app once recently because it has a built-in web browser that the agent can fully control (unlike, for example, Gemini in Chrome).
Reading long walls of unrendered markdown is where the TUI is not fun and the GUI can shine. Especially when illustrations come to play.
Also editing your own prompts with a normal text input is far better IMO (instead of whatever magical box Anthropic or OpenCode has shoehorned into the terminal).
When I opened the site, I started hearing a sound that I never heard before: My MacBook Pro M4's fans. I checked ActivityMonitor and Firefox was using a significant CPU share. Are they mining crypto in the background or what's happening?
I just tried the excellent local https://www.liquid.ai/blog/lfm2-5-24b-a2b model, but the model is trained to talk in bash, while OpenCode stubbornly expects JavaScript, and there seems to be no way to make them work together. The model itself performs excellently in pi.
Interesting and I'll definitely give this a try, the client/server and plugin system do look very powerful.
However, I've been using OMP in combination with Tern (the terminal) lately and it's an incredibly smooth operation. It's hard to find a decent terminal on Windows (corporate device) but this is the best I've found so far.
application/x-apple-diskimage
Last Analysis Date
3 days ago
Summary
Detection
---
SOCRadar
Malicious
---
ZeroCERT
Malicious
----
Gridinsoft
Suspicious
---
??
Is there a way to buy tokens with a good model that makes OpenCode near as cheap as Claude Code with a Claude Pro subscription?
For personal projects, Claude Pro seems to give me a lot of tokens to use with Claude Code, and from experiments using other models with Claude Code (e.g. via Vercel) always seems way more expensive.
There is opencode go [1] that gets you quite far compared to paying API prices. For example for the $10 subscription you get $80 in deepseek 4.1 flash credits.
The headline figures are $10/month for 'Go' with "Generous limits" and $40/month for 'Go Plus' with "Higher limits".
Then, in the table below, picking (at random of course) Claude Haiku 5.5, I see it listing 3,850 'requests' per 5h for 'Go', 15,380 'requests' per hour for 'Go Plus'. Then there's another column saying that the "Monthly Usage" is $15 for 'Go', and $60 for 'Go Plus'.
What are the limits?
What's a 'request' and how does it relate to a token?
Why are the 'requests' figures per '5h' (the limit resets every 5h?)
Why are there 'Monthly Usage' dollar amounts that are in no way connected to the subscription costs, and what do they mean?
All the explanations below are just repeated rewordings of the same thing: "Go costs $10/month with generous limits and Plus costs $40/month with higher limits", as if that makes everything clear.
The pricing is opaque for stupid reasons. All the information is actually available for you to calculate your usage exactly.
- You pay $10/mo for Go and get $10 worth of usage per month
- Now, each model they make available has a multiplier from 1.5-8x
- So, the expensive ones like Kimi K3 have a 1.5x multiplier, cheaper ones like DeepSeek 4.1 Flash have 8x
- This gives you usage of $15 and $80 per month respectively
- You can mix and match
- So, you can use 25% of your quota with K3 and 75% with DS41Flash ... usage of $3.75 and $60 respectively
- You divide the two figures by their respective multiplier ... $3.75 / 1.5 and $60 / 8 ... and you end up with $2.5 + $7.5 = $10 which is what you paid
- You should ignore the requests table and go directly to the price/M tokens table where all the actual rates are given
- They control usage at 5h/1w/1mo intervals
- You can use 25% of your monthly quota in a 5h block, 50% in a week, and 100% in a month.
- If you were only using DS41Flash, that is $20m, $40 and $80 worth of usage respectively which is $2.5, $5 and $10 of your subscription figure after accounting for the multipliers.
It would be so much simpler if they credited 1M microdollars per $1 of subscription and quoted the per M token rates for each model in this currency.
But then Claude/Codex/StepFun and all the other subscription services are far more opaque.
This is quite confusing, indeed, but the limits are generous and transparent once you understand the concept.
There are two plans, OpenCode Go and Go Plus, for 10$/mo and 40$/mo.
With your plan, you get a specific monthly amount of money you can use, with separate weekly and 5-hour limits to not spend all at once.
The amount of money you can use depends on the model, but the usage percentage adds up regardless. For example, on the Haiku Model, the monthly limit is 15$/mo, as you read from the page. For other models, such as DeepSeek V4.1 Flash, the limit is now 80$/mo (the increased it from 60$ recently).
This might seem odd, but the stated purpose of OpenCode Go is "Low cost coding models for everyone", so the limits on the open models tend to be higher.
The math works like this: You use 5$ no Haiku and 20$ on a 60$ model, then your monthly limit is used 66.6%, meaning 5$ of Haiku or 20$ of a 60$ model remaining.
Another way to view this is as follows: You have 10$ flat usage per month, and the "higher usage on each model" is actually just a discount on the token price. So Haiku is discounted to 10$/15$=66.6%, DeepSeek to 12.5% and so on.
Go Plus just means you get more usage, though the rate is not always 4x.
To answer your remaining questions: The billing is based on the actual provider's api costs, so input/cached/output tokens. I suppose the "requests" number is estimated. The OpenCode TUI and your account website actually show the real session prices, which also helps with an understanding how expensive the agents are on raw (unsubsidized) api pricing.
The usage limits are rolling, so there is a 5-hour, a weekly and a monthly limit. The 5h is 20% of the monthly limit, and the weekly is 50% (not sure on the exact numbers).
I would agree that the pricing is confusing, but for the price you get surprisingly much usage, especially on the 60$ models. Give DeepSeek V4.1 a try, you get nearly unlimited usage and it's around Sonnet/Opus level.
As a Go subscriber, from my understanding the $10 is what you pay monthly, but you can use up to a certain set dollar amount of tokens supposedly at cost but that usage comes with different sets of rate limits so you can't rip through the whole thing in a matter of hours.
I now understand thanks to all the replies here (thanks, everyone).
But it still feels like sleight-of-hand. They’re the ones setting these prices, no? Aren’t there rules about saying things like ‘this product $10 - but it’s worth $60’!
I agree that the Claude price is also opaque - though it becomes kind of ‘intuitive’ after you start using it. I guess these would too.
I guess like all AI subscriptions there's some sort of subsidization and the rate limits make it hard to use all of the supposed dollar usage across all the models, for instance using Gemini Argon 4 on High for a few sessions supposedly used $26 of my $60 usage and burned up my weekly request limit already.
Oh that. Yes, most AI subscriptions have something similar.
I think it means you can't use more than 25% of your monthly limit in the 5 hour period.
If you use something like "DeepSeek V4.1 Flash" you get 80 USD worth of API price out of the 10 USD subscription. Assuming you spread it out over a few sessions, as you have the 5h and weekly limits. I think it's similar with Claude or Codex subscription.
Based on this post, it sounds like a ton of great improvements.
I've only used OpenCode a bit, but I found it was sufficient for the workloads I was throwing at it. It wasn't quite enough to beat out Codex or Claude Code as my go-to choice, though. Perhaps I'll give this version a shot and see if they've gotten it over the hump.
For me the distinguishing feature of OpenCode is the web ui/desktop app. I’m using OpenCode because it’s the only open-source agent-harness I’ve tried that runs outside of a TUI. I like terminals but not TUIs and especially not for prose-based interactions like prompting.
But that’s a shallow moat, and the rest of the features here are not particularly interesting to me. I don’t have a use for plugins or a model-server proxy (I can connect other tools directly to the model provider).
I am not too familiar with openchamber but I think I remember passing on it because not all of its features were freely available. Another one to keep an eye on is 'happier' which is like if Paseo were designed from the beginning to be multi-domain.
Unfortunately many subscriptions require you use their harness. In that case, I highly recommend using Termic (https://github.com/simion/termic/).
It's an incredibly useful GUI that lets you use the provider's harness, but adds extra productivity features. You can use OpenCode, Pi, Claude, Codex, whatever you want. The TUI runs in a window, but you can also pull up terminals, open tabs, keep projects, workspaces, show file diffs, give feedback on lines of code, review PRs, and way, way more. The number of features is impressive.
The devs are very quickly adding features, yet the app remains stable. And they fix bugs super fast! They fixed like three bugs and implemented two feature requests of mine within a week of asking. Best of all the whole thing is FOSS and they're not trying to make money off you. Absolutely awesome maintainers.
Unfortunately, opencode v2 still has mandatory remote config loading from your model provider's .well-known/opencode url, which gives your model provider remote code execution on your machine.
You should't really run a coding harness on your host computer anyway, because it is impossible to protect yourself from prompt injections and from an incredible amount of security vulnerabilities in the vibecoded plugins.
Security is fundamentally unachievable in popular coding harnesses.
The only right way to use it is in an isolated environment.
This isn't really true. You're talking about unattended execution, where the user doesn't review each action before letting the model proceed. I agree that it's bad to run that on a machine with important data, but I disagree that coding harnesses are fundamentally insecure just because the practice of reviewing each tool call has gone out of fashion. I do see harnesses these days not designed with that in mind, but that just makes those particular harnesses insecure, not the fundamental idea of harnesses as a concept.
No harness is inherently secure or insecure based on its capabilities alone. Harness security, at least with regards to the model itself, has strictly to do with whether or not the model is allowed to take unauthorized action. If it is, the harness is insecure in that it enables the risk of unauthorized activity from the model. Otherwise, any particular harness may be insecure in other ways, but would not fundamentally be insecure in that way.
By this logic, a harness doesn't even have to be related to programming to be insecure. Any harness that enables unauthorized activity from the model would be insecure. For example, this would include any system that allows a model to make an unauthorized management decision.
Are there any recommended sandbox patterns to use? Custom linux users or bubblewrap and managing openbao is getting to be a lot to manage each harness by themselves!
I've been using https://nono.sh which uses landlock instead of bubblewrap. I had a look at all the similar alternatives when I started using it and everything else I could find was far too vibe coded for me to trust, especially for this.
- Miserable startup times are now "solved" by leaving it always running.
- Someone in this thread said the curl installer was slow because the install script needed cute progress bar rendering. To be clear, I don't care about the installer user experience, but I want to spend a moment on this point, because having used OpenCode for over a year, I think this perfectly sums up the entire experience. A commit born from "Claude, please make the installer look sick as fuck with loading bars and stuff" will always be preferred by the developers over a commit that reverts such a change for a 10 MB drop in memory use.
- Tried to read the unreadable announcement website after waiting for the little ThreeJS demo to load. I gave up.
- Logs from various old sessions leaked up to 16GB on some temp folder on my drive. The harness prompts are still token heavy. I know neither of these are real issues, and chat logs are a useful feature for many, but I felt validated to see someone else in the comments also complaining about the silent storage of chat sessions leaking into my drive in a random folder being the default behaviour.
IMO, this release goes far beyond OpenCode. I had always imagined that the advent of LLMs developing human-level coding abilities, combined with the high hardware prices as a result of it, would act as a forcing function to inspire a new generation of ultra-performant, bloat-free open software.
But this release is proving me wrong in every way.
We are entering a new era, what George Hotz coined "maximalist software": A new dawn of computing, where one one hand, we can simply prompt a superintelligent LLM to "please prove the Riemann hypothesis", and it will actually work. On the other hand, the chat log for the proof disappeared, because because the 2 GB Bun server (yes, the one meant to interact with a plaintext LLM API) just crashed.
> A commit born from "Claude, please make the installer look sick as fuck with loading bars and stuff" will always be preferred by the developers over a commit that reverts such a change for a 10 MB drop in memory use.
Not my experience. YMMV
> I had always imagined that the advent of LLMs developing human-level coding abilities, combined with the high hardware prices as a result of it, would act as a forcing function to inspire a new generation of ultra-performant, bloat-free open software.
I mean, faster and better hardware has never resulted in more efficient software, I really didn’t expect it to be any different here.
It's a big improvement over the previous version. Currently, the Codex TUI has constant display issues for me, the most prevalent being random deviations of light/dark characters. So far no such issue in OpenCode. Since it's model agnostic, this might become my daily driver.
> If a story has not had significant attention in the last year or so, a small number of reposts is ok. Otherwise we bury reposts as duplicates.
In my experience, if a story gets 4-5 points and < 5 comments, it hasn't gotten "significant attention" and a repost gets a second chance. That's not data, just anecdote.
Never got used to opencode honestly, there is always this clunky feeling (same with pi but at least i can customize it more than anything.) and this feeling didn't go away with 2.0 either :/
9 months ago I had opencode fill my 2tb storage with temp files and if I delete it’d redo it on session start. From that time onwards I have not gotten around to building my own verification pipeline to convince me that opencode won’t do it again. I guess I wanted to highlight that verification is what would sell me on opencode again.
The background task / subagent feature and the ability to specify a model when starting a subagent are so far my favorite improvements. Small things but make huge QoL difference in everyday development.
Found out on 1.x it goes crazy with file watches. If you launch in a top level directory with lots of sub directories, iirc it can create millions of watches X2
Not sure if it's fixed in 2.x. There's some way to get it to not do that with ignore files or rules but not sure exactly how--I had Claude fix it...
Judging by comments opencode seems popular. Why is it not in the top ranking coding agents on openrouter? HN's darling Pi is there, along with few others which I never heard about, but not opencode.
Maybe because of their rich provider ecosystem allowing you to use a whole bunch of subscriptions in it. I use OpenCode Go and OpenAI for almost everything, almost never touching OpenRouter.
I use OpenChamber as my IDE. It uses OpenCode behind the scenes. I've not really noticed a difference in OpenCode v1 vs v2 but I guess it's because OpenChamber does a great job dealing with those details.
OpenCode is a beast. Does it still try to take a disk snapshot of my working directory, even when it contains hundreds of millions of files? Does it still eat all of my memory? Does it still have a super-gigantic system prompt that wastes a solid percentage of my context window before I've even begun?
I switched to pi some months ago, and I have no complaints. It just does what it says, with no shenanigans. They updated the rendering approach recently so scrollback is nice and smooth now.
I was opencode user, but like few months ago tried pi and never looked back. Pi with open models is absolutely mind-blowing - my agents run with speeds not achievable with any remote frontier model - they certainly not as smart, but it doesn't matter because they do their "work done" perfectly and fast.
All problems I had with opencode are not presented in pi - it looks it's the best approach to guarantee most productive coding environment - speed, simplicity, transparency, absolute customization. I will certainly try this 2.0, maybe they have now improvements.
I switched to Pi after experiencing OpenCode V2 about a week ago. Dislike the UX direction a lot. I took some effort to sift through the Pi plugin ecosystem to get my setup in a good place.
I will say OpenCode has likely improved significantly from your experience. I never experienced any of that since ~May of this year when I picked up OpenCode the first time.
OpenCode is a vibecoded vibecoding tool. From that kind of software you really shouldn't expect things like renaming of a project to work all the time.
I mean this neutrally: quality is not something that these projects strive for. Other values are a priority: features, speed of development, etc.
I had to update because the previous OpenCode 2.0.3 I had installed stopped working suddenly. I love the idea behind OpenCode but compared to managing Claude and Codex, it's such a pain and requires continuous debugging or managing.
Is there azure login capability, for az login?
We are 100+ devs and claude code has this built in by default where we can host our own models in Azure Foundry. Devs don't need any keys since they can just use az login and it just works.
Can someone tell me what am I missing if I just use the Claude extension via vscode instead of opencode? I use codex as well but only as mcp for reviews
Good lord, me either. I thought it was a gag reading through these comments, but there was no way all of these people commenting were that locked into a joke.
The site took a minute to load in completely and when I scrolled to the bottom I couldn't read the SDK text, it was literally cut off, kinda resembling the current state of coding very accurately lmao
tried opencode for the first time to use the $200 in api credits that come with claude max but can't be used in claude code. it's great. the free nemotron 3 model is even decent, i love seeing agentic coding accessible to students and hobbiests and folks that can't drop $200/mo.
i used the bonus anthropic credits to get ornith 1.5 35b q8 running on a jetson. it's no opus 5, but it's usable for real coding and sys admin work, and works great in opencode. at least as good as sonnet 4. 5 token/sec is a little painful though.
If workspaces had a way of managing separate Go subscriptions for team members, a large chunk of my org would jump in. DS and GLM are solid for a lot of tasks.
It's not. A permanently running buggy() server on your computer instead of a screen or tmux session is not something that should be a default solution.
I mean it neutrally. Software quality is not a value in code harnesses. Something else is a value: speed of development, features, etc. But quality is ignored.
they deprecated the old layout which I very much preferred in open code desktop. I'm never in a rush so I'll wait for the early adopters to vouch for this release.
Is still forbidden to use Claude Code accounts with other harnesses? I will try with DeepSeek later, but it would be better if I could use Claude subsidized as well
It looks like they finally fixed the issue where the system prompt at the start of the transcript was regenerated from scratch every request, leading to significantly higher input costs. Unfortunately it's still rewritten whenever you revert to an earlier point in the conversation, but at least it's not on every single request.
You may like pi-web-ui, it has a ton of useful functionality. Was a bit rough around the edges before but it's improved quickly. (https://pi.dev/packages/pi-web-ui)
I was a Vim user that switched to VS Code (for reasons) and now the TUIs are where my Vim personalization efforts have been redirected. Pi is a good harness for vim users to consider if they want to try a TUI experience. The Pi plugin ecosystem is a slopfest though. There are vim bindings for Pi and OC (and VS Code) because I'm never going to give those up.
Same OpenCode team who ignore bug reports, don't respond on their discord, don't have modern CI/CD test suites (often shipping regressions), don't have bots to triage bug reports or PRs, and have what might be the worst open model subscription service available today.
OpenCode users: switching to Pi takes about 5 minutes, and customizing it to work just like OpenCode takes another 30 minutes. Better design, better devs, better community.
OpenCode Go is the best deal in the market right now imo. Their quotas are so generous I often assume they are burning money, but I think they are largely thriving off of the subscription revenues and making it work, or their vendors are subsidizing things.
No prices on the pricing page, "credit" based systems is a non-starter for me, don't be different or "innovate" on pricing, unless it's an unlimited plan, but that is more progress and which I expect as commodification happens.
I am a user. They have the latest Qwen, DeepSeek, Moonshot, Z.AI, MiniMax, gpt-oss-120b, gemma-4-26b. They have them at the cheapest prices, very fast speeds consistently, caching works, and they're not dumbed down quants. The credit system is a substitute for dollars, like airline miles. $20 subscription is 250 credits per day covering all models. 1 credit is $0.05. Therefore you get $12.50 per day or $375 per month. You can buy more on-demand credits at $5 per 100. No complicated rate limits or per model price tiers like everyone else. I have not found a better provider yet and I've tried most of them.
I'm not interested in credit abstractions and no amount of convincing will change that, same reason I have no interest in Circle CI
If you like their service and the company, tell them they are losing potential customers with their inaccurate, minimal docs and unappealing pricing abstractions
None of these are considered important. Opencode is a vibecoded vibecoding tool, so 1) software quality is fundamentally unachievable and if they will pay attention to bugreports, they will simple drawn in them; 2) it's now a trend to delete tests in the name of AI ideology.
While I just switched from OpenCode to Pi, I'm still unclear on which is better in terms of handling github issues/pull-requests. I do give OC credit here, especially after the last week.
Here's the Pi issue for a security feature request, derived from an opencode v2 security regression I was able to work through with the OC team. This issue links to the OpenCode ones too.
What in the hell is wrong with this page? Whole blocks of content disappear and reappear on my phone as I scroll. Eventually the page just starts force reloading. It’s a blog post! What could possibly require … whatever this is?
> What in the hell is wrong with this page? Whole blocks of content disappear and reappear on my phone as I scroll. Eventually the page just starts force reloading. It’s a blog post! What could possibly require … whatever this is?
There's this amazing three letter harness that had all those features and more for many, many months already, but many aren't ready for that conversation
I tried opencode 2 with my locally hosted llama, and I noticed that llama is always producing stuff even when I close opencode. I suspect it's the backend still doing stuff with the frontend isn't displaying, but I have no way of investigating. So I'm sticking with 1.9 for now.
I don't understand why compiled languages would make plugins harder. They just need explicitly defined entry points in libraries like DLLs. This has been existing for literal decades in other systems, for example Adobe plugins or Steinberg VSTs. It's not an unsolved problem.
They are harder by comparison. With OpenCode / Pi, you can start by just putting code in a file in a specific folder and away you go. Compiled languages require more steps for the user, and also more complexity for the developer.
If you hang out on HN, you see this kind of statement a lot, it's happens so often (more than any other language right now, used to be TypeScript), it's the outside perception of the ecosystem. If they chill out on the superiority claims, that perception can change like it did for TypeScript.
Somehow I manage to get issues noticed and PRs merged. They aggressively cull old issues but if they take notice things get done. I contributed just this week.
I've been getting good results from OpenCode. Has anyone been able to get it to work with local models though? It doesn't seem to want to play nice with Ollama.
I have an open code server running as a service on a linux desktop with the port opened up so I can use the web UI from my windows laptop. The same linux desktop is running Ollama and I'm currently using qwen3.6:35b with it.
The setup was mostly for the learning experience and I haven't done any serious work with it, but it's been great for writing bash scripts.
I used OpenCode to help me install ollama, Qwen local LLM, and connect OpenCode to it.
The computer is very slow (old Dell Optiplex running Mint Debian Linux), but it worked! So cool to turn off the network, and still be able to chit-chat with Qwen model ("Tell me a joke about...").
cool, I'll have to mess around with it some more. I don't expect to be able to do any real work with my 16GB MacBook Pro, but eventually, I would like an all local setup.
OC is all right -- it's my daily driver -- but it could be better. I'd like a harness to let me customize the GUI, not just add MCPs and plugins. For example, I'd like add buttons to merge a PR, and show indicators for CI. Claude Code does a lot of this out of the box. Give me UI building blocks (buttons, labels, etc.) and wire them with my own functions. Could Code Mode enable this?
The built-in browser is a most welcome feature.
PS(A): Opencode Go is a great deal and now has a $40 plan.
Thanks for the great recommendation. In the meantime, if anyone wants to contribute to GUI plugin support for OpenCode, here is a PR under review: https://github.com/anomalyco/opencode/pull/55246
I am on mobile didn't realize the author names were different. Sorry.
I agree that opencode go is great. I didn't say it wasn't. That the $40 plan is not 4 times the value of their $10 plan is just fact and that was my claim.
no worries, and yeah, that $40 not being a straight up 4x is super annoying, they did just bump up deepseek ("cheapseek") to $80 credit on the $10 plan iirc
These guys stole money from me. It amounts to like 10 US or something, so not significant, but still...
Their models have pricing published in their docs, like any other LLM provider. I measured the tokens I consumed, did the math, and it was always off, in their favor. One model (GPT Luna) was about 2x as expensive as advertised.
I joined their Discord, which is apparently how you get support from them. I filed a bug and someone from their team replied, we verified the data, and he said that something was indeed off and that he'd escalate it. Then silence. After 2–3 weeks, I followed up and was now ignored.
As I said, the amount isn't material to me, but if they do this a million times, they could make some decent money out of it. No idea if it's on purpose, I'll leave that to the reader to speculate.
Overall, their complete lack of interest after acknowledging the "bug" left a really bad taste in my mouth, so I decided to leave.
Ahh. I recall their opencode go plan offered $60-$80 worth of Deepseek for $5-10 or something? I was debating if I should try it out but I think this is convincing me not to...Thanks for the heads up
Bros - that opening disk transfer interaction is peak awesomeness. I copied about 4 files and did not want to stop...Id sit there all day and do all of them just to see what happens in the end...perhaps later this weekend.
I'd like to mention two other impressive things about OpenCode.
First, their issue tracker on GitHub works really well. They have the OpenCode GitHub App connected, and for any bug report it reads the issue, tests on the mentioned version and latest dev branch, and comments the findings along with a reproduction script. For TUI Bugs it even records a video. And all that in less than two minutes, usually.
https://github.com/anomalyco/opencode/issues?q=is%3Aissue+st...
Another thing they are working on is opentunnel, where you can tunnel services to https on <random>.opentunnel.xyz and its subdomains. What's notable is that the subdomain is persistent and unique to you, and a wildcard ssl cert is actually generated on your machine, so the platform cannot see the traffic. Their primary use case seems to be making the OpenCode Server usable from anywhere, but it can do much more with their cli:
https://opentunnel.xyz/
I see people talking about this being new in v2 everywhere but it's not the case. What's new is that it's the default (and also not really since `opencode service` and `opencode serve` start two different things). But in v1 it was very possible to run one opencode instance and have multiple clients connect to it (like Openchamber and neovim).
Many of the annoyances from V1 are gone. Skills and plugins reload automatically (finally). Tasks can be backgrounded (though I think this doesn't happen automatically yet). There's a built-in skill for editing the configuration (finally I can retire mine). The front-end got some love. Apparently they re-architected the loop around Effect. Sub-sessions can be communicated with better. Configuration is loaded from the folder the session is created in rather than where the server was started.
In general, this update largely takes OpenCode into the current age features-wise and is a good overhaul quality-wise. Just in time to stop my early switching away efforts, which would've been a pain because I know few other harnesses with such a strong server/client model.
I think the benefits of this one vastly outweigh the risks since it enables the self-modification Pi (!) became famous for.
There does not seem to be a flag for this, not finding any configuration options yet either, and there is the shared server aspect now too.
you cannot have both and be serious about security
to be clear, I'm talking about hot reload, agent can manipulate its own environment in real time, that's asking for trouble, put some controls on that or reap the consequences from loss of control
Pi’s whole UI is customizable, so a lot of people were having their agents build their own interfaces.
The distinction is probably irrelevant for most people. I secure the whole thing in a container, because I lack the willpower to audit a bajillion lines of LLM code just inside the harness.
What stops your agent from adding a new MCP server on its own? Would you consider that a gap in security posturing?
It does have native tools, but they're also in plugins that aren't hot-reloaded. The LLM would have to write the tool, you close Pi and re-open it before it was available.
> Would you consider that a gap in security posturing?
Honestly, I think trying to secure the harness is a lost cause for the same reasons SELinux never really took off. They solve a real problem in a way so painful people would rather just live dangerously.
I actually wrote a thing to implement my security posture https://github.com/SethCurry/abyss TLDR it pretends to be an ACP agent, but runs the agent inside Docker (with optional bind mounts) and proxies the ACP connection into the container.
I'm also tinkering with WASM-based plugins in the ACP proxy to add some additional security and compliance posturing at the protocol layer (ie agnostic to what the underlying agent is). E.g. I slapped together a plugin that will automatically cancel a prompt mid-turn if an OpenRouter API token shows up in a) the prompt, b) agent output/thinking, c) agent tool calls. ([1], [2], [3]). The grand vision is slapping centralized management on that so security and compliance teams get a "firewall" of sorts to prevent leaking secrets, filter bash commands, censor PII, yada, yada.
1. Screenshot of it blocking something in Zed https://abyss.scurry.io/docs/guides/what-is-abyss/#i-am-not-... (I need to add buffering so it doesn't output any of the key)
2. Implementation of ^ https://github.com/SethCurry/abyss/blob/main/plugins/secrets...
3. Plugin architecture docs https://abyss.scurry.io/docs/guides/04-plugins/02-developing...
1. I can feel the claudisms coming through, a turnoff for me personally
2. You're shaving yourself short on a good pun
I'll still give it a look since I am in the market for a kubernetes based platform for dealing with lots of agents across harnesses. Scion was my goto, but I'm not so keen on that project anymore.
My ideal solution does not require a running server (CRDs should be sufficient) nor a UI, I want to start new agents in my existing automations.
Also, which lines on the website are the claudiest? I tried to edit out the tone, especially too many one-two punches, but to be honest couldn’t be bothered to write every word myself still
If you want humans to spend time reading and evaluating, put the human time into writing and editing.
https://pi.dev/docs/latest/mcp
I'm using a number of @gotgene's plugins, they are really nice
I'm looking at porting my Dagger based env to Pi, mainly because it allows me to fork / time-travel the complete environment. One thing I really like about Pi is that /tree command and friends. It aligns really well with how container layer based env can be realized with the Dagger SDK.
Why not? I think DSH does this pretty well with an agent preset that exposes the tools required for the agent to modify the harness.
It's kind of like how the kernel can expose interfaces to allow userspace to load kernel modules at runtime: you "just" have to control which processes can use them.
Between that, and a couple of extra injected bwrap args to make my SSH keys and LLM API credentials unreadable from the agent's shell by default, I'm pretty comfortable using the harness outside of a VM for most things.
If an agent can change the harness it is running in, in real-time, all bets are off
There is semantic ambiguity here. An agent being able to write plugin code for the harness it runs in is related, but orthogonal, to the real-time or not availability of that plugin to the current session.
When I have my agents assist with plugins, I pay closer attention and either do the testing myself or have them run the altered harness in another instance.
Part of this is because they have borked themselves and it can be super annoying to undo their f-ups. Little qwen did this once, breaking its own connection to vllm.
It was the big selling point of the harness a couple months ago.
1. agent != harness, Pi is a harness, agents running under Pi can do things, Pi is not the actor or agent
2. self modification vs Pi supports customization / extension / plugin
3. hot-reload (real time modification) vs restart/reload (agent can be blocked)
but "self modification" sounds cooler, I guess
- several poor security mistakes or choices that broke my trust
- trying to be closer to an IDE, all these harnesses want to be the interface to rule them all, that's not what I want in my harness
- doing things that another tool, which is harness independent, should own (multiple async/parallel agents)
- too much change dropped at once, so many breaking changes, several I cannot migrate at work without impacting the devs I support
2. opencode 2.0 does not exists. I mean it: there is no release[1] and per their own instructions, `npm i -g @opencode/cli@latest` does not install opencode 2.0.
3. `Error: @opencode/cli's postinstall script was not run.` Not even running postinstall.js can fix that, neither on linux nor macos. And even if it works, in a couple of days or on the next upgrade it will fail again.
[1] https://github.com/anomalyco/opencode/releases
Fun fact: The npm release does not contain the code, it is downloaded by the postinsta script. Galaxy brain.
https://github.com/cordiverse/cordis
Cordis also looks interesting as an alternative, but appears more bound to DSH rather than a more general thing (which I prefer).
This is all a stopgap until I have some time to go back to my personal/custom harness.
In general, the preventable “model gets stuck” class of annoyances has not been fixed quite yet - there are also stil no timeouts for permission requests, at least by default.
I thought it was just me. The damn thing get sucked when standing up my applications like half the time
Many of the workarounds I had to develop for the v1 now come as native features in v2 (i.e. session rebinding to other folders), now the only thing that was missing is the ability of plugins to read the response you’re writing (useful if you want to have the double-Esc feature like in claude code).
I'd like to switch to opencode, But "yolo mode" feels risky and manually approving every command the model runs kills the flow
The docs all say there is a time and billing cost:
> Auto mode may have a small impact on token consumption, cost, and latency for tool calls. https://claude.com/resources/articles/auto-mode#what-to-expe...
https://code.claude.com/docs/en/permission-modes#cost-and-la... doesn't say anything specific. It mentions that server-side classification can be used but doesn't talk about the billing for it.
But at the end of the day it is a leaky system. It may reduce the frequency of bad actions but doesn't prevent it. So you need the sandbox either way.
This post is dated August 7, 2026: "In the coming month, working with our cloud partners, we plan to make it the default across all of these and no longer charge for classifier overhead." https://claude.com/resources/articles/auto-mode-default-in-c...
> but doesn't prevent it. So you need the sandbox either way.
Yep. Single points of failure are bad.
I'm actually working on multi harness auto mode. It's already done for Pi and I'm currently working on copilot cli port (where it is needed the most by the fa r of autopilot in copilot being so atrocious).
The correct way for auto approve to work is similar to what claude code does (a deterministic algorithm where a separate model reads what the user says and adds rules based on what the user enables).
I couldn't believe such a thing that works well doesn't exist, but it doesn't. You either have to do borderline yolo or you cannot leave a model working overnight and not find it got stuck on some silyness after an hour.
Basically Podman is a more secure version of Docker.
I would keep stuff like secret keys outside the container and sign/push commits manually.
It's an NVidia product, and so far I quite like their sandboxing and policy system. I'm still getting used to the download and upload flow though, it makes it a bit more annoying to read diffs and commit (unless you let it git as a part of the policy)
(Obviously, this feature should not exist at all let alone be default.)
I routinely run dozens or hundreds of daemons. Why wouldn’t I want one to keep my network connections to llms open?
Of course. Obviously, just a week ago and before that none of the harnesses did work in enterprise settings.
Irony aside, I don't think that there are that many tasks that will benefit from a daemon but which aren't solvable with screen or tmux. In other words, I think this feature should not exist, let alone be enabled by default.
Also, I actually am "an enterprise who pays money for these tools" and I strongly believe most of my engineers immediately disabled the background daemon. I know of a few who were unpleasantly surprised by the cli codex update.
I am certain we are going to end up using these tools like we do with CI in the near future. With this, you'll get full observability, RBAC, sandboxing, and reproducible benchmarking.
I assume as an enterprise you will want all of these when you spend a big chunk of your budget on tokens.
The optimistic version is that the new zeitgeist is deeply recursive agents writing _huge_ swaths of code at once. The human side seems very asynchronous. You do a lot of queueing something that the agents churn on for an hour, so being able to detach/reattach would make sense.
The cynical version is everyone is realizing that nobody will pay for a harness, so they’re pivoting to a client-server model to try to PaaS-ify them. If they haven’t announced it already, they’ll have an OpenCode Cloud within the next quarter or two.
We’ll see how that goes. I’m not holding my breath that these will thrive as long as infrastructure teams exist. Agents are too simple from an infra perspective, and we’re seeing frameworks to make them stateless pop up already.
No daemon needed for that. Like, at all.
> they’re pivoting to a client-server model to try to PaaS-ify them
This is absolutely it! The more I think about it.
There is, for the same reasons that people use screen or tmux (which some people do use for this). If I were queueing a prompt I expected to take hours to finish, it would be nice to be able to run it another computer so I don't have to worry about closing my laptop lid or the battery dying.
It's not world-changing, but I have had agents do `grep -r /` commands before and it would have been nice to be able to detach and let it run rather than having to kill it because I have to leave before it'll actually finish (WSL is sooo slow on that). It would be better if the agent did a better grep, but sometimes I'd rather wait 20 minutes than spend 7 minutes setting it all back up again.
Maybe that’ll be my weekend project, I’m sure no one has ever been mad to spend a weekend trying to parse bash.
A list of big new features and changes would have been nicer.
I hope they fixed the long delays to opening OpenCode I have been experiencing, and the huge database of old chats I don't care about anymore.
I wish Claude Code would adopt the same model. The desktop app deploys a separate engine that restarts and clobbers long-running sessions upon reconnect (Remote Control is their recommended solution but requires a Claude.ai account).
I’ve been vibe coding a native macOS Claude Code app that spawns a server that wraps Claude Code on remote hosts, but the UX and features are always lagging behind.
I have been using VSCodium with https://github.com/jeanp413/open-remote-ssh so (most of) the IDE also runs inside the container. I have been trying to get everything inside the container, including the projects I work on, the IDE, the harness, the dependencies, etc. Both for security and for portability so I can have the same setup in both my work and home computers.
One thing I haven't been able to do is limit the blast radius of is git, github ssh keys give blanket access to all repos tied to my profile and ATM I set up the github SSH key inside the container.
I use the protocol claude code terminal use to talk to its server to spawn agents, opencode server protocol which is published for the same purpose, and manage pi command lines by pid
The Opencode desktop app could already connect to a remote web session; does it now talk to the server directly?
a server like herdr has a server
For Claude Code, don't use remote-connections. Your best option is to look at how the closed-source VSCode plugin interfaces with Claude Code. The way it works is that it reads files directly. This API, although unofficial, is likely very stable, because an old VSCode extension still has to interact with new version of Claude Code.
If there's any interest in this sort of thing, maybe I'll open-source it. I would have to cleanup the slop though.
It turns out it's incredibly slow... because of the progress bar rendering. This is insane. The installer took 6 minutes to reach 10%:
curl -fsSL https://opencode.ai/v2/install | bash
Managed to fix it by running this instead:
curl -fsSL https://opencode.ai/v2/install | bash 2>&1 | cat
https://github.com/anomalyco/opencode/issues/22998 https://github.com/anomalyco/opencode/issues/53702
I’ve never even debated it for files under hundreds of megs. It’ll show up soon, if I care I’ll do an ls in a loop to look at file sizes. Just log where the file is.
either that or fail outright; dont waste my time.
All of the common terminals run TTE surprisingly well. That's 60fps, pushing many megabytes per second of text and control sequences.
...
claude code?
The full gui app is decent though.
https://news.ycombinator.com/item?id=50075319
I've switched to Pi because I do not like the direction v2 has taken UX. Nor do I trust the security posturing going forward. There is also the social media stunts of the CEO that push me away.
I'm now trying to advocate Pi adopt system level configuration for similar security reasons. If any HNers would like to add their thoughts, please do so here
https://github.com/earendil-works/pi/issues/10895
Maybe the Go plan is changing that for others?
time curl -fsSL https://opencode.ai/v2/install | bash
real 0m24.975s user 0m9.537s sys 0m14.904s
Edit: indeed https://github.com/anomalyco/opencode/commit/d099d2cb2a0869d... / https://github.com/anomalyco/opencode/pull/55586
There are many of these available, alongside the provider ones.
Are there any benchmarks which help me decide which ones I should try over the standard codex/claude?
They are vendor offerings but you don’t have to take them.
For example, consider something like SWEBench, where a test should pass. Harness or a skill can just tell the agent keep trying until the test pass. So same model can have a lot of behavior changes between the harnesses.
In my experience (i own a multi-agent IDE with 50+ supported harness) folks stick to first party, usually either openai or anthropic, grok, agy; if they are willing to pay for the subscription the value is unbeatable. And they don't risk trying different harnesses.
I do often see benchmarks comparing them and usually Pi comes out on top, but I think the benchmarks are generally testing one moderately sized clear task. Pi is minimal and great in that situation.
For more general usage, where tasks are not clear, you might interrupt at any moment to steer it, etc. benchmarks are harder I guess. I personally love pi because anytime there's something I don't like, I spin up a separate session and fix it.
E.g. I've found the "reply in simple technical English" hack amazing but I have to keep saying it over and over. So I had an agent write an extension in about ten minutes that appends a short hidden message saying all user and dev facing text must be in STE, apply that without talking about STE. Works amazingly well.
Here is an example I encountered recently: The Figma MCP Server documents usage with Claude (Code), Codex, Cursor, Grok and Antigravity [], but notably not OpenCode. More so, their oauth registration seems to use some kind of whitelist, meaning just adding the MCP by url does not work either. To make it work, my agent edited the config entry to use "Codex" as the oauth name, which worked.
That's just one example, but something you see quite frequently.
In other words, big industry supporting bigger industry. I don't think that's surprising or says much about the real landscape.
Pi is the most basic with the ability to add features.
opencode also supports more features and was build as an open alternative to claude.
and "agent" as the instance which is running... this is the more overloaded term because there are "agent" definitions, this is where a combinatorial exists, because the running "agent" is a combination of agent definitions, context, tool choice where you can modify each independently to create a new "agent"
I think Scion (Google's) does a decent job defining these concepts: https://googlecloudplatform.github.io/scion/concepts/
Interactive element are distinct from text.
If webpage page is an interactive canvas , make the canvas the main thing ad text as support.
If you start mixing the two idk..
You need to run it with —standalone to properly sandbox it.
Those tools should be designed to be sandboxed.
1. configuration loading (now fixed) dropped support for system level, then restored it incorrectly, now it is better, but still some issues in user space
2. hot-reloading of plugins, agents can now change them with immediate effect
3. this, which I was unaware of
I wonder how many more there are given this much has been found already
ideally that should look more like enforced preflight by the plugin system
EDIT: as a rewrite, owning the name. but not code.
https://x.com/thdxr/status/1933561254481666466
It was efficient, bug free and fast after that many years of polish and refinement, it became one of the defining pillars of the experience. Imagine doing something and that thing can be reproduced reliably by muscle memory. You can trust that system.
Trading consoles are basically TUIs which can be driven with their specialized keyboards at great speeds and reproducibility, as well.
https://support.freedomscientific.com/support/technicalsuppo...
(my wife works with several visually impaired people at her workplace)
Edit: I'm missing some context others have pointed out.
It's just not interesting, it doesn't seem to matter, they are are separate projects and both doing great. The inside baseball about old history doesn't feel like it goes anywhere, adds anything. It didn't the last 5 times opencode got submitted!
OpenCode was thousands or tens of thousands last time I checked. Not sure if this has been improved.
very possible that a smaller more custom system prompt (+ custom tools) could work better for specific use cases.
In my experience, what works for one model in terms of system prompt doesn't necessarily transfer to another model, so I would be concerned that a large system prompt would end up being a "jack of all trades, master of none" situation where your giant prompt has to try to account for the eccentricities of every single model, and might even include details that add confusion for some models.
And pi has been eye-opening for me in terms of how well newer models perform with basically no system prompt. It makes me wonder how much of the default system prompt is essentially cruft which was added to support older models which needed more guidance, and is still in there.
Last time I tried OpenCode was on a tiny VPS which stopped responding when OpenCode tried to eat over 2GB of RAM in launch.
Once I got past the initial hurdle of having to upgrade my server and clients all at once, everything has been smooth sailing.
I'm always confused when people at work show me their opencode or Claude code setup of 6 terminal windows open simultaneously with the same illegible walls of text. No idea how people still prefer that over a nice GUI.
Of course there are great reasons for using pointers also. I'd say this is mostly a preference, I'm sure you are extremely effective using your own methods. I have maybe two dozen terminals open atm, and I can tell you what each of them is for - but put a phone bill or a bank statement in front of me and it might as well be Greek.
But I use OpenCode / OpenChamber for personal stuff where I might only get 20 minutes at my computer before I have to go do something else. So the web interface and especially the mobile app get more use from me there. It's kind of wild to be working on a project while walking my dog or washing dishes or something along those lines.
I also used the desktop OpenChamber app once recently because it has a built-in web browser that the agent can fully control (unlike, for example, Gemini in Chrome).
Also editing your own prompts with a normal text input is far better IMO (instead of whatever magical box Anthropic or OpenCode has shoehorned into the terminal).
I just tried the excellent local https://www.liquid.ai/blog/lfm2-5-24b-a2b model, but the model is trained to talk in bash, while OpenCode stubbornly expects JavaScript, and there seems to be no way to make them work together. The model itself performs excellently in pi.
However, I've been using OMP in combination with Tern (the terminal) lately and it's an incredibly smooth operation. It's hard to find a decent terminal on Windows (corporate device) but this is the best I've found so far.
anyone knows?
source:virustotal
https://opencode.ai/update/api/latest/desktop/opencode/openc...
application/x-apple-diskimage Last Analysis Date 3 days ago Summary Detection --- SOCRadar Malicious --- ZeroCERT Malicious ---- Gridinsoft Suspicious --- ??
For personal projects, Claude Pro seems to give me a lot of tokens to use with Claude Code, and from experiments using other models with Claude Code (e.g. via Vercel) always seems way more expensive.
[1]: https://opencode.ai/go
The headline figures are $10/month for 'Go' with "Generous limits" and $40/month for 'Go Plus' with "Higher limits".
Then, in the table below, picking (at random of course) Claude Haiku 5.5, I see it listing 3,850 'requests' per 5h for 'Go', 15,380 'requests' per hour for 'Go Plus'. Then there's another column saying that the "Monthly Usage" is $15 for 'Go', and $60 for 'Go Plus'.
What are the limits?
What's a 'request' and how does it relate to a token?
Why are the 'requests' figures per '5h' (the limit resets every 5h?)
Why are there 'Monthly Usage' dollar amounts that are in no way connected to the subscription costs, and what do they mean?
All the explanations below are just repeated rewordings of the same thing: "Go costs $10/month with generous limits and Plus costs $40/month with higher limits", as if that makes everything clear.
- You pay $10/mo for Go and get $10 worth of usage per month
- Now, each model they make available has a multiplier from 1.5-8x
- So, the expensive ones like Kimi K3 have a 1.5x multiplier, cheaper ones like DeepSeek 4.1 Flash have 8x
- This gives you usage of $15 and $80 per month respectively
- You can mix and match
- So, you can use 25% of your quota with K3 and 75% with DS41Flash ... usage of $3.75 and $60 respectively
- You divide the two figures by their respective multiplier ... $3.75 / 1.5 and $60 / 8 ... and you end up with $2.5 + $7.5 = $10 which is what you paid
- You should ignore the requests table and go directly to the price/M tokens table where all the actual rates are given
- They control usage at 5h/1w/1mo intervals
- You can use 25% of your monthly quota in a 5h block, 50% in a week, and 100% in a month.
- If you were only using DS41Flash, that is $20m, $40 and $80 worth of usage respectively which is $2.5, $5 and $10 of your subscription figure after accounting for the multipliers.
It would be so much simpler if they credited 1M microdollars per $1 of subscription and quoted the per M token rates for each model in this currency.
But then Claude/Codex/StepFun and all the other subscription services are far more opaque.
There are two plans, OpenCode Go and Go Plus, for 10$/mo and 40$/mo.
With your plan, you get a specific monthly amount of money you can use, with separate weekly and 5-hour limits to not spend all at once.
The amount of money you can use depends on the model, but the usage percentage adds up regardless. For example, on the Haiku Model, the monthly limit is 15$/mo, as you read from the page. For other models, such as DeepSeek V4.1 Flash, the limit is now 80$/mo (the increased it from 60$ recently).
This might seem odd, but the stated purpose of OpenCode Go is "Low cost coding models for everyone", so the limits on the open models tend to be higher.
The math works like this: You use 5$ no Haiku and 20$ on a 60$ model, then your monthly limit is used 66.6%, meaning 5$ of Haiku or 20$ of a 60$ model remaining.
Another way to view this is as follows: You have 10$ flat usage per month, and the "higher usage on each model" is actually just a discount on the token price. So Haiku is discounted to 10$/15$=66.6%, DeepSeek to 12.5% and so on.
Go Plus just means you get more usage, though the rate is not always 4x.
To answer your remaining questions: The billing is based on the actual provider's api costs, so input/cached/output tokens. I suppose the "requests" number is estimated. The OpenCode TUI and your account website actually show the real session prices, which also helps with an understanding how expensive the agents are on raw (unsubsidized) api pricing. The usage limits are rolling, so there is a 5-hour, a weekly and a monthly limit. The 5h is 20% of the monthly limit, and the weekly is 50% (not sure on the exact numbers).
I would agree that the pricing is confusing, but for the price you get surprisingly much usage, especially on the 60$ models. Give DeepSeek V4.1 a try, you get nearly unlimited usage and it's around Sonnet/Opus level.
But it still feels like sleight-of-hand. They’re the ones setting these prices, no? Aren’t there rules about saying things like ‘this product $10 - but it’s worth $60’!
I agree that the Claude price is also opaque - though it becomes kind of ‘intuitive’ after you start using it. I guess these would too.
For some models your 10 Usd sub will get you 60 Usd worth of tokens per month.
But you can use any sub from other providers if you want. You can just log in with openai account and use chatgpt models.
I think it means you can't use more than 25% of your monthly limit in the 5 hour period.
If you use something like "DeepSeek V4.1 Flash" you get 80 USD worth of API price out of the 10 USD subscription. Assuming you spread it out over a few sessions, as you have the 5h and weekly limits. I think it's similar with Claude or Codex subscription.
I've only used OpenCode a bit, but I found it was sufficient for the workloads I was throwing at it. It wasn't quite enough to beat out Codex or Claude Code as my go-to choice, though. Perhaps I'll give this version a shot and see if they've gotten it over the hump.
+1 for knowing when to use a slash, not a hyphen.
But that’s a shallow moat, and the rest of the features here are not particularly interesting to me. I don’t have a use for plugins or a model-server proxy (I can connect other tools directly to the model provider).
It's long been surpassed by better UIs like OpenChamber. Looks like I'll be trying Paseo out next.
TLDR of the benefits over OpenChamber?
Paseo is a layer on top of various harnesses (aka you get to use a Claude subscription), and keeps its own database of sessions, etc.
I use Openchamber (and another client in neovim), but Paseo does have one convenient advantage where you can connect to other paseo servers
It's an incredibly useful GUI that lets you use the provider's harness, but adds extra productivity features. You can use OpenCode, Pi, Claude, Codex, whatever you want. The TUI runs in a window, but you can also pull up terminals, open tabs, keep projects, workspaces, show file diffs, give feedback on lines of code, review PRs, and way, way more. The number of features is impressive.
The devs are very quickly adding features, yet the app remains stable. And they fix bugs super fast! They fixed like three bugs and implemented two feature requests of mine within a week of asking. Best of all the whole thing is FOSS and they're not trying to make money off you. Absolutely awesome maintainers.
You should't really run a coding harness on your host computer anyway, because it is impossible to protect yourself from prompt injections and from an incredible amount of security vulnerabilities in the vibecoded plugins.
Security is fundamentally unachievable in popular coding harnesses.
The only right way to use it is in an isolated environment.
By this logic, a harness doesn't even have to be related to programming to be insecure. Any harness that enables unauthorized activity from the model would be insecure. For example, this would include any system that allows a model to make an unauthorized management decision.
Are there any recommended sandbox patterns to use? Custom linux users or bubblewrap and managing openbao is getting to be a lot to manage each harness by themselves!
https://github.com/microsoft/mxc
That's why I first switched to Pi and then to DeepSeek harness.
- Someone in this thread said the curl installer was slow because the install script needed cute progress bar rendering. To be clear, I don't care about the installer user experience, but I want to spend a moment on this point, because having used OpenCode for over a year, I think this perfectly sums up the entire experience. A commit born from "Claude, please make the installer look sick as fuck with loading bars and stuff" will always be preferred by the developers over a commit that reverts such a change for a 10 MB drop in memory use.
- Tried to read the unreadable announcement website after waiting for the little ThreeJS demo to load. I gave up.
- Logs from various old sessions leaked up to 16GB on some temp folder on my drive. The harness prompts are still token heavy. I know neither of these are real issues, and chat logs are a useful feature for many, but I felt validated to see someone else in the comments also complaining about the silent storage of chat sessions leaking into my drive in a random folder being the default behaviour.
IMO, this release goes far beyond OpenCode. I had always imagined that the advent of LLMs developing human-level coding abilities, combined with the high hardware prices as a result of it, would act as a forcing function to inspire a new generation of ultra-performant, bloat-free open software.
But this release is proving me wrong in every way.
We are entering a new era, what George Hotz coined "maximalist software": A new dawn of computing, where one one hand, we can simply prompt a superintelligent LLM to "please prove the Riemann hypothesis", and it will actually work. On the other hand, the chat log for the proof disappeared, because because the 2 GB Bun server (yes, the one meant to interact with a plaintext LLM API) just crashed.
Not my experience. YMMV
> I had always imagined that the advent of LLMs developing human-level coding abilities, combined with the high hardware prices as a result of it, would act as a forcing function to inspire a new generation of ultra-performant, bloat-free open software.
I mean, faster and better hardware has never resulted in more efficient software, I really didn’t expect it to be any different here.
https://news.ycombinator.com/item?id=50041870
> If a story has not had significant attention in the last year or so, a small number of reposts is ok. Otherwise we bury reposts as duplicates.
In my experience, if a story gets 4-5 points and < 5 comments, it hasn't gotten "significant attention" and a repost gets a second chance. That's not data, just anecdote.
No matter how many times I run the postinstall script, it still comes up in a few hours or days. On various Linuxes and on macOS.
you install the software and it just works, no login no nothing.
Not sure if it's fixed in 2.x. There's some way to get it to not do that with ignore files or rules but not sure exactly how--I had Claude fix it...
I switched to pi some months ago, and I have no complaints. It just does what it says, with no shenanigans. They updated the rendering approach recently so scrollback is nice and smooth now.
All problems I had with opencode are not presented in pi - it looks it's the best approach to guarantee most productive coding environment - speed, simplicity, transparency, absolute customization. I will certainly try this 2.0, maybe they have now improvements.
I will say OpenCode has likely improved significantly from your experience. I never experienced any of that since ~May of this year when I picked up OpenCode the first time.
I mean this neutrally: quality is not something that these projects strive for. Other values are a priority: features, speed of development, etc.
i used the bonus anthropic credits to get ornith 1.5 35b q8 running on a jetson. it's no opus 5, but it's usable for real coding and sys admin work, and works great in opencode. at least as good as sonnet 4. 5 token/sec is a little painful though.
unfortunately making a great harness is tricky and i often just steal with things i like from ocv2 and pi.
been using ocv2 as my daily driver for a while and had very little complaints. its a great product from a great team.
It's not. A permanently running buggy() server on your computer instead of a screen or tmux session is not something that should be a default solution.
I mean it neutrally. Software quality is not a value in code harnesses. Something else is a value: speed of development, features, etc. But quality is ignored.
OpenCode users: switching to Pi takes about 5 minutes, and customizing it to work just like OpenCode takes another 30 minutes. Better design, better devs, better community.
I thought $80 of deepseek usage for $10 was a pretty good deal, but I’d be delighted to hear of better ones.
https://hyper.charm.land/docs/models.html
No prices on the pricing page, "credit" based systems is a non-starter for me, don't be different or "innovate" on pricing, unless it's an unlimited plan, but that is more progress and which I expect as commodification happens.
https://hyper.charm.land/docs/plans-billing.html
If you like their service and the company, tell them they are losing potential customers with their inaccurate, minimal docs and unappealing pricing abstractions
> CI/CD test suites
None of these are considered important. Opencode is a vibecoded vibecoding tool, so 1) software quality is fundamentally unachievable and if they will pay attention to bugreports, they will simple drawn in them; 2) it's now a trend to delete tests in the name of AI ideology.
Sorry, too busy vibe coding ship games.
https://x.com/thdxr/status/2110567456947507698
Here's the Pi issue for a security feature request, derived from an opencode v2 security regression I was able to work through with the OC team. This issue links to the OpenCode ones too.
https://github.com/earendil-works/pi/issues/10895
The Pi dev does not seem to grasp the issue after several back and forths.
I do really like their CONTRIBUTING.md
https://github.com/earendil-works/pi/blob/main/CONTRIBUTING....
You're looking at software written by SOTA AI.
Huh?
A vibe coded minimal JavaScript interpreter? This sounds dangerous af.
With several thousand of open issues on GitHub already.
Are we just ignoring security when it comes to harnesses?
I tried opencode 2 with my locally hosted llama, and I noticed that llama is always producing stuff even when I close opencode. I suspect it's the backend still doing stuff with the frontend isn't displaying, but I have no way of investigating. So I'm sticking with 1.9 for now.
> TypeScript
Considering the whole thing is LLM produced I would like an explicit answer as to why C++ or Rust weren't used to write the project in.
https://jcode.sh/
https://github.com/1jehuang/jcode
Also, the Rust ecosystem is annoying with demands for explicit answers to why their preferred language was not used.
One person != "the ecosystem"
Several basic things don't work, like hiding the sidebar.
With 3.2k open GitHub issues there's no point reporting anything.
I had one this week that, while took some effort to explain the why, was handled better than I expected. (https://github.com/anomalyco/opencode/pull/54921)
Being the most popular open harness, they get inundated with slop and are doing their best (imo).
The setup was mostly for the learning experience and I haven't done any serious work with it, but it's been great for writing bash scripts.
The computer is very slow (old Dell Optiplex running Mint Debian Linux), but it worked! So cool to turn off the network, and still be able to chit-chat with Qwen model ("Tell me a joke about...").
The built-in browser is a most welcome feature.
PS(A): Opencode Go is a great deal and now has a $40 plan.
Scion was the tool I'd been using for this, but haven't been doing that kind of stuff for some time.
https://googlecloudplatform.github.io/scion/overview/
By the way opencode go $40 plan for 2x-3x usage vs their $10 plan is not such a good deal.
I'm very happy with my OpenCode go plans, it's the best deal I have found, everyone that claims they are better is not upon my inspection
Firepass v2 (unlimited kimi-2.7 for $50/m) sounded good too, but I missed that by the time I found Fireworks, v3 is still soon (tm)
I agree that opencode go is great. I didn't say it wasn't. That the $40 plan is not 4 times the value of their $10 plan is just fact and that was my claim.
long-term I look forward to unlimited plans
Their models have pricing published in their docs, like any other LLM provider. I measured the tokens I consumed, did the math, and it was always off, in their favor. One model (GPT Luna) was about 2x as expensive as advertised.
I joined their Discord, which is apparently how you get support from them. I filed a bug and someone from their team replied, we verified the data, and he said that something was indeed off and that he'd escalate it. Then silence. After 2–3 weeks, I followed up and was now ignored.
As I said, the amount isn't material to me, but if they do this a million times, they could make some decent money out of it. No idea if it's on purpose, I'll leave that to the reader to speculate.
Overall, their complete lack of interest after acknowledging the "bug" left a really bad taste in my mouth, so I decided to leave.
I'd prefer not to share my Discord username here.