rozenmd
4 hours ago
I liked Kenton's take on this: https://x.com/KentonVarda/status/2084990137180590572?s=20
Text from tweet:
Today we are releasing Cloudflare OS, a chatbot with connectors, just like every other tech company is doing.
Except actually, it's different. This is a remake of Sandstorm[.]io, my startup from 10 years ago, except this time built on Cloudflare Workers (the platform I've spent the last 9 years building) and deeply leveraging AI. This is more or less the culmination of my secret 10-year master plan.
This is a full-on personal app vibe coding platform, in which the sandbox is so secure that you can pretty much go wild -- the AI cannot introduce a significant security bug. We believe a company's security team can feel comfortable giving non-technical users permission to vibe code and then sleep soundly at night.
How is that possible? It's the Sandstorm security model, revisited. A "Gadget" is the same thing as a Sandstorm "Grain": a fine-grained app instance. For example, if you have a document editor app, each document runs as a separate instance of the app, in a separate sandbox (one "Gadget").
This means two things, both of which I think are Big Deals: 1. The platform can manage all access control, by controlling who can access the Gadget at all. There is no way the Gadget can accidentally leak itself to an attacker -- even an attacker who has access to other Gadgets based on the same app. 2. Since everyone is running their own copy of the code, everyone can freely modify their copy of the code.
Think about #2 a bit more.
What if, when you wanted a new feature in the software you are using, you could just prompt your agent to add it?
This doesn't work in the cloud Software-as-a-Service model, because you are not running your own copy of the app.
Sandstorm tried to change that 10 years ago, but the world wasn't ready, because not enough people had the skills or patience to actually modify their software. AI has changed that. Now you just ask the agent -- the same agent that you are using to help you interact with the Gadget can also modify the code of the Gadget.
And it is so fun.
tinco
3 hours ago
This is really interesting. I built a similar product (not released yet), but it uses Kubernetes as the infrastructure layer instead of Cloudflare OS. I guess all these years later I am left with the same existential question that plagued Sandstorm. What is its relevance in the context of Linux containers? This is not a rhetorical question, is there a real benefit for a Sandstorm grain over a docker style Linux container? Does a containerized process not have all the same benefits of a Sandstorm grain, with the added benefit of not requiring any modifications of the containerized software?
One argument I could bring is that despite all its claims, OpenAI still had to switch from containers to MicroVMs because its agents under test still managed to break out from their containers. Is the security model of a Sandstorm grain so much better that agents wouldn't figure out how to break out of it?
kentonv
3 hours ago
Sandstorm's use of containers was just a means to an end. The real innovation was the fine-grained instances -- each document in its own container. No other container platform did that.
But honestly, it didn't work well, because of cold start times and memory usage. It's bad enough when a server takes seconds to start, but if every document you open has a long startup time and uses hundreds of MB of RAM, it's really painful.
Cloudflare OS doesn't use containers. It uses Dynamic Workers, which are 100x more efficient: https://blog.cloudflare.com/dynamic-workers/
So the stuff I have been building in Workers for the past 9 years turns out to be the thing that Sandstorm needed all along. What a coincidence. :)
valorzard
16 minutes ago
dumb question: is this javascript/typescript only? can you use webassembly based languages instead?
kentonv
9 minutes ago
In theory Wasm could be supported, but generally JS/TS is much more efficient when running inside isolates (our lightweight sandboxes) since you don't have to bundle a language runtime into the app. CFOS at present only exposes JS (with TS coming soon).
echelon
2 hours ago
This is far too Cloudflare flavored to be interesting to me.
It's using Workers (capital W) and the core Cloudflare primitives.
I don't feel safe building on this or touching this.
I'd be happier if a startup or neutral party built this in a more agnostic way.
kentonv
2 hours ago
I'm sorry but Workers is the technology that makes this all possible. I don't think I could have built this without Workers as a foundation. (I tried once, with Sandstorm, and like I said, it didn't work well.)
Sometimes you just can't advance the state of the art while also maintaining broad compatibility.
It's all open source, though. You can run the whole stack on your own machine.
ocdtrekkie
2 hours ago
For what it's worth, we also ran workerd inside a Sandstorm grain and not only did it work, it performed well. In the same way some people run Docker to run a single thing inside a VM solely for that thing... you can probably use workerd just to run a single Workers-based thing inside something else... and it'll probably work just swell.
echelon
2 hours ago
Workers is a product and you're paid to develop and sell it as an employee.
I 100% understand the hustle. I do the same thing. I just don't trust a giant like Cloudflare that has done several things to weaken the open web and establish a position that is all too powerful. I don't want to give them an iota of support. Even using open source buys into their mindshare, distribution, ecosystem, and eventual supremacy and lock-in.
I'd buy this from a smaller company for sure. Just not from Google, AWS, Cloudflare.
If this was a YC startup I'd have given you my credit card info already.
I don't know what your stock in Cloudflare is like, but your upside would be way bigger building this externally. You'd probably raise an extremely large seed round.
Consider launching your own startup. Don't give Cloudflare all the upside.
Edit: I didn't realize you'd already responded. Was clarifying my position and wishes for this to not be something made by Cloudflare.
kentonv
an hour ago
I tried it as a startup once, so I know what that's like. It's a lot of time spent running around begging for money (from investors and from customers) rather than building technology.
Workers is my startup-within-Cloudflare. It won't make me a billionaire, but it has still made me more money than I actually know what to do with, while being able to delegate all the stuff I don't like doing to other parts of the company that already do it quite well.
I have a lot of influence here. The CEO and CTO listen to me. E.g. I made my argument this all needed to be open source and self hostable, and they agreed enthusiastically.
I don't think I could build this better as a separate company.
echelon
an hour ago
I appreciate your extremely thoughtful answers. It greatly improves my perception and attitude about this.
I'll check it out.
I'm still anxious about the Cloudflare angle (and that's hard to shake), but beggars can't be choosers. You've legitimately built something cool and done a fantastic job spearheading that.
Thank you for the kind and well stated response. Sounds like you've had a lot of fun building this too.
sroerick
2 hours ago
My approach has been an interpreted Lisp running on a web server backend and it basically does everything described here
everforward
2 hours ago
I don’t think containers, as normally used, provide that much security because so much of what you want to secure is at the boundaries between containers (the network) rather than inside the container itself.
There’s not much point in preventing hyper visor escape style exploits if the agent can just SSH or psql log in to an adjacent container. Likewise there are near infinite ways to do weird things with the network to make stuff happen in another less controlled environment (eg sign up for AWS free account, make VM, do everything on that VM where controls don’t apply).
There are tools to do this, but I’ve never seen anyone package them up in a way that was pleasant to interact with. It’s got the SELinux problem of being useful, but annoying enough that everyone just disables it the second it gets in the way. It’s surprisingly hard to manage what should be able to connect to what as you start scaling out the number of things on the network. Whoops, you forgot that random software embeds its own DNS over HTTPS resolver so the normal DNS profile won’t work and everything crashed kind of issues.
oooyay
3 hours ago
Linux namespaces, and containers, are not security features in themselves. They end up having to be combined with SECCOMP and some sort of application kernel or SELinux in order to have an effective security apparatus. This is before you give it application aware security controls like policy.
nijave
2 hours ago
It has real business value. Letting non technical users run wild without the onerous layers of controls in traditional enterprise IT.
We're already contending with users wanting to hook up every SaaS MCP to every other SaaS platform and then slap AI on top. Having a controlled sandbox for that would hugely simplify things.
abdullahkhalids
2 hours ago
> is there a real benefit for a Sandstorm grain over a docker style Linux container?
Linux containers are meant to be used by those with significant software engineering skills. Sandstorm was designed to be used, once installed by someone else, by grandma.
fny
4 hours ago
That should have been the announcement.
The article posted buries the lead. Cloudflare OS reads like almost any other AI knowledge base until midway when apps are introduced and then becomes overly technical with a code snippet.
kentonv
3 hours ago
We really struggled with how to present this to multiple audiences at once.
My tweet thread, and the GitHub readme, is really the presentation intended for the HN crowd. The blog post is for a different audience.
philistine
3 hours ago
> The blog post is for a different audience.
No one? Like literally, I don't understand a thing of what the blog post is saying. It's vague to the point of meaning nothing. Every piece of text I've seen that explains CloudflareOS is clear except the blog post.
QuantumNoodle
2 hours ago
I used to read their blog regularly because it had lots of interesting technical details. Lately, though, there’s less of that, and I can’t quite put my finger on what changed. My guess is that they realized how popular the blog had become and started using that attention more for advertising. There’s nothing wrong with that, but earlier the “advertisements” actually made me want to try things out and bring them back to my team. I even considered applying to work there. Not so much anymore. I’ve even removed it from my RSS feed.
I don’t like offering criticism without a solution, but I’m not really motivated to come up with one here. It looks like employees may read this, so maybe someone will see the feedback.
dofm
3 hours ago
Random trivia (and something I learned this way myself from an internet reply, though I can't remember when):
What gets buried is the "lede". It is a really unusual thing — a deliberate, engineered misspelling of "lead" that leaked into broader use:
https://www.merriam-webster.com/wordplay/bury-the-lede-versu...
(Not meant as a nit-pick — it's just something that adds really fascinating historical colour to a useful expression, that people often mistakenly re-correct)
reaperducer
44 minutes ago
It's spelled "lede" so as not to be confused with "lead," as in the metal with which was used to print newspapers.
Since "lead" (as in beginning of a story) and "lead" (as in metal) were frequently used in print newsrooms, the spelling of one changed over time to reduce confusion.
There were a number of other language convolutions in newsrooms, such as "slug" which meant a piece of hot metal, and so was useful for describing a spent bullet, the very short text that served as a title for a particular story, and a section of metal letters on the printing press.
/Worked for two major newspaper companies back when printing newspapers was akin to printing money.
dofm
20 minutes ago
“TK” meaning “to come” is another one. “More TK” in particular is now a blogger affectation but it seems to have been a way to communicate to an editor that a story was so far incomplete, within the text of a submission, without the editor assuming the words “to come” were part of the story. And elsewhere it indicates a placeholder that needs a fact to be confirmed and filled in before publication.
mosura
4 hours ago
Sandstorm without self hosting has no interest though. (Edit: see below, where the creator states it _can_ be run locally)
Buzz looks like a more reasonable direction than this does.
kentonv
4 hours ago
What do you mean? This is 100% open source and self-hostable!
https://github.com/cloudflare/cloudflare-os
It runs on the open source Workers Runtime:
https://github.com/cloudflare/workerd
You can run it at home if you want. There's even a Home Assistant Gatekeeper.
mosura
3 hours ago
So you can run it off the public internet with no sneaky external dependency on cloudflare, slack etc?
And it would be functionally the same? With the same performance if you put enough hardware there?
If so cool, and that should have been clearly in the announcement, because as it sounded it is “I am a sucker, lock me in!”
kentonv
3 hours ago
> So you can run it off the public internet with no sneaky external dependency on cloudflare, slack etc?
Yes. It even supports ollama and works decently well with some local LLMs.
> And it would be functionally the same? With the same performance if you put enough hardware there?
Honestly it is faster running locally.
> If so cool, and that should have been clearly in the announcement,
We had so many things we wanted to say, it was hard to fit them all into one story.
The blog post is for an enterprise audience. My tweet thread is for the hacker audience.
mosura
3 hours ago
That is actually cool.
Maybe it is my bubble, but the experience people are having with Anthropic particularly is motivating a big “get this stuff back under control” effort so while it may not be strategically optimal for Cloudflare the local hosting would prove more valuable to enterprises than maybe a few years back, even if presented as a backup plan.
edaemon
3 hours ago
Neat! How does that work with the AI Gateway portion? I see some references in the code but at a quick glance I can't tell if you can configure it to skip AI Gateway.
kentonv
3 hours ago
Use of Cloudflare AI Gateway is optional.
In the default configuration, you just plop your Anthropic/OpenAI/Gemini/Workers AI/ollama API keys into the UI and it talks to each provider directly.
That said, I would recommend AI Gateway, it has a lot of nice features. :)
upcoming-sesame
2 hours ago
You're not alone The name "cloudflare-os" by itself made me think this was heavily based on Cloudflare
nolist_policy
3 hours ago
Do you have a store/list of public blueprints like sandstorm?
kentonv
3 hours ago
Not yet, but that's an obvious direction to take things. :)
I'm really excited by the idea that this platform makes it safe to use blueprints that someone else vibe coded, without worrying about whether they checked it for security bugs, etc. Basically if the app works, it works. So yeah, there absolutely should be a marketplace so everyone can try everyone else's stuff.
BTW there are three blueprints installed automatically (docs, slides, sheets).
runtime_terror
2 hours ago
Couldn't the blueprint exfiltrate incoming data to an external location for example?
ocdtrekkie
2 hours ago
Blueprints shouldn't (if I know anything about Kenton) have access to the Internet/external locations without you granting it permission to.
kentonv
2 hours ago
The blueprint is just code, it does not include data or capabilities.
It's, I suppose, possible that the agent added secrets to the code itself. Not, like, API keys -- the agent never sees those. But it could have extracted sensitive info and put it into code, perhaps?
We can implement restrictions on exporting blueprints from workspaces that have seen sensitive secrets, though this might be more annoying than useful. It's a tricky balance.
andersonpico
2 hours ago
Thank you for your work over the years, sandstorm is a really interesting and inspiring piece of software. I'll certainly try to self-host CloudflareOS.
hobofan
4 hours ago
Yes, just like SaaS was a limitation to it's utility, PaaS is still a limitation, just on a different level.
benatkin
3 hours ago
There is also qm with smol machines. I found this out the long way, by looking at the contributors to qm at https://github.com/yc-software/qm where I found BinSquare, the founder of smol machines. Then I found a tweet about a public instance of it where I could try out having it code something agentically - I'm in the replies here: https://x.com/binsquares/status/2083305704274976819
I guess the lock-in is to Cloudflare Workers, which is limited to JavaScript. I would in fact look into projects that are built around MicroVMs and WebAssembly. It seems Buzz would be happy to use smolmachines, or whatever. You'd have to roll your own permission system, but smolmachines would at least take care of being able to use stuff within an app, by offering persistent, portable containers.
Actually I think now I can finally say why this sandstorm.io with Cloudflare OS has lock-in. The promise is "you can pretty much go wild" and that you can hand it off to non-technical people to do that. Much as you squint, there is not a sophisticated access control system available to self-hosted users. There's a framework for building a sophisticated access control system, but that isn't the same as having something open source that you can self-host and let non technical users go wild.
However, this is cool. I just agree with you that Buzz sounds more interesting to me as someone who was into Sandstorm.
runtime_terror
2 hours ago
Workers also supports Python, Rust and anything via WebAssembly (Go, C, etc)
layer8
4 hours ago
> the sandbox is so secure that you can pretty much go wild -- the AI cannot introduce a significant security bug.
This can only be correct when the application can’t affect anything outside the sandbox. Which would significantly restrict useful applications.
kentonv
3 hours ago
See my next tweet in the chain:
https://x.com/KentonVarda/status/2084990302784307363
-------------
Of course, personal apps are more useful if they can connect to external services. Cloudflare OS introduces a "connector" system we call Gatekeepers. This is sort of like MCP (and MCP is supported as a kind of Gatekeeper), but with a lot more:
* Instead of exposing tools, a Gatekeeper exposes a Cap'n Web RPC API. That makes it appropriate for use by both agents (via code mode) and Gadgets.
* Gatekeepers integrate with the Cloudflare OS UI to provide inline audit logging and human-in-the-loop approvals for all side-effecting actions.
* When an action requires approval, the agent does not need to stop and wait for it. A Gatekeeper will simulate the outcome, allowing the agent to keep running and queue up more work. You can then approve everything in a batch at the end. Hopefully, this means you no longer feel the need to turn on auto-approve! (But you still can if you want.)
We have already built Gatekeepers for a huge number of services, from GitHub to Home Assistant. We've found, with the right skills, AI can basically crank these things out for any given API, solving the chicken-and-egg ecosystem problem. We are working on a "software factory" of sorts where you can input the API docs for your favorite service and get a well-written Gatekeeper. That's not quite ready yet -- so for now use the ones we provide or use the write-gatekeeper skill to write your own. You can add your own Gatekeepers to your personal deployment.
kentonv
3 hours ago
Or more directly:
When you share a Gadget, we verify that anyone you share with also has direct permission to access each of the resources it is connected to (via the Gatekeeper system). Hence, no security bug in the Gadget itself could accidentally grant people access to things they don't already have.
techpression
an hour ago
But that is a problem. I have access to something deeply secret, I run a gadget, it reads that and sends it to whoever made it
kentonv
19 minutes ago
No, a Gadget does not just get automatic access to your data. It only gets access to the things you grant it explicitly.
techpression
14 minutes ago
Just like phishing websites, which are still a problem. I’m sure I’m being overly cautious, but this sounds like a recipe for data leaks with the low barrier to entry.
And if you want real life examples, every single LLM provider has gotten insane amounts of data shared to them, even if you have to approve.
shostack
3 hours ago
> * When an action requires approval, the agent does not need to stop and wait for it. A Gatekeeper will simulate the outcome, allowing the agent to keep running and queue up more work. You can then approve everything in a batch at the end. Hopefully, this means you no longer feel the need to turn on auto-approve! (But you still can if you want.)
Can you say more about how you simulate outcomes of approvals? For example, if I need an approval to be granted permission to read a document, how could it simulate the document contents?
kentonv
3 hours ago
Reads do not require approval. Only writes do.
Reads are, however, limited to only the resources you have explicitly attached.
Moreover, since agents and gadgets run in a sandbox with essentially no access to the outside world except via approved channels (Gatekeepers), it's essentially not possible for the agent to leak secrets it has seen unless you approve a later write.
In fact, the system actually keeps track of everything the agent / gadget has observed to know if it is "tained", and can use that to flag later actions as dangerous, e.g. due to prompt injection or possible leaking of secrets. (This is still evolving, but all the groundwork is there.)
(Of course, this assumes you trust the LLM provider itself not to steal secrets from your prompts. Most LLM providers offer zero-data-retention options, but if you don't trust them you can also use a local LLM. We support ollama and will support others in time.)
ocdtrekkie
3 hours ago
The key aspect here is "when an action requires approval". i.e. an action which writes. Presumably you are granting the read access when firing this process off in the first place.
edaemon
3 hours ago
Interesting, so how does this work with regards to purposeful but naive changes? If, for example, we have a Notion integration, and a non-technical user can add a feature to it via prompt, would it be possible for them to accidentally add something that sends a bunch of internal-only proprietary data to Notion? Would this system prevent or flag that in some way?
kentonv
3 hours ago
Gatekeepers can specify the sensitivity of their data. A Gatekeeper can actually flag an observation (a read operation) as being so sensitive that the agent should be prohibited from writing anywhere else after having seen that.
This is what allowed us to connect Cloudflare OS to our own sensitive internal data sources, containing things like customer data, revenue info, etc. Once you connect to one of those, the system enforces no data can be shared out of it.
That said, the policies are a bit blunt right now, maybe overly restrictive. We're going to be evolving it further.
spooneybarger
3 hours ago
Thank you. The tweet values the readers time. The blog post. Dear lord. So much noise.
This was a great summation.
nijave
2 hours ago
>This doesn't work in the cloud Software-as-a-Service model, because you are not running your own copy of the app.
Let me introduce you to scrapling+MCP--the closest I've come.
Stealthed, controllable browser gives you an API to arbitrary web things
You can't modify it, but you can extend it which imo is the next best thing
adb (Android) is close albeit a bit more tedious. It's fun watching an LLM take screenshots, read them, then send input events back to the phone.
If you have a rooted Android, you _can_ modify the apps. Xposed, ReVanced, et al subject to Play Integrity's ever growing pervasiveness
LeBit
3 hours ago
ManuelKiessling
3 hours ago
> What if, when you wanted a new feature in the software you are using, you could just prompt your agent to add it?
Yep, that's precisely the vision I formulated some months ago: https://manuel.kiessling.net/2025/11/04/what-if-software-shi...
losvedir
2 hours ago
Oh, wow! This is a lot clearer to me. I've long had a soft spot in my heart about Sandstorm. Here's a comment[0] I made 11 years ago about what Sandstorm was, to me:
> I'm a web developer, but I can't really use my skills to provide an open source web app the way I'd like to. I'd like to build a small server-side budgeting app that people can use from their computers or phones to record expenses, but there's no way I can ask people to find a web host that lets them run rails, or set up a heroku account or whatever.
> So my only alternative would be to run the service myself, but then I'm storing other people's data, I have to worry about scaling if lots of people use it, and user accounts, and all this stuff.
> The idea of sandstorm is folks run this platform on their personal servers, and then it lets you browse an app store like interface and one-click install these server side apps. So I'd bundle up my budgeting rails app as a sandstorm package, and if someone wants to track their expenses from a variety of devices, they install the app. Now they're running it so the data is theirs, there's no scaling issues, and user authentication is provided by sandstorm.
It was a beautiful thing that tried to thread the needle between personal, self-hosted software and cloud-based "software as a service". I've long thought that "federated" software is the sweetspot, since it allows people to control software in more natural organizational units like families or communities, without being centrally controlled or devolving into the craziness that is "decentralized".
However, while the functionality of Cloudflare OS may be Sandstorm-inspired, I feel like it doesn't really have its soul. What a difference a decade makes! Here's another comment[1] from me 10 years ago about why I loved sandstorm, which begins:
> Oh no! I really believe sandstorm (or something like it) is what we need the future to be. Rather than having everything get sucked up into Google, Facebook, Apple, or these other few centralized services, imagine where everyone has a personal (or family, or church group or whatever) server, and they can one-click install their email apps, their document apps, etc.
These days Cloudflare has become one of the "Google, Facebook, Apple" that I mentioned. I'm still a fan of Cloudflare generally, and with kentonv behind this I absolutely have to try it out, but it doesn't have the open source, community-oriented charm that I think Sandstorm had.
edit: Oh, I didn't read far enough down the tweet chain:
> I am so proud to say, we are making this whole thing open source, Apache 2.0 license, no catch.
Hooray! Sandstorm's back on the menu, boys! This really does make me happy. I never should have doubted, ha.
ocdtrekkie
2 hours ago
For what it's worth we (the community still working on Sandstorm) are also about to release an updated version of Sandstorm. But also as someone who definitely will still be running Sandstorm at home, some of the Cloudflare OS stuff is super exciting to me, and probably well beyond what we'll tackle with Sandstorm any time soon. What Kenton's doing with gatekeepers is insanely cool.
ignoramous
3 hours ago
You should probably add a disclaimer you work at Cloudflare yourself?
> I liked Kenton's take on this: https://x.com/KentonVarda/status/2084990137180590572
NetOpWibby
4 hours ago
Damn, this is a pretty big deal!
BonerWiener
4 hours ago
Can you explain why you think this is a big deal?
What particular feature/capability made you think this?
I do not disagree but i am curios. Lets have a discussion instead of just throwing feel good vibes around...
NetOpWibby
an hour ago
Uh, no? I responded to a comment. That's the context. Dafuq?
BonerWiener
5 minutes ago
You are adding nothing to the diacussion.
ashu1461
2 hours ago
I don't get it
How is this different than the capabilities which cowork by claude / chat gpt desktop apps now a days give in terms of core capabilities.
The fact that you can maybe fetch bugs from jira and present in the way you want is true for any of the agentic orchestrators, so is it really the USP ?
One difference I found against other orchestrators was that they work on a per seat billing model. Example if you have 10 team members who want access to a shared agent infrastructure, you would end up paying 10 * 20$ = 200$ per month while in this case it is probably just the AI and infrastructure bill that you have to spend, which probably might cross 200 dollars as well.