OpenCode 2.0 é ABSURDO! O rival open source do Claude Code ficou outro nível
Read the Portuguese translation →
Author: Matheus Battisti - Hora de Codar · Watch on YouTube
Video authored by the channel shown, not by IANIA; all rights belong to the creator. Transcript and summary generated automatically; the original-language content is preserved.
Original language: English
Original video: OpenCode 2.0 é ABSURDO! O rival open source do Claude Code ficou outro nível · Channel: Matheus Battisti - Hora de Codar · 17:47 · Watch on YouTube
Topics: AI agents, Claude Code, Software engineering with AI, AI developer tools, Open source and software ecosystems
Summary
Section titled “Summary”The video explores OpenCode 2.0 through hands-on demonstrations of its main new capabilities. The presenter highlights synchronized sessions across terminal, desktop, and mobile, background subagents, worktrees for comparing parallel versions, and plugins that can block destructive terminal commands. The demonstrations also show limitations, including a database reset performed through an application feature that bypassed the plugin. The video closes by pointing viewers to the changelog and promoting the presenter’s free e-book and VPS partner.
Key points
Section titled “Key points”- OpenCode 2.0 synchronizes sessions across its terminal, desktop application, and mobile access, so activity in one interface appears in the others.
- A session can be exposed for remote access using a QR code, allowing interaction from a phone.
- Background subagents can be assigned specific roles and models, then return findings without interrupting the main session.
- Worktrees let the agent develop multiple project variations in parallel, such as light and dark designs, for comparison.
- After choosing a worktree version, the presenter asks OpenCode to stop both servers and bring the selected version into the main project.
- Plugins can be created to intercept and block specified terminal commands, with an explanation of why a command was denied.
- The demonstrated plugin blocked a database deletion executed through a terminal command but did not stop a reset performed through an application feature.
- The presenter notes that OpenCode’s website identifies the release as version 2 even though the GitHub repository still appears to show version 1, and recommends checking the changelog.
Chapters
Section titled “Chapters”| Start | Chapter | Summary |
|---|---|---|
| 00:00 | What’s new in OpenCode 2.0 | The presenter introduces synchronized sessions, background subagents, plugins, and Code Mode as key additions. |
| 03:10 | Synchronized sessions and remote access | A project session is shown in both the terminal and desktop app, with mobile access demonstrated via a QR code. |
| 04:47 | Creating and using a background subagent | The presenter creates a code-review subagent, runs it in the background, and shows how its findings return to the main session. |
| 08:03 | Comparing project versions with worktrees | Two parallel worktrees are used to generate and compare light and dark designs before selecting one for the main project. |
| 12:25 | Creating and testing a protective plugin | A plugin is made to block destructive terminal commands, and the test shows it blocking a database deletion command while an app-level reset bypasses it. |
| 15:40 | Version details and closing | The presenter clarifies the version discrepancy between the website and repository, points to the changelog, and wraps up with channel promotions. |
Quotes
Section titled “Quotes”if you send a message in one, you already receive it in the other — 01:04
it will act in parallel — 05:17
it doesn’t interrupt it — 08:03
We have the minimalist one and the dark one here — 11:19
the Guardar plugin intercepted the commands and blocked it — 15:09
Concepts and entities
Section titled “Concepts and entities”OpenCode, Claude Code, Codex, OpenRouter, DeepSeek, GLM-5.3-Flash, worktrees, plugins, Hostinger, Matheus Battisti
Full transcript (original language)
Section titled “Full transcript (original language)”00:00 Guys, our beloved Open Code has evolved to version two. There were a lot of changes, a lot of new things. And I’m going to show you here what caught my attention the most in this video, all in practice so we can see the most interesting features that came in OPC V2. So, come on, let’s go. Well guys, I brought a little presentation here so we can talk quickly, then we’ll see them one by one, okay? One of the coolest things here is that we now have the possibility to work in a session in an integrated way. And what does that
00:33 mean? It works in the terminal, it will work in the desktop application. So, if you didn’t know, Open Code also has a desktop app so you can do your projects like a Codex Cloud Code. And you can also connect it via mobile, meaning you just point your camera at the QR Code and you can start programming elsewhere , you don’t need to stay at the PC. This is very interesting. In version one, right, how Open Code worked, we had a different agent for each interface, right? It stayed disconnected in this way that is here
01:04 in the figure. In version two, no, they connected everything, if you send a message in one, you already receive it in the other, everything happens asynchronously, making the process more fluid and also more responsive. We also have an option here for subagents that will run in the background. So, basically how cloud code works there, we can determine tasks for subagents. Since Open Code has this characteristic , right, of connecting with several
01:35 providers, we can delegate what the subagent will do and which model it will use. So it’s very flexible. For example, I’m programming with deepic and I want the MIMO model to check the last thing that happened in the code, right? Do a review. So here we will have an experience very close to what Cloud Code does. It keeps subagents working. When they finish, they return, right, the information that the main agent needs and it integrates it into the conversation, if necessary, or otherwise just gives us feedback.
02:07 Another cool thing is that it also comes with plugins, right, which is something that is growing a lot. We are creating plugins to use there in the service itself, right, which are the Cloud Code mods and also a feature called Code Mode, which will help us integrate the tools we are using in the system. So, for example, if we work in the traditional way here, we have to interact with GitHub to push something, we have to check screens in Figma, we
02:39 have to consult an API, we have to work in the linter; it has to make a request for each one and wait for all of this to happen before we can proceed. With Code Mode, there is a script generated by Open Code itself, and the tools also communicate synchronously, facilitating this process and allowing for execution if you need to work with all four at the same time, which is quite interesting and unique, right? I haven’t seen this in any other code editor, but let’s see it in practice. Let’s test everything. Well, guys,
03:10 first I’m going to show you the issue of simultaneous sessions, right? So, I have Open Code open here in the terminal. I’m going to ask it to start the project, okay? “Start this project and show me how to access it.” I have a session running here in the terminal. So, if I come here, for example, to Open Code, in the interface, I can see exactly the session I was having in the terminal. So, I asked it to start, then I made a cut here, guys. I asked what’s in the project, and it showed it here too. So, that was exactly what
03:44 I did here, right? Oh, where is my prompt? “What’s in this project?” So it reflects it there. So the project itself is here, look. Oh, this “sala livre” project, which I created quickly just for us to test. And then if I ask for something else, for example, to change this button here, from “test for free” to “start for free.” So, “change the button text from ‘test for free’ to ‘start for free.’” It already detects it here too, see, and the sessions are
04:17 connected. So this is one of the improvements that connects, look, we keep receiving messages here regarding the session via mobile. So here is an example I made, right? By using the command “open code per remote,” you will be exposing this current session to the internet, and through this QR code, anyone can access and interact with it. So, in this mode, if I type
04:47 this command, it will open another remote and let me access the session that is on my computer through my cell phone. And this becomes a remote control. We can control Open Interpreter from our cell phone. So, I’ll show you guys how to create this subagent, right? In the documentation, it asks us to describe the subagent’s role and also which model it will use. So, I asked it to create a subagent called “revisor” in the open agents
05:17 revisor MD file. So, it’s a file that will remain persistent there. We will be able to call it whenever we want. It uses the GLM 5.3 Flash model, okay? To get a different opinion from the model I am using, which is DeepSeek 4.1. And I specify that the revisor only does code, so it has limited tools. And then when it creates it, I’ll be able to trigger this revisor, and it will act in parallel, okay? So, I’ll wait for it to finish and I’ll trigger it for you to see. While it creates, guys, don’t forget to download the AI System
05:49 Factory. This is a free e-book, guys, that I’m giving to you here on the channel. In it, you’ll find a strategy for how I design systems before I start developing them, okay? And also the evolution, the step-by-step system creation with AI, up to my strategies for finding clients with the systems I create with AI, right? ChatGPT has taken control of the browser here, it’s doing something there, okay? But man, I’ll leave this link in the description
06:22 for you to download this e-book, okay? Totally free. Here on the page, I explain how it works. It’s a very dense material, illustrated, with various resources for you to use within it, like skills, prompts, all free. Got it? I’ll leave it here for you to just download. So here, guys, it finished the subagent, okay? It gave me the feedback here and it stays here, right? Agents revisor. How are we going to activate it? It can be via prompt. So, I’ll ask here: “Start the revisor subagent in the background to review
06:55 the schedule conflict rule and the room capacity rule,” right? Something from the project itself. While it reviews, I’ll continue here with the next step. So, I am initializing someone, right? Oh, subagent in background. And this now allows me to also continue the session here while the subagent works over there. So, it will do the entire review here. We could continue the project if we wanted to. Here, actually , there was a model error. I’ll just configure the OpenRouter key and then I’ll come back to show you it working.
07:29 Hey guys, so now it’s actually running. I can see it here and ask it, right? So I’m in a separate session from the reviewer, right? And it shows it here for me, right? Yes, it is running. This is the reviewer’s status, right? And now we can call it here too, if we want , right? We can type @reviewer, it’s available here too. So it was just a key error and all that. Now I’ve adjusted the OpenRouter key and it’s actually running. So we’ll wait for the result to see how it integrates. Look, the reviewer finished, so it returns
08:03 the message to my session, but it doesn’t interrupt it. So it’s quite similar, right? Like how Cloud Code works, you’ll have access to this workflow format, right, with subagents in OpenCode too. Look, it said here that in a code token it found something , it had a finding, which is a real bug . Right there in the code I just wrote, so now we would fix it, right? Another really cool thing you can do now with OpenCode is work with worktrees and see the results of both, right? For those who don’t know, worktrees are basically
08:38 a way for me to fork the project, right , and follow one direction, and if I don’t want it anymore at some point, I can go back to where the fork was made, right, or run both versions in parallel , okay? So, look at how cool what we can do here in OpenCode is. So, I want to compare two visual directions, right , so I create two worktrees for this project, one called light visual and another dark visual. Install the dependencies for each one. For the light visual, make the page more minimalist, and for the dark visual, make a version with a very dark background, almost black, and use neon
09:09 blue for the details. I’ll have it here , look, run both in the background, each on a different port, and give me the two addresses so I can open them side by side. So I can here, look, through OpenCode, orchestrate the progress of two worktrees, right, and verify the results of each one. Like an A/B test, to see which one I like better and choose one. So, let me let it answer me here, I’ll show you, and then we select which one we want and continue with that one in the project. Just to make it clearer for you, right?
09:42 Worktrees are like having that original point there, which is the project. And then I branched it off, right? And later, the idea is for me to choose the correct version or the one I want and go back to where the project was, plus this addition. So I’ll need to make a decision here, right? I won’t keep advancing the worktree infinitely, folks. While it creates here, a shout-out to our host, guys. If you want a VPS, if you’re looking for a good server at a fair price, it’s Hostinger, okay? I have all my projects
10:14 hosted on it. There’s no downtime, and there’s no lag when we try to access it without cache, you know, from different IPs. Their server is ultra-fast. They’re always investing in infrastructure, and this month they have a really good promotion, plus you have our coupon here to get even more of a discount. The link will be in the description of this video, okay? And here I always recommend the KVM2, which is a server with great specs that will handle several projects at the same time. You come here and choose the plan . In the purchase section here, guys, it’s very simple. The longer the term,
10:47 the more discount they give. Choose the server closest to you; if Brazil is available, choose it. If not, the United States. I like to choose Ubuntu. To me, it’s a good Linux, it’s a good Linux distro. And here you check if the “teus hora de codar” coupon is applied so you can get that extra 10%discount on top of the current promotion. Just continue and that’s it, you’ll have your server right now and you can put any type of project there. Got it? We’re back here in OpenCode. So let’s see if worktrees will work, right? Just
11:19 like they say it works. Oh, so check this out. It made the two versions here in OpenCode desktop. It’s even easier to follow, right? We have the minimalist one and the dark one here, right? So we can come here, drag both over here, and I have them running. And I can choose which one I want, okay? So this one here is the minimalist one, see, and it’s light, right? This one here is the dark one. Well, now comes the selecting part, right? So, let’s
11:52 say I liked the dark version. I liked the dark version better. Stop both servers and bring this version into the main project. And then it’s up to us to decide whether to remove the worktrees. But it is a good practice. Remove the worktrees. So you see I’m working on one, working on the other, and there’s no problem. They will reflect the same way. Look, it’s already working with the command I gave on the desktop. So it offers a lot of versatility. We can follow along with what we liked best. I’ll wait for it to return here for me,
12:25 see. And that’s it. So on port 3000 is the chosen project. So it stopped both servers and port 3000 is on dark mode, alright guys? Another thing is the matter of plugins, right? So plugins or mods, whatever you prefer to call them, will perform some action, right? Here inside our Open Code. So I’m going to write a plugin here for this project in the Open Code Plugins folder that blocks terminal commands that delete databases or run git before they execute. So, bad commands, right, that we don’t want to run when we tell it to
12:59 , because they are destructive commands . When it blocks it, the message should explain the reason. Activate the plugin in this session without restarting and let me know when it’s active. So, plugins are a new feature that has arrived in general, right? This is already in effect. DeepSeek Harness has plugins, Claude has plugins, and we’ll probably see them arriving in Codex and other coding agents too, right? If I’m not mistaken, Cursor even has them already. And these are extra features that will be interacting, right, in our
13:30 development cycle. We choose what it does and we choose when it works. And then the session has this trigger, right, this trigger so that when it needs to be activated, the plugin goes into action, okay? So it will do the creation here, right? And the good thing is that you can do everything via , uh, commands, right? prompts and it usually creates the code in a specific language. There, for example, in Claude Code it’s TypeScript, right? Here in Open Code I don’t remember exactly what the language is, if there’s a specific
14:03 language, right? Ah, it’s TypeScript too, see? So, as you can see, it’s a standard, right, that Anthropic created there in Claude Code and now it’s spreading to other code editors, right? So let’s wait here. It will create plugins here, look. What are we waiting for? Let’s keep going. And soon we’ll have it. Well, guys, so it returned here, right? It brought the plugin that we created. Hey guys, so I started a new session here so we can test the
14:34 plugin, right? So I’ll ask it to wipe the database and request a fresh start, which in other situations wouldn’t be a problem, since there are likely migrations and such to generate tables and even seed data, right? Here it should have blocked it because of the plugin we created, right? Let’s see here. It managed to do it here, but why ? It has a URL that performs a database reset, okay? So this bypasses what we do, right? Because it’s not through
15:09 conventional database deletion methods, right? I would have to be more explicit here. I’ll try doing it another way, look. Now that’s better, right? It said it was deleting via the terminal, so it used a destruction command, right? And then the Guardar plugin intercepted the commands and blocked it, right? So here we had the deletion blocked, see, the Guardar plugin denied the deletion of
15:40 the database file. How do you want to lock it? So then I could proceed however I wanted, right? But it doesn’t allow it via commands, which is how I created it, right? It tried to use a pre-existing feature there and it passed, but via command, the plugin really does work. Hey guys, as I mentioned at the beginning, Open Code has released this version two, okay? There’s a slight confusion here since the repository is still on version one, right? But as you can see, Open Code is on two, right? Even though the project
16:10 on GitHub is on one. This is a small difference that you’ll probably notice and it might cause some confusion, but it is indeed Open Code 2, okay? And here, guys, if you go to the Open Code page itself, you’ll see it really is on V2 and so on. But there is a page here called Docs—actually, not Docs, it’s Change log—where you can follow all the changes in detail, okay? So, I recommend it for those who use it and want to understand more, right? For
16:41 example, I’m recording on the 14th and there was a change on the 14th, right? I’m constantly updating this version two, which is version one in the repository, but here it’s already named correctly. And to wrap things up, download the system FAQ, guys. It’s a free book, almost 200 pages for you to understand my development process with AI. Link is in the description of this video, okay? This page here to download , just enter your email and I’ll send you the download link, and VPS too, guys. If you want to get a VPS to host
17:14 your projects, I highly recommend Hoster, a partner of the channel. Excellent prices and server configurations. The link will also be in the description here. It already applies our coupon automatically, okay? Now I want to know what you thought of the news, did you like it? Is there anything else I didn’t bring here that caught your attention? Leave it in the comments. Let’s chat about it too. If possible, help me out, leave a like, and subscribe. This really strengthens the channel, brings new people to watch the videos, and helps my work. Well, that’s it for today. I’ll be signing
17:47 off here and I’ll see you in the next video. Thanks,