{"id":23130,"date":"2026-08-08T00:37:59","date_gmt":"2026-08-08T00:37:59","guid":{"rendered":"https:\/\/scannn.com\/cloudflare-os-an-open-platform-for-agents-apps-and-work\/"},"modified":"2026-08-08T00:37:59","modified_gmt":"2026-08-08T00:37:59","slug":"cloudflare-os-an-open-platform-for-agents-apps-and-work","status":"publish","type":"post","link":"https:\/\/scannn.com\/lv\/cloudflare-os-an-open-platform-for-agents-apps-and-work\/","title":{"rendered":"Cloudflare OS: an open platform for agents, apps, and work"},"content":{"rendered":"\n<div data-astro-cid-qjtkll3n=\"\">\n<p>Every organization has a mission, a reason for being. Organizations pass that mission \u2014 along with their terminology, procedures, systems, standards, and ways of working \u2014 to their people. People, in turn, take this context together with their own experience and work towards the mission.<\/p>\n<p>Work can take many forms, from code, to documents and slides, to relationships, to outcomes in the physical world.<\/p>\n<p>Some of these are straightforward: code either runs or it doesn\u2019t. Agents have been using this feedback loop to produce code that \u201cworks\u201d for developers over the last couple of years. But what about the rest of us?<\/p>\n<p>Bringing the same leverage to the rest of the organization is a harder problem. Agents need to understand the context of the company and be able to reach the systems people use to do their jobs. They need to turn that context and access into work that moves the organization towards its mission.<\/p>\n<p>That\u2019s why we created Cloudflare OS. It gives every person an agent and workspace built around their company: how it works, what it knows, and the systems it relies on.<\/p>\n<p>In May of this year, we gave every person at Cloudflare access to the first version of Cloudflare OS. Thousands of people across every function, many of them outside of engineering, use it every day to create documents and slides, automate repeatable tasks, and build small apps to visualize data and help them do their work.<\/p>\n<p>Cloudflare OS also gave everyone a shared library of context and skills built by teams at Cloudflare. It captures our terminology, procedures, and best-known ways of doing recurring work as instructions an agent can follow. When one person figures out a better way to do something, everyone else can use it.<\/p>\n<p><strong>Today, we are open sourcing a new version of <a href=\"https:\/\/os.cloudflare.app\/\" target=\"_blank\" rel=\"noopener noreferrer\"><u>Cloudflare OS<\/u><\/a>.<\/strong> Any organization can deploy it, connect it to internal systems, and make it their own.<\/p>\n<h2>What we learned from the first version<\/h2>\n<p>The Cloudflare OS we are open sourcing today is based on what we learned from running the first version internally, a journey our CIO, Sam Rhea, covers in his <a href=\"https:\/\/blog.cloudflare.com\/how-we-use-ai-with-cloudflare-os\" target=\"_blank\" rel=\"noopener noreferrer\"><u>blog post<\/u><\/a>.<\/p>\n<p>The first version centered on individuals working with agents through private workspaces. Apps were static rather than live software connected to internal systems, and mostly deterministic jobs still required running an agent skill again and consuming more model tokens.<\/p>\n<p>Collaboration exposed a more fundamental challenge. Access to an <a href=\"https:\/\/www.cloudflare.com\/learning\/ai\/what-is-model-context-protocol-mcp\/\" target=\"_blank\" rel=\"noopener noreferrer\"><u>MCP server<\/u><\/a> told us which tools an agent could call, but not which underlying resources the agent had observed. Once people began sharing workspaces, apps, and outputs, we needed to ensure that collaboration could not expose information someone was not permitted to see.<\/p>\n<p>We rebuilt Cloudflare OS on a new foundation to solve these problems. Security had to be part of the platform, not something every person building an app or using an agent has to implement correctly.<\/p>\n<p>The result is a platform designed to belong to the company running it. You can customize the interfaces, connect your tools, and add the skills and context that capture how your organization works.<\/p>\n<h2>Introducing Cloudflare OS<\/h2>\n<p>Cloudflare OS starts with a conversation in your browser, like many other AI tools. What makes it different is that each conversation is grounded in the context and skills your organization has curated. Give your workspace a goal, and it can draw on that knowledge and work with the tools and data your organization already uses to achieve it.<\/p>\n<figure class=\"emdash-image pt-portable-image\" data-astro-cid-7nvefuv6=\"\">\n<div class=\"pt-portable-image-frame\" data-image-placeholder-frame=\"\" data-astro-cid-7nvefuv6=\"\"><img loading=\"lazy\" src=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY68A0TND85MN4AZCF3G.png&amp;w=715&amp;h=477&amp;f=webp&amp;fit=cover&amp;position=center\" srcset=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY68A0TND85MN4AZCF3G.png&amp;w=640&amp;h=427&amp;f=webp&amp;fit=cover&amp;position=center 640w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY68A0TND85MN4AZCF3G.png&amp;w=715&amp;h=477&amp;f=webp&amp;fit=cover&amp;position=center 715w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY68A0TND85MN4AZCF3G.png&amp;w=750&amp;h=500&amp;f=webp&amp;fit=cover&amp;position=center 750w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY68A0TND85MN4AZCF3G.png&amp;w=828&amp;h=552&amp;f=webp&amp;fit=cover&amp;position=center 828w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY68A0TND85MN4AZCF3G.png&amp;w=1080&amp;h=721&amp;f=webp&amp;fit=cover&amp;position=center 1080w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY68A0TND85MN4AZCF3G.png&amp;w=1280&amp;h=854&amp;f=webp&amp;fit=cover&amp;position=center 1280w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY68A0TND85MN4AZCF3G.png&amp;w=1430&amp;h=954&amp;f=webp&amp;fit=cover&amp;position=center 1430w\" alt=\"BLOG-3379 2.png\" loading=\"lazy\" decoding=\"async\" data-image-placeholder-media=\"true\" data-lightbox-src=\"\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY68A0TND85MN4AZCF3G.png&amp;w=1536&amp;h=1024&amp;f=webp\" data-lightbox-width=\"1536\" data-lightbox-height=\"1024\" data-astro-cid-7nvefuv6=\"true\" sizes=\"auto, (min-width: 715px) 715px, 100vw\" data-astro-image=\"constrained\" data-astro-image-fit=\"cover\" data-astro-image-pos=\"center\" width=\"715\" height=\"477\" class=\"pt-portable-image-media\"\/><\/div>\n<\/figure>\n<p>Cloudflare OS combines three parts:<\/p>\n<ul>\n<li><strong>An agent workspace<\/strong> grounded in context and skills your company curates, with an isolated runtime where agents can write and run code.<\/li>\n<li><strong>A new security and governance framework<\/strong> for safe access to internal data and services.<\/li>\n<li><strong>A platform for personal, modifiable apps<\/strong> that people can build, share, and continue changing.<\/li>\n<\/ul>\n<p>What begins as a conversation can become a doc, an app, or a workflow that continues doing the work.<\/p>\n<h2>An agent workspace for everyone in your company<\/h2>\n<p>Agent workspaces were designed for everyone in your organization to use. You interact with them in your browser, so you don\u2019t have to be a developer or know how to use a terminal.\u00a0<\/p>\n<p>A workspace combines agent sessions, persistent state, outputs and files, resource access, and an isolated runtime where the agent can write and run code.<\/p>\n<p>They come loaded with the curated context and skills your team or company has collected. No more reinventing the wheel for every task \u2014 if someone on your team has figured out the best way to do something, everyone benefits. People no longer have to explain the same process, terminology, and best practices to a model every time they start a task.<\/p>\n<p>A few things you can do:<\/p>\n<h3>Research and ask questions<\/h3>\n<p>Ask a workspace to research a topic using company context and the resources you make available to it. The agent can write code to search, filter, join, and analyze information instead of pulling an entire dataset into the model\u2019s context window.<\/p>\n<h3>Create docs, slides, and spreadsheets<\/h3>\n<p>A workspace can turn its research into a document, presentation, or spreadsheet that you can continue editing. These outputs do not have to be static files. They can remain connected to live data, be updated as their sources change, and still be exported to familiar formats or services such as Google Drive.<\/p>\n<h3>Create collaborative, connected apps for your team<\/h3>\n<p>When a document or spreadsheet is not enough, the agent can build an app with its own interface, logic, and state. The app can use connected company resources and support multiple people working together.<\/p>\n<h3>Run deterministic workflows\u00a0<\/h3>\n<p>Not every job needs a full agent session. Many are a known sequence of steps with one or two places where judgment is useful. A workspace can turn those jobs into mostly deterministic workflows, using code for the predictable steps and a model only where it adds value. Workflows can run on demand, on a schedule, or when an event occurs in a connected system.<\/p>\n<p>Cloudflare OS gives agents and apps governed access to systems of record through Gatekeepers (more on this in the security section below). It also supports existing <a href=\"https:\/\/modelcontextprotocol.io\/docs\/2026-07-28\/getting-started\/intro\" target=\"_blank\" rel=\"noopener noreferrer\"><u>Model Context Protocol (MCP)<\/u><\/a> servers your organization already uses via <a href=\"https:\/\/developers.cloudflare.com\/cloudflare-one\/access-controls\/ai-controls\/mcp-portals\/\" target=\"_blank\" rel=\"noopener noreferrer\"><u>MCP Server Portals<\/u><\/a>.<\/p>\n<h2>A new security and governance framework for safe access to internal data and services<\/h2>\n<p>As people begin experimenting with AI at work, one of their first requests is often for API keys to company systems. This makes sense: AI isn\u2019t much use at work if it doesn\u2019t have access to the systems people use to do their jobs.<\/p>\n<p>But handing over API keys to people and agents is dangerous and does not scale. Keys often provide broad, long-lived access that is difficult to constrain, share safely, and audit.<\/p>\n<p>MCP gives agents a better way to use these systems. An MCP server can hold the credential and expose a defined set of tools instead of handing the key directly to the agent. But controlling which tools an agent can call is only the first step. MCP alone does not tell us which underlying resources an agent has observed. The agent can combine information across systems, send it somewhere less restricted, or expose it through apps and outputs to people who may not be allowed to see the original resources. Authorization has to account for where the data can go next.<\/p>\n<h3>Agents start with no access<\/h3>\n<p><a href=\"https:\/\/developers.cloudflare.com\/cloudflare-one\/access-controls\/\" target=\"_blank\" rel=\"noopener noreferrer\"><u>Cloudflare Access<\/u><\/a> controls who can enter Cloudflare OS. Inside, every agent and app starts with access to nothing. An agent can ask for access to a specific resource, which you can grant or deny. Generated code receives that resource as a typed binding:<\/p>\n<div class=\"emdash-code\">\n<pre class=\"shiki shiki-themes github-light vesper\" tabindex=\"0\"><code><span class=\"line\"><span class=\"sk-d73a49-a0a0a0\">const<\/span><span class=\"sk-005cc5-fff\"> issues<\/span><span class=\"sk-d73a49-a0a0a0\"> =<\/span><span class=\"sk-d73a49-a0a0a0\"> await<\/span><span class=\"sk-24292e-fff\"> env.<\/span><span class=\"sk-005cc5-fff\">PROJECT<\/span><span class=\"sk-24292e-fff\">.<\/span><span class=\"sk-6f42c1-ffc799\">listIssues<\/span><span class=\"sk-24292e-fff\">({<\/span><\/span>\n<span class=\"line\"><span class=\"sk-24292e-fff\">  teamId: <\/span><span class=\"sk-032f62-99ffe4\">\"ENG\"<\/span><span class=\"sk-24292e-fff\">,<\/span><\/span>\n<span class=\"line\"><span class=\"sk-24292e-fff\">  state: <\/span><span class=\"sk-032f62-99ffe4\">\"open\"<\/span><span class=\"sk-24292e-fff\">,<\/span><\/span>\n<span class=\"line\"><span class=\"sk-24292e-fff\">});<\/span><\/span><\/code><\/pre>\n<p><button type=\"button\" class=\"code-copy-btn\" data-code-copy=\"\" aria-label=\"Copy code\" data-copy-label=\"Copy code\" data-copied-label=\"Code copied!\"><span class=\"code-copy-btn__idle\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z\"\/><\/svg><\/span><span class=\"code-copy-btn__done\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z\"\/><\/svg><\/span><\/button><\/div>\n<p><code>env.PROJECT<\/code> is a capability representing permission to use a specific resource under a specific policy. The credential remains completely isolated from the agent and any generated code.<\/p>\n<p>Server code runs in a Dynamic Worker with global outbound networking disabled. Client code runs in a sandboxed frame in the browser. Neither can reach the Internet except through capabilities you explicitly provide.<\/p>\n<h3>Gatekeepers govern resources and actions<\/h3>\n<p>A Gatekeeper is a service-specific <a href=\"https:\/\/developers.cloudflare.com\/workers\/?_gl=1*1pzndf6*_gcl_au*MzM2MDkxNTQzLjE3ODQ4NDczOTM.*_ga*MWVkZWU3OTctMzJjNC00YWE1LWI2ZDUtZTJkNTY1NzYxYWQ0*_ga_SQCRB0TXZW*czE3ODUyMTk3NjMkbzckZzAkdDE3ODUyMTk3NjMkajYwJGwwJGgwJGRQeHAyTUEtdzgtVUFETUEzOGwtVFVhajVDd2laRWYxSC1R\" target=\"_blank\" rel=\"noopener noreferrer\"><u>Worker<\/u><\/a> that sits between Cloudflare OS and an external service. It understands the service\u2019s API, its resources, and the operations that can be performed on them.<\/p>\n<p>Giving an agent access to your entire GitHub account is likely too broad. A Gatekeeper can give it access to a single repository, allow it to read issues but not source code, mask particular fields, apply rate limits, and require approval before merging a pull request.<\/p>\n<p>The agent and its apps see a small TypeScript API. The Gatekeeper handles <a href=\"https:\/\/www.cloudflare.com\/learning\/access-management\/what-is-oauth\/\" target=\"_blank\" rel=\"noopener noreferrer\"><u>OAuth<\/u><\/a>, holds the credential, enforces policy, records what was read, and mediates anything with an externally visible side effect.<\/p>\n<figure class=\"emdash-image pt-portable-image\" data-astro-cid-7nvefuv6=\"\">\n<div class=\"pt-portable-image-frame\" data-image-placeholder-frame=\"\" data-astro-cid-7nvefuv6=\"\"><img fetchpriority=\"high\" class=\"pt-portable-image-placeholder\" data-image-placeholder=\"\" src=\"data:image\/bmp;base64,Qk32BAAAAAAAADYAAAAoAAAACAAAAAgAAAABABgAAAAAAMAAAAATCwAAEwsAAAAAAAAAAAAA+\/z99vf57O3v6Ons7e7x8vP17+\/w5ubm9\/v\/8PX55Onv3+Xs5evx7vL27fDz5efo9Pv\/7PX83efx1+Lt4Orz6\/P67fL25ens9v\/\/7vj\/3ur11+Xx4e347vf+8Pf76e3x\/\/\/\/+P\/\/6fP84+747PX+9v7\/9\/3\/8PT2\/\/\/\/\/\/\/\/+f7\/9Pr\/+v\/\/\/\/\/\/\/\/\/\/+fr7\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\" alt=\"\" width=\"715\" height=\"413\" loading=\"eager\" decoding=\"async\" aria-hidden=\"true\" data-astro-cid-7nvefuv6=\"\"\/><img loading=\"lazy\" src=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXZJ8CW8K5Y8DBCBACM7.png&amp;w=715&amp;h=413&amp;f=webp&amp;fit=cover&amp;position=center\" srcset=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXZJ8CW8K5Y8DBCBACM7.png&amp;w=640&amp;h=370&amp;f=webp&amp;fit=cover&amp;position=center 640w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXZJ8CW8K5Y8DBCBACM7.png&amp;w=715&amp;h=413&amp;f=webp&amp;fit=cover&amp;position=center 715w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXZJ8CW8K5Y8DBCBACM7.png&amp;w=750&amp;h=433&amp;f=webp&amp;fit=cover&amp;position=center 750w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXZJ8CW8K5Y8DBCBACM7.png&amp;w=828&amp;h=478&amp;f=webp&amp;fit=cover&amp;position=center 828w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXZJ8CW8K5Y8DBCBACM7.png&amp;w=1080&amp;h=624&amp;f=webp&amp;fit=cover&amp;position=center 1080w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXZJ8CW8K5Y8DBCBACM7.png&amp;w=1280&amp;h=739&amp;f=webp&amp;fit=cover&amp;position=center 1280w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXZJ8CW8K5Y8DBCBACM7.png&amp;w=1430&amp;h=826&amp;f=webp&amp;fit=cover&amp;position=center 1430w\" alt=\"BLOG-3379 3.png\" loading=\"lazy\" decoding=\"async\" data-image-placeholder-media=\"true\" data-lightbox-src=\"\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXZJ8CW8K5Y8DBCBACM7.png&amp;w=1920&amp;h=1109&amp;f=webp\" data-lightbox-width=\"1920\" data-lightbox-height=\"1109\" data-astro-cid-7nvefuv6=\"true\" sizes=\"auto, (min-width: 715px) 715px, 100vw\" data-astro-image=\"constrained\" data-astro-image-fit=\"cover\" data-astro-image-pos=\"center\" width=\"715\" height=\"413\" class=\"pt-portable-image-media\"\/><\/div>\n<\/figure>\n<h3>Policy follows what the agent has seen<\/h3>\n<p>Controlling the initial read is not enough. Take, for example, the case where an agent reads a sensitive table in a data warehouse and uses it to produce a live dashboard. Sharing the dashboard must not become a way to share the table with people who could not access it directly.<\/p>\n<p>Cloudflare OS records every resource agents observe. These observations remain attached to the agent and its work. When another person tries to open the workspace, interact with the agent, or view what it produced, Gatekeepers verify that person&#8217;s access to the observed resources.<\/p>\n<figure class=\"emdash-image pt-portable-image\" data-astro-cid-7nvefuv6=\"\">\n<div class=\"pt-portable-image-frame\" data-image-placeholder-frame=\"\" data-astro-cid-7nvefuv6=\"\"><img class=\"pt-portable-image-placeholder\" data-image-placeholder=\"\" src=\"data:image\/bmp;base64,Qk32BAAAAAAAADYAAAAoAAAACAAAAAgAAAABABgAAAAAAMAAAAATCwAAEwsAAAAAAAAAAAAA\/\/\/\/+vv77\/Hy6e3u7fHy8vX37\/Lz5+jp\/\/\/\/\/f798fPz6u3v7vHz8\/X38fP06uvq\/\/\/\/\/\/\/\/9PX27O\/x7vH09Pb48\/X27e7t\/\/\/\/\/\/\/\/9vj57vH08PP39vj79vj58PLx\/\/\/\/\/\/\/\/+Pv98PT48vb79\/v\/+Pv88vT0\/\/\/\/\/\/\/\/+f3\/8vf89Pr\/+f7\/+f3\/8\/b4\/\/\/\/\/\/\/\/+f\/\/8\/n+9vz\/+\/\/\/+v\/\/8\/f6\/\/\/\/\/\/\/\/+f\/\/8\/r\/9v3\/+\/\/\/+v\/\/8\/f7\" alt=\"\" width=\"715\" height=\"463\" loading=\"eager\" decoding=\"async\" aria-hidden=\"true\" data-astro-cid-7nvefuv6=\"\"\/><img loading=\"lazy\" src=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY5GTDXQJPAWC065WH87.png&amp;w=715&amp;h=463&amp;f=webp&amp;fit=cover&amp;position=center\" srcset=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY5GTDXQJPAWC065WH87.png&amp;w=640&amp;h=414&amp;f=webp&amp;fit=cover&amp;position=center 640w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY5GTDXQJPAWC065WH87.png&amp;w=715&amp;h=463&amp;f=webp&amp;fit=cover&amp;position=center 715w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY5GTDXQJPAWC065WH87.png&amp;w=750&amp;h=486&amp;f=webp&amp;fit=cover&amp;position=center 750w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY5GTDXQJPAWC065WH87.png&amp;w=828&amp;h=536&amp;f=webp&amp;fit=cover&amp;position=center 828w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY5GTDXQJPAWC065WH87.png&amp;w=1080&amp;h=699&amp;f=webp&amp;fit=cover&amp;position=center 1080w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY5GTDXQJPAWC065WH87.png&amp;w=1280&amp;h=829&amp;f=webp&amp;fit=cover&amp;position=center 1280w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY5GTDXQJPAWC065WH87.png&amp;w=1430&amp;h=926&amp;f=webp&amp;fit=cover&amp;position=center 1430w\" alt=\"BLOG-3379 4.png\" loading=\"lazy\" decoding=\"async\" data-image-placeholder-media=\"true\" data-lightbox-src=\"\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDY5GTDXQJPAWC065WH87.png&amp;w=1920&amp;h=1244&amp;f=webp\" data-lightbox-width=\"1920\" data-lightbox-height=\"1244\" data-astro-cid-7nvefuv6=\"true\" sizes=\"auto, (min-width: 715px) 715px, 100vw\" data-astro-image=\"constrained\" data-astro-image-fit=\"cover\" data-astro-image-pos=\"center\" width=\"715\" height=\"463\" class=\"pt-portable-image-media\"\/><\/div>\n<\/figure>\n<p>The same observation log is used to inform policies that determine when agents can make external requests. A read of sensitive data can prevent the agent from writing data to certain sources, inviting new collaborators, handing work to another agent, or making an outbound request.<\/p>\n<p>People using agents or building apps do not have to worry about making these mistakes. The platform can now be used to handle this.<\/p>\n<h2>A platform for building and sharing personal, modifiable apps<\/h2>\n<p>Most productivity suites give you a fixed set of applications: documents, spreadsheets, and presentations. In Cloudflare OS, each \u201cfile\u201d can be its own application, written by an agent for one person, one project, or one team.<\/p>\n<p>These are not prototypes that you have to export and deploy somewhere else. Each one is a full-stack application with client code, server code, an API, and durable state. Apps are private by default, but can be shared like documents.<\/p>\n<h3>Every app is a Worker<\/h3>\n<p>When you ask your workspace to build an app, the agent writes two parts:<\/p>\n<ul>\n<li>Client code that renders the app\u2019s UI in the browser<\/li>\n<li>Server code that stores state and implements the app\u2019s behavior<\/li>\n<\/ul>\n<p>The server is loaded on demand as a <a href=\"https:\/\/developers.cloudflare.com\/dynamic-workers\/\" target=\"_blank\" rel=\"noopener noreferrer\"><u>Dynamic Worker<\/u><\/a> and instantiated as a <a href=\"https:\/\/developers.cloudflare.com\/dynamic-workers\/usage\/durable-object-facets\/\" target=\"_blank\" rel=\"noopener noreferrer\"><u>Durable Object Facet<\/u><\/a> (both are features we built for this project). The facet gives the app its own SQLite database, separate from the Cloudflare OS runtime managing it. Dynamic Workers use lightweight V8 isolates, so every app can have its own isolated runtime without needing a dedicated server or container sitting around.<\/p>\n<figure class=\"emdash-image pt-portable-image\" data-astro-cid-7nvefuv6=\"\">\n<div class=\"pt-portable-image-frame\" data-image-placeholder-frame=\"\" data-astro-cid-7nvefuv6=\"\"><img class=\"pt-portable-image-placeholder\" data-image-placeholder=\"\" src=\"data:image\/bmp;base64,Qk32BAAAAAAAADYAAAAoAAAACAAAAAgAAAABABgAAAAAAMAAAAATCwAAEwsAAAAAAAAAAAAA\/\/\/\/\/\/778\/Lx7Ozr7+\/u9PTz8\/Lw7Ovo\/\/\/\/+vv77e\/x5ejr6Ovv7fDz7e7w5+jo\/P7\/9vj86Ozy3+Xt4efw5+z05+vx4uXp\/P\/\/9fn\/5+323ubx4Oj05u345+z14ubt\/\/\/\/+v7\/7PL74+v35e366\/L+7PH75+vy\/\/\/\/\/\/\/\/9fn\/7PL87\/X\/9fv\/9fn\/7\/L4\/\/\/\/\/\/\/\/\/P\/\/9Pn\/+Pz\/\/v\/\/\/f\/\/9vj9\/\/\/\/\/\/\/\/\/\/\/\/+Pv\/+\/\/\/\/\/\/\/\/\/\/\/+fv\/\" alt=\"\" width=\"715\" height=\"421\" loading=\"eager\" decoding=\"async\" aria-hidden=\"true\" data-astro-cid-7nvefuv6=\"\"\/><img loading=\"lazy\" src=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTESRQTCERH9MDPVGC3.png&amp;w=715&amp;h=421&amp;f=webp&amp;fit=cover&amp;position=center\" srcset=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTESRQTCERH9MDPVGC3.png&amp;w=640&amp;h=377&amp;f=webp&amp;fit=cover&amp;position=center 640w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTESRQTCERH9MDPVGC3.png&amp;w=715&amp;h=421&amp;f=webp&amp;fit=cover&amp;position=center 715w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTESRQTCERH9MDPVGC3.png&amp;w=750&amp;h=442&amp;f=webp&amp;fit=cover&amp;position=center 750w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTESRQTCERH9MDPVGC3.png&amp;w=828&amp;h=488&amp;f=webp&amp;fit=cover&amp;position=center 828w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTESRQTCERH9MDPVGC3.png&amp;w=1080&amp;h=636&amp;f=webp&amp;fit=cover&amp;position=center 1080w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTESRQTCERH9MDPVGC3.png&amp;w=1280&amp;h=754&amp;f=webp&amp;fit=cover&amp;position=center 1280w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTESRQTCERH9MDPVGC3.png&amp;w=1430&amp;h=842&amp;f=webp&amp;fit=cover&amp;position=center 1430w\" alt=\"BLOG-3379 5.png\" loading=\"lazy\" decoding=\"async\" data-image-placeholder-media=\"true\" data-lightbox-src=\"\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTESRQTCERH9MDPVGC3.png&amp;w=1920&amp;h=1131&amp;f=webp\" data-lightbox-width=\"1920\" data-lightbox-height=\"1131\" data-astro-cid-7nvefuv6=\"true\" sizes=\"auto, (min-width: 715px) 715px, 100vw\" data-astro-image=\"constrained\" data-astro-image-fit=\"cover\" data-astro-image-pos=\"center\" width=\"715\" height=\"421\" class=\"pt-portable-image-media\"\/><\/div>\n<\/figure>\n<p>The browser client talks to the server using <a href=\"https:\/\/github.com\/cloudflare\/capnweb\" target=\"_blank\" rel=\"noopener noreferrer\"><u>Cap\u2019n Web<\/u><\/a>, Cloudflare\u2019s open source object-capability Remote Procedure Call (RPC) system. A server method can be called from the client like a normal JavaScript function:<\/p>\n<div class=\"emdash-code\">\n<pre class=\"shiki shiki-themes github-light vesper\" tabindex=\"0\"><code><span class=\"line\"><span class=\"sk-d73a49-a0a0a0\">const<\/span><span class=\"sk-005cc5-fff\"> issues<\/span><span class=\"sk-d73a49-a0a0a0\"> =<\/span><span class=\"sk-d73a49-a0a0a0\"> await<\/span><span class=\"sk-24292e-fff\"> app.<\/span><span class=\"sk-6f42c1-ffc799\">listIssues<\/span><span class=\"sk-24292e-fff\">({<\/span><\/span>\n<span class=\"line\"><span class=\"sk-24292e-fff\"> status: <\/span><span class=\"sk-032f62-99ffe4\">\"done\"<\/span><span class=\"sk-24292e-fff\">,<\/span><\/span>\n<span class=\"line\"><span class=\"sk-24292e-fff\">});<\/span><\/span><\/code><\/pre>\n<p><button type=\"button\" class=\"code-copy-btn\" data-code-copy=\"\" aria-label=\"Copy code\" data-copy-label=\"Copy code\" data-copied-label=\"Code copied!\"><span class=\"code-copy-btn__idle\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z\"\/><\/svg><\/span><span class=\"code-copy-btn__done\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 256 256\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z\"\/><\/svg><\/span><\/button><\/div>\n<p>The special part is that the agent can also call the same method.<\/p>\n<p><strong>So if you can build a tool to do a job yourself, agents can use your tool to do the job when you\u2019re not there.<\/strong><\/p>\n<h3>Share the app, or share how it was built<\/h3>\n<p>When you build an app in Cloudflare OS, you have two ways to share them:<\/p>\n<ul>\n<li>Sharing your app itself lets other people collaborate in real time using the same state.<\/li>\n<li>Sharing a blueprint of your app lets other people create their own copy of your app.<\/li>\n<\/ul>\n<figure class=\"emdash-image pt-portable-image\" data-astro-cid-7nvefuv6=\"\">\n<div class=\"pt-portable-image-frame\" data-image-placeholder-frame=\"\" data-astro-cid-7nvefuv6=\"\"><img class=\"pt-portable-image-placeholder\" data-image-placeholder=\"\" src=\"data:image\/bmp;base64,Qk32BAAAAAAAADYAAAAoAAAACAAAAAgAAAABABgAAAAAAMAAAAATCwAAEwsAAAAAAAAAAAAA9Pb57\/Hz5efn4eLi5ebo6ert5efp3N3d+fv+9Pb56u3t5efo5+rt6+3y6Oru4OLj\/\/\/\/+\/3\/8fT06+7v7O\/z7\/H47O\/05unq\/\/\/\/\/\/\/\/+fz88\/b38\/b79fj\/8\/b87fDy\/\/\/\/\/\/\/\/\/\/\/\/+v3++v3\/\/P\/\/+v3\/9fj4\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/P7+\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\" alt=\"\" width=\"715\" height=\"284\" loading=\"eager\" decoding=\"async\" aria-hidden=\"true\" data-astro-cid-7nvefuv6=\"\"\/><img loading=\"lazy\" src=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXN0ZTW8DZZ0VC98Z0AP.png&amp;w=715&amp;h=284&amp;f=webp&amp;fit=cover&amp;position=center\" srcset=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXN0ZTW8DZZ0VC98Z0AP.png&amp;w=640&amp;h=254&amp;f=webp&amp;fit=cover&amp;position=center 640w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXN0ZTW8DZZ0VC98Z0AP.png&amp;w=715&amp;h=284&amp;f=webp&amp;fit=cover&amp;position=center 715w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXN0ZTW8DZZ0VC98Z0AP.png&amp;w=750&amp;h=298&amp;f=webp&amp;fit=cover&amp;position=center 750w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXN0ZTW8DZZ0VC98Z0AP.png&amp;w=828&amp;h=329&amp;f=webp&amp;fit=cover&amp;position=center 828w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXN0ZTW8DZZ0VC98Z0AP.png&amp;w=1080&amp;h=429&amp;f=webp&amp;fit=cover&amp;position=center 1080w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXN0ZTW8DZZ0VC98Z0AP.png&amp;w=1280&amp;h=508&amp;f=webp&amp;fit=cover&amp;position=center 1280w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXN0ZTW8DZZ0VC98Z0AP.png&amp;w=1430&amp;h=568&amp;f=webp&amp;fit=cover&amp;position=center 1430w\" alt=\"BLOG-3379 6.png\" loading=\"lazy\" decoding=\"async\" data-image-placeholder-media=\"true\" data-lightbox-src=\"\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXN0ZTW8DZZ0VC98Z0AP.png&amp;w=1920&amp;h=764&amp;f=webp\" data-lightbox-width=\"1920\" data-lightbox-height=\"764\" data-astro-cid-7nvefuv6=\"true\" sizes=\"auto, (min-width: 715px) 715px, 100vw\" data-astro-image=\"constrained\" data-astro-image-fit=\"cover\" data-astro-image-pos=\"center\" width=\"715\" height=\"284\" class=\"pt-portable-image-media\"\/><\/div>\n<\/figure>\n<p>An app instantiated from a blueprint contains the original app\u2019s code. But it does not contain its SQLite data, conversation history, credentials, or connected resources. Each new app starts with independent state and resources.<\/p>\n<p>This means when you share apps with your team, they can modify them themselves with AI instead of filing a feature request and assigning you.<\/p>\n<h2>Use any model, and control what it costs<\/h2>\n<p>Cloudflare OS can be used with any model. Every inference call runs through <a href=\"https:\/\/developers.cloudflare.com\/ai-gateway\/\" target=\"_blank\" rel=\"noopener noreferrer\"><u>Cloudflare AI Gateway<\/u><\/a>, giving your organization one place to decide which models are available and which model should handle each job.<\/p>\n<figure class=\"emdash-image pt-portable-image\" data-astro-cid-7nvefuv6=\"\">\n<div class=\"pt-portable-image-frame\" data-image-placeholder-frame=\"\" data-astro-cid-7nvefuv6=\"\"><img class=\"pt-portable-image-placeholder\" data-image-placeholder=\"\" src=\"data:image\/bmp;base64,Qk32BAAAAAAAADYAAAAoAAAACAAAAAgAAAABABgAAAAAAMAAAAATCwAAEwsAAAAAAAAAAAAA+fv79Pb26evu4+bp5uns6+7v6uzs5OXk\/f7\/9\/n66+7x4+js5erv6+\/y6+7v5efn\/\/\/\/\/P7\/7\/L15evw5u3z6\/L37PH06Ovr\/\/\/\/\/\/\/\/9Pj76\/H26\/L47\/b88PX57O\/w\/\/\/\/\/\/\/\/+\/\/\/8vj88vn+9vz\/9vr98fP1\/\/\/\/\/\/\/\/\/\/\/\/+\/\/\/+\/\/\/\/v\/\/\/P\/\/9vj5\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+fr8\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+vv8\" alt=\"\" width=\"715\" height=\"332\" loading=\"eager\" decoding=\"async\" aria-hidden=\"true\" data-astro-cid-7nvefuv6=\"\"\/><img loading=\"lazy\" src=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTSXP67QP4M7F21B9V1.png&amp;w=715&amp;h=332&amp;f=webp&amp;fit=cover&amp;position=center\" srcset=\"https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTSXP67QP4M7F21B9V1.png&amp;w=640&amp;h=297&amp;f=webp&amp;fit=cover&amp;position=center 640w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTSXP67QP4M7F21B9V1.png&amp;w=715&amp;h=332&amp;f=webp&amp;fit=cover&amp;position=center 715w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTSXP67QP4M7F21B9V1.png&amp;w=750&amp;h=348&amp;f=webp&amp;fit=cover&amp;position=center 750w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTSXP67QP4M7F21B9V1.png&amp;w=828&amp;h=384&amp;f=webp&amp;fit=cover&amp;position=center 828w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTSXP67QP4M7F21B9V1.png&amp;w=1080&amp;h=501&amp;f=webp&amp;fit=cover&amp;position=center 1080w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTSXP67QP4M7F21B9V1.png&amp;w=1280&amp;h=594&amp;f=webp&amp;fit=cover&amp;position=center 1280w, https:\/\/blog.cloudflare.com\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTSXP67QP4M7F21B9V1.png&amp;w=1430&amp;h=664&amp;f=webp&amp;fit=cover&amp;position=center 1430w\" alt=\"BLOG-3379 7.png\" loading=\"lazy\" decoding=\"async\" data-image-placeholder-media=\"true\" data-lightbox-src=\"\/_image?href=https%3A%2F%2Fblog.cloudflare.com%2F_emdash%2Fapi%2Fmedia%2Ffile%2F01KZ7PDXTSXP67QP4M7F21B9V1.png&amp;w=1920&amp;h=891&amp;f=webp\" data-lightbox-width=\"1920\" data-lightbox-height=\"891\" data-astro-cid-7nvefuv6=\"true\" sizes=\"auto, (min-width: 715px) 715px, 100vw\" data-astro-image=\"constrained\" data-astro-image-fit=\"cover\" data-astro-image-pos=\"center\" width=\"715\" height=\"332\" class=\"pt-portable-image-media\"\/><\/div>\n<\/figure>\n<p>Not every task needs the most expensive model. You may not want to run the most expensive frontier model to summarize your unread emails every morning. AI Gateway gives you the control needed to make sure expensive models are only being used for the hardest work.<\/p>\n<p>Every request is attributed to the person, team, or workspace that made it. Administrators can see where inference spend is going, set budgets and rate limits, and decide what happens when a limit is reached.\u00a0<\/p>\n<h2>Open source, so you can make it yours<\/h2>\n<p>Cloudflare OS is available today and is open source. Check out the <a href=\"https:\/\/github.com\/cloudflare\/cloudflare-os\" target=\"_blank\" rel=\"noopener noreferrer\"><u>cloudflare-os GitHub repository<\/u><\/a>. You can deploy it into your own Cloudflare account and use your own Access policies, AI Gateway configuration, data, and integrations.<\/p>\n<p>Our internal deployment reflects Cloudflare\u2019s systems, terminology, policies, and ways of working. Yours should reflect your organization.<\/p>\n<p>Cloudflare OS is designed so you can customize the interface, add internal Gatekeepers, and build organization-specific features without changing the core product.<\/p>\n<p>We are releasing two repositories: the <a href=\"https:\/\/github.com\/cloudflare\/cloudflare-os\" target=\"_blank\" rel=\"noopener noreferrer\"><u>Cloudflare OS core<\/u><\/a> and an <a href=\"https:\/\/github.com\/cloudflare\/cloudflare-os-starter\" target=\"_blank\" rel=\"noopener noreferrer\"><u>example deployment<\/u><\/a> based on how we run it internally at Cloudflare. The deployment repository consumes the core without patching it, providing a place for configuration, custom UI, internal integrations, analytics, and deployment pipelines.<\/p>\n<h2>Delivered\u00a0together with our partners<\/h2>\n<p>The source code is only the starting point. The context, skills, workflows, internal systems, and policies are what make Cloudflare OS even more useful for your organization.<\/p>\n<p>Cloudflare\u2019s strategic partners, Presidio and Happy Cog, will work with you to customize Cloudflare OS around how your organization operates and roll it out across your workforce.<\/p>\n<p>Partners can help you curate shared skills and institutional context, build custom interfaces, connect internal systems through Gatekeepers and MCP Server Portals, and configure security, model, and cost controls.<\/p>\n<p>You get your own branded Cloudflare OS, connected to your systems, running on Cloudflare, and shaped around how your people actually work.<\/p>\n<h2>Get started<\/h2>\n<p>Cloudflare OS is available today on <a href=\"https:\/\/github.com\/cloudflare\/cloudflare-os\" target=\"_blank\" rel=\"noopener noreferrer\"><u>GitHub<\/u><\/a>. You can explore the source code, try the demo, or deploy it into your own Cloudflare account in a few minutes using our <a href=\"https:\/\/github.com\/cloudflare\/cloudflare-os-starter\" target=\"_blank\" rel=\"noopener noreferrer\"><u>starter repository<\/u><\/a>.<\/p>\n<p>We\u2019re just getting started. We\u2019re working on bringing Cloudflare OS to the Cloudflare dashboard as a fully managed product, adding containers for development workflows, and bringing workspaces into Slack and other chat tools.<\/p>\n<p>If you\u2019re interested in talking with our team, we would love to chat. Use <a href=\"https:\/\/www.cloudflare.com\/resource\/cloudflare-os-interest-landing-page\/\" target=\"_blank\" rel=\"noopener noreferrer\"><u>this form<\/u><\/a> to reach out!<\/p>\n<\/div>\n<p><a href=\"https:\/\/blog.cloudflare.com\/cloudflare-os\/?utm_source=tldrdevops\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Every organization has a mission, a reason for being. Organizations pass that mission \u2014 along with their terminology, procedures, systems, standards, and ways of working \u2014 to their people. People, in turn, take this context together with their own experience and work towards the mission. Work can take many forms, from code, to documents and [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":23131,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[143],"tags":[],"class_list":["post-23130","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai"],"_links":{"self":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts\/23130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/comments?post=23130"}],"version-history":[{"count":0,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts\/23130\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/media\/23131"}],"wp:attachment":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/media?parent=23130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/categories?post=23130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/tags?post=23130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}