Transcription
It's basically the first self-updating agent where, like other agents, update markdown files or they can, like, create skills. They cannot really create the UI for them to show to the user what needs to be done. So, like, this is like a new paradigm of self-improving, self-updating agents.
Yeah, this agent is much more dynamic in terms of communication. When you tell the agent to show you something, it will show it to you.
All right, guys. I'm here with Van, the creator of Space Agent and the founder of Agent Zero. And today we have a brand new product to announce, which is Space Agent.
Hello, David.
Let's jump right into it. Uh, explain what it is and, uh, how people can use it.
What I wanted to do here was to let the agent access all of its layers. That's a common problem with other agents. You have an agent running on a VPS somewhere in Python or NodeJS, and then you communicate to it through WhatsApp or Telegram. And there are multiple layers where the agent works, and usually it can only affect one or maybe two of those. Like, it can install something on the back end, it can do something there, but it cannot really change the way it shows you something in WhatsApp because it's limited by the interface of WhatsApp. It can send you a picture, or it can write you a message, but that's about it, right?
So the UI is very limited for the user.
Yeah. And the same goes when you use a web UI. Like, for example, Agent Zero has a very rich web UI, but still, if the agent wanted to do something special in the web UI, it can either generate an image on the back end and send it to the front end, or it needs to modify itself on the back end level and then tell you to reload the page or something. Even agents that are accessible from the browser are still limited to the layer where they actually live.
So I guess let's jump straight into Space Agent.
Yeah. And that's the big difference of Space Agent because Space Agent is running client-side on the front end in the JavaScript runtime. So the agent can actually mutate the page that it's displayed on. And, uh, how do we use it? We use it in what we call spaces, mostly.
So basically, sorry to interrupt, but it's basically the first self-updating agent where, like other agents, update markdown files or they create skills. They cannot really create the UI for them to show to the user what needs to be done. So this is like a new paradigm of self-improving, self-updating agents.
Yeah, this agent is much more dynamic in terms of communication. When you tell the agent to show you something, it will show it to you. Like, uh, we have a few pre-built examples just, uh, to get a picture, like prices, charts, news, and everything, or a daily dashboard. It can even render games in the browser and play them. So whatever you tell it to do, it has this system of spaces and widgets where it can render anything on demand if you tell it to do so.
All right. So I guess, uh, let's start with an empty space, how most people will probably start.
So, uh, this is an empty space. This is what the user is presented when the user first enters a Space Agent. And maybe we should have started with the biggest benefit of, uh, an agent running inside a browser, and that is that you can actually run the agent in a browser.
Yeah, no setup, super easy.
Yeah. If you want to give Space Agent a try, you can see our GitHub. There is a big button, "Try Live Now." That will take you to our website, space-agent.ai, where, just like that, yeah, everything is open source and free, of course, where you can simply...
Of course, you know, people, people don't know nowadays, like big companies are launching like Manos and, you know, Perplexity Computer are completely closed source. So, yeah, Space Agent is not only open source, but you can try it for free.
Yeah, and with just two clicks, you get a guest account that is temporary, and you can try Space Agent for free. You just set your API key for the LLM provider you want to use.
Right, so let's just tell it something.
I can show you two ways the agent communicates. I can simply ask, "What is the weather in Prague?" and it should respond in chat. And then I can tell it, "Show it to me in a widget." So I'm now using the minimized mode of the chat. So I am now seeing just the answers by the agent, but I can expand to the full mode if I want to see the history. And the first time the agent simply responded because I simply asked it, "What is the weather in Prague?" And when I told it, "Show it to me," it generated a widget based on the weather.
And just for context, which model are you running right now?
It's Opus.
Okay. And so all of this is custom JavaScript, right?
Yeah. I can, I can show you right now how the agent actually works because that is quite interesting. This is the raw history of, uh, the communication. This is how the agent can actually see it. So there is a user message, "What's the weather in Prague?" And this is the raw LLM response. There is no formatting, no JSON, no tool calling. This is the text that the agent generates. It first generates the response for me, "Fetching Prague weather, weather now." This is what shows up in the chat bubble or in the conversation history. And then it uses this special token, and everything after that, the JavaScript gets executed automatically in the browser.
This makes it also like extremely token efficient, right?
Uh, yeah, for example, the weather check, including the response, including the first response, was 97 tokens. And then it gets the response in a YAML format like this, which is also token efficient. And it responds to me simply by not using the JavaScript token. This ends the conversation loop. So the agent responds in plain text, just like ChatGPT. No special tool to respond, right? No special formatting, additional fields. If the agent simply needs to respond, it responds, and there is not a single extra token in the response. If it needs to use JavaScript, it uses this. These are two tokens. Underscores are one token. JavaScript is another token, and then followed by the JavaScript. Again, no need for JSON escaping, nothing that would add additional tokens. It's as efficient as it can be. And we can see that to generate the widget, it only took like 280 tokens.
Yeah. I mean, in the age where, like, the cutting-edge models are becoming more and more expensive, we've seen this with obviously Opus, but now even GPT 5.5 Pro is like $180 per million output tokens. I think people are going to start to look into tokconomics a bit more and, you know, which harnesses, which agents allow you to run the best models most efficiently because people don't want to be spending thousands of dollars per month running, uh, inference.
Yeah. Also, the system prompt here is very interesting. I didn't write a single line of it. I created the first outline of the prompt, and then I set up an automated research in Codex to iterate on the prompt and always create like three new versions. One that would be conservative with just a few changes, one that would be medium-sized changes, and one that would be completely wild. And it created a lot of full test fits to test it. I also then tested it manually. I told it it fails in these scenarios. Create new test cases for these scenarios. Include them into the harness. And for a few days, it was iterating like this. And I don't know, this is like, uh, version number 250. And it kept optimizing and optimizing to be token efficient and reliable in our cases. And...
All right. So let's, I guess, show a few more things that Space Agent can do.
We can build a full example. We can build a full use case. But I would like to start with the things I was doing today. Just a...
Sure.
Just a quick showcase. So I started with a notes app. I wanted to see if you create multiple widgets on one space, how they can cooperate together. So I have one here for the list. By the way, uh, the space is very dynamic. You can resize everything, move everything, rearrange. The agent can also do it for you. So these can be, this grid is actually almost infinite. So the agent can create huge dashboards or huge, like, data views for you.
So the implications for people who don't get it is that you can design the UI you want for any type of use case from scratch. Like, you don't have to code an app from scratch and then host the app on a server. Space Agent runs in the browser, and all of this is just a few seconds of JavaScript.
The way I see the future of operating systems is that there would be almost no apps and built-in interfaces because if you can tell the agent, like, uh, "Check my email and show me the email ordered by, I don't know, priority or something," and it can simply draw a window for you with your email list, like, why do you need buttons to sort it, right? Why do you need buttons to move something, remove something, reply to something? If you can tell your agent, and it can rewrite the screen on the fly.
Okay, so, uh, the first example was a notes app, and it really built a fine notes app. You can manage folders, rename them, you can edit, you can edit the notes visually, you can turn into a markdown view if you need. It supports copy-pasting, images, attachments, etc. So, yeah, it's a fully working notes app by my standards. And another benefit of local browser is that the data stays yours, right? Like, uh, you don't have to send it somewhere. Obviously, if you're using the free version, it's hosted, the back end is hosted. So, you know, you can use the open-source repo or the native app. But that's another benefit of having everything in the browser.
Yeah. Yeah. I can quickly explain how it works. Browser on its own cannot manage files on, uh, on the host operating system. That is a security limitation of a browser. So, we have a very thin back-end layer in Node.js that manages, uh, user permissions, user accounts, and the file storage. And if you download the native app, all of this is bundled into the single app. So there is no communication to any of our servers or anything. The back-end layer, as well as the front-end layer, it's all bundled into one application. If you host it yourself, you host it somewhere either on your local machine or on a VPS, and you use the browser to connect to it. So then they can both be running at the same machine, or you can have the back end running somewhere in a VPS. This also gives you, uh, the option to have multiple users because Space Agent, since the beginning, is optimized for many users running on the same server, and it also includes user and group permissions and management and shared functionality among user groups, etc. Uh, yeah, and the third way is our demo site. Then the back end is on our server. I don't recommend anyone using it for anything they want to persist because it's a demo server. Files are going to be deleted sooner or later. So my, my best tip is download the native app, and everything stays local. Everything is on your machine.
Another thing I tried today was a surveillance dashboard. I picked some random public IP cameras from, it seems that they are all in the United States. But, uh, if you have cameras at your home or any property or anything that you want to monitor, you can simply create a dashboard like this just by telling the agent. And...
And by the way, just for context, how long did this take to build, right? Cuz people might assume that this is long or, you know...
Well, this was fast. This was fast. I, I spent quite a few minutes by, by picking the right cameras that actually show something because, uh, the agent picked some cameras randomly that seemed static at first, but like, uh, the thing itself was generated in like, I don't know, a minute or two.
Yeah.
The notes app took a bit longer because I had more instructions and we did more edits. I wanted the renaming to be more seamless, and I wanted, uh, I wanted the "what you see is what you get" editor to be the default, not the markdown. So we did quite a few edits. So this took me like 10 minutes maybe. And, uh, these dashboards, they, they bring me to what Space Agent really excels at, and that is orchestrating other things. Like, because the UI can be so dynamic, this is the perfect harness for monitoring other systems or controlling other systems. Like, if you have 10 other agents running somewhere, and you can connect them all in one dashboard and have another agent above them that can communicate to them for you. Like, this can save you so much time. And here I connected Space Agent to my Agent Zero instance running on my, on my local machine here, just like Space Agent. And I did two things here. I told the agent to create a new chat interface that will use the Agent Zero API to communicate to it. So if I send "hi" here, it will wait for Agent Zero to respond in the Docker container and send the message back to me. And this actually is an embedded browser window. So this is the full Agent Zero web UI. We don't use any API or any shortcut here. This is a full browser, and the agent can still control it as a browser. It's actually really good at, at controlling browsers. So I can say, uh, "Check the settings of Agent Zero if there's an update."
So it's also perhaps the fastest browser use right out there.
Yeah, I was actually surprised how well and how fast this works because, uh, when I develop something, I always start with the minimal version with a very basic, what it needs to run, and then I see where it fails and I start adding things into it to, to compensate. And usually the first prototype of everything is very fast, right? Because there's nothing inside. Everything is very simple, and it works fast. But then you figure out it fails here, and it fails here, and it needs a memory, etc. And you start adding things, and ultimately you are inevitably going to slow it down. But here, to my very surprise, I didn't need to add basically anything. It simply worked that well out of the box. The way this works is that we transcribe the page for the agent into a format that looks like this. So the agent doesn't see the HTML of the page. It doesn't see the full DOM, but everything is transcribed into references like "button" and its number, "text here is an error button 51." So it can see that there is a cancel button with a number 51, and that is styled to red color as error. It can see input fields, it can see sliders, anything interactive. It can see all the texts on the page. And so when it wants to click a button, it simply sends a command like "click button 25," and it gets a new transcription of the page. It gets information about what has changed. We can probably see it here. Yeah, this is how the agent operates, right? 19 tokens just telling me, "Opening self-update now, space browser, click browser number one, button number 47." That's it. And it gets a response like this.
You optimized this, or was it also another auto research?
Well, partly both. Partly both. But, uh, I did this mostly myself. So I found a library on the internet that transcribes HTML into markdown, and I edited it heavily with the help of AI to produce this format where every interactive element gets a reference number, while text text just stays text. And then we kept iterating, and, uh, we had to do a lot of optimizations and solve a lot of edge cases because it might not seem, uh, like a difficult technology, the web, but websites are super hard to crawl. You have so many different elements nested, like, iframes and shadow DOMs, things that are like naturally closed. Some of them, like, like the shadow DOM is built for the sole purpose of, like, prevent scraping. So we even had to inject some hacks into the browser renderer itself so that it automatically opens everything on the website so it's scrapable. So, yeah, it was a lot of work, partly AI, partly me, but in the end, it works like a charm. And, uh, as you can see, we are now at 13.6,000 tokens. So we only added, uh, what, like two more thousand tokens?
Oh, two.
Yeah. Since, since the beginning, four. But previously we did something with the space, and that is because another thing we use, we don't keep, we don't keep things like this in the history because, like, once the state of the page is gone in the past, then we don't need it anymore.
Confusing.
Yeah, it could be confusing, and it, it would eat up a lot of tokens, right? It's, uh, what is it, like, uh, 2,000 tokens, and that's why we use this transient space. That means the context that changes often, we always put it to the very end of the prompt, after the last caching breakpoint. So it doesn't get cached, and it can be replaced on every turn of the conversation. So when the agent is editing widgets, we always load the last state of the source code of the widget, and we put it to the transient. So the agent can always see the source code of the widget it works with, but it doesn't stay in the history consuming tokens with every other turn because this is exactly what compounds, right? It's not a problem if you, like, load 2,000 tokens to show the agent the page. But if you keep it in the history, you have added 2,000 tokens forever. And if the agent clicks like five pages, you have added 10,000 tokens to every turn of the conversation.
Yeah.
And if you start removing, then you break caching. So that's another problem. If you...
Yeah. If you touch something in the history, you invalidate the cache and you start paying more again. So th-this way, we keep the prices of, we keep the token spending as low as possible and maintain the best efficiency and long-lasting context windows.
I think we should do some more, like, live changes to people really need to see, like, how easy it is to update stuff, you know, create the, do custom UI elements, custom front end, but also like change some of the built-in stuff about the page or about the chat. So, I guess let's, let's, uh, either start from scratch or you can start with one of the pre-built ones and modify it. Up to you.
Yeah, let's do it. Maybe, maybe we can do the research one because that, that is also quite interesting. I made this today as well, and I wanted to see if the agent can create a UI that would be connected directly back to the agent so that the UI would be able to communicate to the agent as well as the agent to the UI. And I created this research harness, and I already tested it on Agent Zero and GPT, GPT 5.5. And what Space Agent did here was to create a research input and research output widgets, and it created some special instructions for the space. That's another thing. Every space can have custom instructions for the space. So if it's special in any way, you can instruct the agent in here. And let's do a quick test here, uh, for example, on Claude Mythos. So I can create Mythos and, uh, describe what Claude Mythos is and how is it different. And, uh, I can clear the chat to to start with fresh context. And if I click, if I click "Start Research," the agent actually receives the message from the UI and it starts updating. I'm going to minimize the browser for now, and it starts updating the research template here. On every step, it will update the planning, source gathering, notes, summary, and it creates a markdown file with the research based on the template and instructions. Right now, it is already using the browser. It has navigated to some Anthropic article on BBC. It will probably check one or two more websites.
So for any type of workflow or task, you can create the UI that you want for that rather than just being limited to, you know, WhatsApp or terminal or a web UI that's predefined.
All right. Uh, I'm going to minimize this. Uh, and, yeah, we, we already have some progress here. Okay. We don't need to wait for the full thing. The agent will keep updating the research file, but it already looks good. It's an Anthropic AI model, especially a cybersecurity-focused model. Restricted release, dual-use risk profile. Okay, it seems to know, and it's done. It seems to know what it's doing. Okay, what do we change? How do we modify it?
Maybe add some more formatting or colors into the research output.
Okay, maybe we can convert it to PDF or something as well.
Sure. Yeah, let's do that.
Add "Export to PDF" button. That will convert it to a print out, something like this, and let's see what it does.
So there's a three different stages of the chat, right? Like, this is the middle one, then it's the expanded one, and so on, the side one.
Yes. This is just if you want to hide the chat.
Yeah.
I, I usually use the compact one because there's usually a lot going on on the screen. So I don't want the full history to obstruct. I am mostly interested what the agent has to say now. All right. And, uh, yeah, we have some more formatting. Yeah, we have tables, links, and what does the PDF do? All right, it turns it into a printed out.
Yeah, but the, it seems like that's my native print dialogue. It probably won't show me, but I can probably save it as a PDF here. All right, I would change the formatting. I don't really like the font, but, yeah, it's a PDF with the research.
And I think the main thing is to again highlight is that it added the feature to export as PDF. The space doesn't come with that.
Yeah, I take it for granted. Yeah, you take it for granted because you spent, you know, so much time on this over the last three, four weeks. But like, these are not like pre-built tools. It's completely different than other agents, you know. None of this is pre-built UI components. All of this is from scratch. So your space can be like completely unique.
Yeah, we can actually see it here. This is the code that made it happen. Uh, no, this is the read widget. This one, this is the code the agent used to add the download PDF and to add the formatting to it. Yeah. And, uh, the great thing about it is, uh, the persistence. When I leave and come back, it's still here. When I refresh the page, it's still here. Normally, if the agent was editing the DOM of the HTML page itself, it would be gone when you refresh the page. But the way these widgets work is that the agent doesn't create the widget itself. It creates a function that then creates the widget. And so we store the function that is capable of recreating the widget. And then we can, like, recreate it with this button or by reloading the page at any time, and it is exactly the same as it was.
I think let's, let's do another one from scratch and let's just try to put a bunch of different UI elements so people can really see. So maybe start like by adding a Kanban board.
Okay, let's do a Kanban board. Uh, anything specific, or do we just, uh, do an example?
Make it like in a style of, um, Trello and very colorful.
Okay, Trello, colorful. We will be adding more features. So keep in mind to make it extensible. All right, let's see. This might take a minute. I believe this will be a few hundred lines of code.
But, you know, people can use like faster models than Opus 4.7.
Yeah, definitely. When I started developing this, I used the GPT 5.4 mini. It's not as smart. It wasn't definitely as reliable as Claude Sonnet or Claude Opus, but it has like near instant responses. Yeah. I just wanted to say that like if you tell 5.4 mini "hi," you will get the "hello" response in like, I don't know, 300 milliseconds or something like that.
Yeah. But what you found with the testing and the eval is that actually Gemma 4 was better, right?
Yeah, definitely. It was at least on par.
Which is pretty crazy because Gemma 4 is available locally.
Yeah. Okay. We have some Kanban board here. Can we drag it? No, we can rename it. Okay, because these are tickets. Yeah, I tried to drag a column.
Nice.
Okay.
Okay. So now maybe add something completely different, like a stock graph chart.
Okay. All right. Stock price chart for Nvidia. I, What is it? Apple and...
Google.
And Google is, what is Alphabet? Something like that.
Oh, yeah, I think Alphabet.
Okay. Uh, Alphabet. Yeah, Google. Okay. I wonder where it takes the prices from because most APIs, most APIs are going to be limited. I think Yahoo Finance works well. So, we'll see. Agent Zero usually goes for Yahoo Finance in Python.
I think this is another like capture concept of like capture of the was in the training data because then future agents will get trained on that more and more.
Yeah.
And then it's just like, it's like the tech stack, you know, always next and Superbase.
Okay. It seems like it worked. By the way, this is, uh, this is one of the benefits of running the agent in your browser because it runs the code in your browser, not in a data center in a VPS, and so you don't get blocked by APIs for being a robot.
Yeah, that's a huge disadvantage when, like, agents try to do multi-step tasks from a VPS.
Yeah.
A lot of websites block just these IP addresses that come from a data center.
Yeah, exactly. Okay. Uh...
Okay, let's do something completely different. Let's do a Snake game. All right.
So, I guess what are the main limitations of Space Agent? Like, what would you not use it for?
I wouldn't use it for anything that requires operating system access for, like, installing Linux packages, right? If it's something low-level you need to do, if you need it to, it cannot run a server, for example. If you need to run a server to test your Node application or something like that, you probably want to go with Agent Zero because that can do all of that for you. It has its own Linux system. What I wouldn't use it for is, uh, like background jobs because we don't have these yet, right? Now, because it works on the front end, it requires the front end to be running. So you cannot turn off your computer and let it do something in the background. Even if you host it on a VPS, the agent still runs and executes on the front end. So maybe we will figure out a way to do background jobs in the future. Maybe we will not do it because there's already a lot of agents that can do it, right? Maybe we don't need to replicate everything. We will see. We will see what the people want. So...
So that's useful for the people watching this is like, go ahead, try it and comment what, what do you like about it, how you use it, and, you know, we'll see like what sticks.
Yeah, definitely. Definitely. I think we currently know, like, uh, 5% of its potential what it can do. Like, we are doing, like, random things here, and I do random things for the last four weeks since I started developing it. But apart from the Agent Zero example or the research example, I don't do much useful stuff here because I simply don't yet know.
It's a new paradigm.
Yeah, it's a completely new thing, and I still need to wrap my head around it. I can imagine that it's even more difficult for, for others. Okay. Uh, it seems like a broken Snake game because I only see food. Yeah, I don't see any food. There's, and it's also capturing, and it's also capturing my input, which is wrong. So I'm going to close this one. There was no tail, no food, and it's capturing input keys even when not focused. Focused. Do it again.
So these spaces are persistent, right? So people can have a separate space for their work, for messing around, for different use.
Basically for any single use case. Like, you don't even need to group your, like, life categories into spaces. You can have hundreds of spaces. They, they don't cost you anything. It's just a folder on a disk. And all of these are stored, all of these widgets and everything are stored in text files. So it's, it's just a few kilobytes per space. Okay. Let's see. Yeah. Yeah. And I can even use my keyboard. That's fine.
Nice. Maybe try the music use case, something, a mini synth beat.
Yeah. I, I already did it today. Uh, where is it? Step sequencer. Uh...
Nice. So we have a step sequencer where, where you can add different instruments at different beats. You have a control board for the sound, and you have a guitar free play where, where you can jam with your sequencer.
So how long did this take to develop roughly?
Wow. I think, uh, maybe 20 minutes. I started with the sequencer, then I added the knobs, and, uh, then I added the guitar. The sequencer was fast. That was one shot. So that took probably like, I don't know, one or two minutes to make. Then I started adding features like, uh, saving and loading and changing the length of the tab, etc. And then I wanted to add something nice and visual, like these knobs. And then I experimented with the guitar so that you could strum chords.
Maybe try telling it to add to a piano roll.
Well, let's see.
I tested something similar with Opus 4.6 and it was able to do it in one shot.
I have no idea what it's going to do now. Whether it's going to create another widget or or maybe just add something to the sequencer. Let's see.
So, this is probably also one of the easiest ways for, like, people who are not as deep in AI to feel the power of AI, right? Because like, people watching my channel and, you know, Agent Zero channel, they're like in the top 1% of interested people. They're not a free ChatGPT user. So, a lot of these people still don't know the power of these coding agents. Oh, there is it. Nice. Okay. Some of these are misaligned in the higher octaves, but, you know, that's fixable. Look at the graphic.
Yeah. Uh...
Oh. Okay.
What do we have? We have...
No, now it's fixed.
One, two, three octaves.
Yeah, expanding it. Expanding fixed it.
That's strange. Okay.
So, like, people could take their friends and family who are not technical and not AI-focused and really have them feel the power of what's possible by just typing English into Space Agent.
Yeah, it's like an entry drug for new AI people. Yeah, definitely. Like, uh, you don't need to install anything. Uh, you don't need to understand the terminal dependencies. You don't need to know how, how AI works. What you are going to need is an API key or any other service. Yeah.
Yeah. So, space-agent.ai and then, uh, just API key so you can run inference, or if you have a powerful computer, you can do the local, um, local inference.
You can do the local inference. We also have a special panel for it here where you can load the model and test it here in the chat. I'm not sure, is it going to download or simply? Yeah, it's downloading. Okay, I'm going to stop it because it's, it's 10 gigs.
Yeah.
Once it's downloaded, then it's loaded into the memory fairly quickly. But yeah, you are going to need a beefy GPU.
So, any model from Hugging Face, like, that fits?
Any model, any model of the NNX format from Hugging Face. We have a button, "Compatible Models," here, and it takes you to a community repository. There's like, 1000 models converted to this format. Okay. But the only one relevant right now is probably Gemma 4.
Because you still need a good model to be able to, you know, write the JavaScript and understand the system prop.
Yeah. Yeah. Like, uh, agentic systems are not simple. It's something completely different to running a model in Ollama and talking to it.
Okay. So I guess, uh, let's talk a bit more, like, uh, the theory and the philosophy behind it, right? So how did you get the idea to make Space Agent?
Oh, wow. Uh, where to start? Uh, I am always carrying, uh, a lot of thoughts and ideas in my head, and over time, some of them connect together and start, uh, some start to seem like, uh, efficient and cooperative. And, uh, I wanted to achieve a few things. Like, I wanted to make something like Agent Zero that would be easier for people to get into and understand. I also wanted, like I said, an agent that would be able to fully control itself, not just the back-end layer, but to fully access everything. I didn't talk about it much, but it's not just about spaces. The agent can actually modify itself completely. The full system is built on modules, and the agent can develop its own modules on the fly. And, uh, you can do it per user. So I can create new modules for myself for, like, running the local inference is a module, for example, or the file browser is another module, and I can create thousands of modules myself. They will be stored in my, in my user folder, and they will not affect other users of the system if it's a multi-user system. And, uh, we can do the same per user group or globally in the system. So it's not just about spaces. It's a full development environment that can extend itself. And, uh, also this is something that's difficult to do, for example, in Agent Zero. Agent Zero can extend itself. It has a plug-in system and everything, but it still runs on a back end in Python, and that comes with some caveats, like installing dependencies and, uh, solving dependency conflicts and, uh, a lot of stuff like that. So this runs completely on the client side. So it doesn't put any additional stress on the server. That's why, for example, we already have hundreds or maybe maybe even thousands of users now on our demo site, and we have like 2% CPU usage and 6% memory usage because the real work happens on the client side and not on the back end.
Like, when you got the idea, how did you decide on, like, browser being the right thing, the right paradigm?
Yeah, that's, uh, uh, that's a great question because I knew from the start that if it was to be simple for the user, it needs to be a multiplatform and run without installation. And, uh, then it was basically decided because there is no other platform than browser that can run without installation on all operating systems, right? You have different, uh, window management, uh, different rendering on all of the operating systems, and, uh, browser is the only platform that has exactly the same runtime in JavaScript on all the platforms, including mobile, the same rendering, uh, unified, standardized over the years of HTML, CSS, and JavaScript development. So, yeah, I, I think I knew from day one that, uh, if I am about to build this, it needs to be in a browser. And, uh, then I started, uh, solving problems because, wow, there were a lot of problems. Like, browsers are great because, uh, the cross-compatibility is awesome, and, uh, they are also sandboxes of their own because the internet is a very dangerous space. So a lot of protection of the user comes from the browser itself. It doesn't let the website touch your files, and it doesn't let you steal data from other apps, etc. So this is great as well, but this comes with a ton of limitations, like cross-origin problems. You cannot display other websites in an iframe inside another page, for example. Some pages, like Wikipedia, will let you to display Wikipedia inside another page, but Google, YouTube, and basically all of the other modern websites will block you. So, yeah, or I started doing a lot of workarounds to fix this, but, uh, yeah, it worked in the end. The browser works really well in the native app because there we can use Electron features to mitigate a lot of these security boundaries. We can, we can also use the back-end layer in NodeJS, we have to mitigate CORS, we can proxy it through the back-end layer and remove CORS headers, and, yep, we are solving one issue at a time. We got here.
So I guess how did you manage to develop it so quickly? Like, did you use AI tools, and if so, like, what's your workflow?
Yeah, I didn't write a single line of code here. I, I used Codex for everything. So Codex built the entire codebase of this. How I started is I created an agents.mmd hierarchy and documentation framework for Codex. There is a root agent.mmd file that the agent always loads, and the first, the agent sees his documentation first. Documentation is the most important part of this project because the problem with AI coding is that it cannot hold the full scope of the project in the context window. Right? So, the bigger your codebase is, the more the agent starts to do redundant things and writing new things from scratch or overriding, like, previous settings, etc. So this whole AI workflow starts by the agent documenting everything in agents.mmd files on all of the layers of the system.
All levels, or the main folders only?
All levels, basically. Anything that is being developed is at the same time being documented in an agents.mmd file. So when I tell the agent, like, uh, "Go into the file browser that we have in Space Agent and change something there," there is an agents.mmd file in the file browser module that the agent can read, and it can immediately see how does the file browser work, what are the core principles, why does it work like this, what not to do, etc.
So people should just actually use this approach to develop, right? Because in the future, it's much more important for a codebase to be optimized for agents.
Yeah, definitely. Like, uh...
So I just make it clear that this is not only for Space Agent. This is an approach that people should adopt going forward is that, like, it's the documentation. Like, people shouldn't have any tokens in their head. Any unspoken preferences, nothing like that shouldn't be in their head. Everything needs to be in markdown files in the repo.
Yeah, unfortunately, we are not there yet. I still had like hundreds of instances where I needed to correct the agent when I saw it was making a bad decision. And, uh, even after everything was done, I still find ways to optimize. So it's not yet perfect, but it's much better than it was a year or two ago. And it's definitely much, much better when you use an approach like this where the agent has documentation for everything. And if it needs to change something, it first checks the documentation and knows why does it work this way. So it doesn't repeat the same mistakes again and again.
And we're accelerating faster and faster. Like, in the last 24 hours, we got GPT 5.5 and DeepMind V4. GPT 5.5 is significantly better than 5.4 at long context. So I think a lot of these issues are going to be greatly reduced in three to six months.
Yeah, it needs to. That's the only way forward. When I started developing Agent Zero two, two years ago, something like that, it took me like three months of, of intensive development to release the first version, which was CLI only. It had very limited powers, and, uh, all of the code in Agent Zero's core is handwritten up to this day. I made Space Agent in four weeks, something like that. 25 days.
MVP was faster. It was like two weeks.
Uh, yeah, but the, but the MVP was just a single page with a chat changing something on the web. It didn't have spaces. It didn't have the back-end infrastructure. It didn't have nothing. Uh...
And it has like way more features than what Agent Zero launched with. So, yeah, the, and I did it, uh, I did it in one person. So the acceleration is clearly there. If I were to write Space Agent manually, it would probably take me like a year, maybe more. Maybe more.
So, at least 12 to 20x speed up.
Yeah, definitely. Definitely. Uh, I, I still don't think...
Not to mention the system prompt, by the way. The system testing manually, that would be that would be decades, you know, human time.
Yeah. Yeah. Definitely. Uh, I still don't think coding is dead. I think I think coding will be one of the most important skills to have in the future because we are the last generation of programmers that did actual manual coding, right? And I can immediately spot bad decisions by the AI. I can immediately spot inefficiencies, and if it takes the wrong path, I can immediately tell it, no, you need to do it this way to make it safe or to make it scalable or whatever. And like I said, I did this hundreds of times during this development. I always give it a task, and, and then I watch what it's doing. I have like six Codex CLI windows open, and I always quickly check what each one of them is doing, and I, I am simply looking for mistakes. I don't do anything else than I try to spot inefficiencies and mistakes.
So I guess why Codex over Claude Code or something else?
Oh, uh, it might be a personal, it might be a personal preference. I tried both, and I wasn't happy with Claude Code. I'm not, I'm not saying it's Claude Code's fault. Maybe, maybe it's a skill issue. But what I figured out very early is that Codex is much better at exactly this following, like, hierarchy of agents.mmd files and updating them consistently and, and most importantly, following the instructions inside. When I tried with Claude Code, it often started doing fancy things and then forgot to update the documentation. And like, I remember one instance when, when Claude Code was working for like 2 hours and like 20 iterations on fixing a CSS on a button, like alignment of a button on the web page, and it always told me, "It's done now, it's fixed." And I refreshed the page and told it, like, "No, it's not done, it's still the same."
And you probably had to, like, sell a liver to Anthropic right in the meantime.
Well, I think I did this on the $20 plan because I was just testing at the time. I used the $200 plan with Codex, which is unlimited. That's fine.
Yeah, that's crazy.
But, uh, yeah.
I think the delta is massive. Like, OpenAI now launched a $100 max plan, and I think the delta between that and the Claude $100 plan is like unheard of. On the Claude $100 plan, you can hit the limits in a day of intense coding if you want.
Like, if you're running multiple Claude Codes at the same time with Opus 4.7 with 1 million context window, and OpenAI just gives you way more inference for the same cost. And I agree, like my experience matches your experience, but like, I like Claude for explaining and like, it's easier to talk to and maybe like start a project and like, kind of interview you for the ideas, but as soon as any real work is getting done and like, it requires complex changes, big refactors, or some serious bugs, then Codex is just way better.
Yeah, Codex is not perfect. Sometimes I get mad, but, uh, yeah, I have to admit, it's, it's very, very good. And, uh, for $200 a month, uh, you are getting way, way more value.
Let's clarify two more things. First, how should people think about Agent Zero and Space Agent? Like, is there a relationship between these two products? Are they two separate products?
Uh, they are two separate products by the same development team. We will naturally be working on more integrations, etc. But both of these are generic and dynamic enough so that, uh, they can integrate with anything. So they don't need any...
There's a special link between these two. Uh, they are very different products for very different use cases. Not necessarily different users, but different use cases. I believe most people that use Agent Zero will use Space Agent simultaneously for different tasks because Space Agent is more dynamic, lightweight. It's more close to the user. It is way more cooperative than Agent Zero. Agent Zero is instructed to run in the background and not bother the user with any questions. Like, if you tell it to do something, it will continue until it's done, right? It will not stop and ask you for something because it runs in a Docker container in the back end, and if it stops to ask you a question, maybe you never respond, and then what?
So Space Agent knows that it runs with the user on the front end. So if it hits a CAPTCHA on the internet or something, it will simply tell you, like, "Solve the CAPTCHA for me. I cannot do it." Right? So you click the CAPTCHA, or you do the login, or something. Yeah, that's one thing we, we probably didn't show, but the, the browser is completely interactive. So if I open the browser and >> that's an important thing to show. >> Go to google.com, the agent can navigate it. But, uh, I can do the same, right? So we can cooperate on the same page.
>> Okay, one last thing I would like to show is from scratch setup. How maybe we can do it anonymous browser, I don't know. But like for people, if they go to space-agent.ai, I'll link below, how does it look like and where they need to put the API key.
>> So you can start either on the repo with the "Try Live Now" button or space-agent.ai. There is this guest account. Continue, and that's it. And it's one of the first buttons you're going to see: "Set LLM API Key." And it defaults to OpenRouter because OpenRouter is a great service. It gives you access to OpenAI, Anthropic, Google, all of the models. You don't need to have multiple subscriptions. Uh, you just pay for the credits you actually use. And here's the field for the API key. So I'm going to go to openrouter.ai. Here I'm already logged in. So I'll go to API keys. I think it's in the preferences. And this creates an API key on OpenRouter. I can then put it here, and it should work right away. So Sonnet is very proactive.
>> Yeah, it's interesting how the different, different models have different personalities.
>> Yeah. But by the way, uh, the Wow.
>> Damn, that's actually good.
>> Okay. I didn't expect that. Uh, actually, the first space that is created for new users called "Big Bang." It has these instructions. This is a brand new user, and this is their first experience, like, "Be more tolerant and show them something impressive," etc. But Sonnet really takes it to the next level and starts showing off.
>> Yeah. And Sonnet is a good balance between cost and performance right now.
>> Yeah. Yeah.
>> We'll see if it releases Sonnet 4.7 or Sonnet 5 right away. But, uh, yeah, we were using Opus 4.7 throughout this video. Anything that's like good, you know, either cutting edge or one step below should be good. Try not to use like mini models or flash models and stuff like that.
>> Yeah. Well, most people will still use free models, but, uh, yeah, the, that's the way it is now. They will not have the best experience, but that's to be expected. Another big feature that I implemented into Space Agent that is quite unique to agents is the time travel feature. We create every user directory and every group directory as a standalone Git repository, which automatically tracks changes that you make. You create new spaces, you change the settings, whatever you do, it is automatically tracked in the Git repo on the disk, and this allows you to travel back in time. Like, if I want to go two hours back in time, I can simply do this, and it will undo any changes made in the last two hours. I now have less spaces here, and I can travel also back into the present, just like that, or revert individual changes. This is quite unique to AI agents because normally, if you break something with an AI agent, you would use another agent or AI assistant to fix it. Right?
>> Yeah.
>> Here, if you break something, you simply go back in time and undo it. Another big thing is that we have this admin mode, which, if you break something completely, if you do a change that completely breaks the rendering of the of the full website, that it doesn't even open, the time travel, you still can fix it by going to the admin mode. Admin mode opens in a split view like this, where on the left, there is a persistent admin interface, which is part of the firmware of the framework. So this is not changing. This is fixed. And on the right side, you can see the standard Space Agent. And from here, I can talk to the agent and let it fix the framework. I can go into files. I can use the time travel from here in the admin, and I can manage my installed modules from here. So even if you break something completely that the UI doesn't even start, you still have a way to fix it.
>> Yeah, that's the danger, I guess, of the Space Agent, like having the full JavaScript, is that sometimes it can go too beyond and, you know, mess mess up text input or side loading or whatever. You can use the admin agent to fix itself.
>> Yeah, exactly. Actually, any agent can break itself, even Agent Zero, if it uninstalls a Python dependency or something critical like that, it may break itself completely, and then it requires some manual work to be fixed.
>> Yeah. And that's, that's where beginners get stuck on the debugging, you know.
>> Having to use something else to take screenshots and, you know, figure out what is wrong.
>> Yeah, that's the beauty of a Space Agent that you can fix it with a single click. Even if you have the standalone application, or even if you run it in the cloud or on the demo site, whenever you open Space Agent in a new window or a new tab, you are always greeted with "Enter Space" or "Enter the Admin Mode." So these pages are static. They are always there, waiting for you to go into admin and fix the framework.
>> All right. So I guess where should people go? To the GitHub repo or straight to the website?
>> Well, uh, they are, they are interconnected. So they can go straight to the website. The website doesn't have any additional information. All of the information is in the GitHub repo. If you go to the website space-agent.ai, you can click the GitHub button here, or you can join our Discord, X account, or the Agent Zero website. Here you can also download the native app or see the guide how to host it yourself. But, uh, exactly the same information you will see in the GitHub repo. Like, the easiest way to get started is to try the live version.
>> Yeah.
>> And download the local app if you like it.
>> Yeah. And let us know in the comments how you use it, for what you use it, and I guess suggestions for features and updates.
>> Yeah, that's very valuable.
>> All right. So, thank you, Yan. And I guess we'll see how people use it. Thank you very much.