{"id":378,"date":"2026-04-16T00:00:00","date_gmt":"2026-04-16T00:00:00","guid":{"rendered":"https:\/\/wordpress.securinsight.ca\/index.php\/2026\/04\/16\/artifacts-artifacts-now-in-beta-versioned-filesystem-with-git-access\/"},"modified":"2026-04-16T00:00:00","modified_gmt":"2026-04-16T00:00:00","slug":"artifacts-artifacts-now-in-beta-versioned-filesystem-with-git-access","status":"publish","type":"post","link":"https:\/\/wordpress.securinsight.ca\/index.php\/2026\/04\/16\/artifacts-artifacts-now-in-beta-versioned-filesystem-with-git-access\/","title":{"rendered":"Artifacts &#8211; Artifacts now in beta: versioned filesystem with Git access"},"content":{"rendered":"<p><a href=\"https:\/\/developers.cloudflare.com\/artifacts\/\">Artifacts<\/a> is now in private beta. Artifacts is Git-compatible storage built for scale: create tens of millions of repos, fork from any remote, and hand off a URL to any Git client. It provides a versioned filesystem for storing and exchanging file trees across Workers, the REST API, and any Git client, running locally or within an agent.<\/p>\n<p>You can <a href=\"https:\/\/blog.cloudflare.com\/artifacts-git-for-agents-beta\/\" target=\"_blank\">read the announcement blog<\/a> to learn more about what Artifacts does, how it works, and how to create repositories for your agents to use.<\/p>\n<p>Artifacts has three API surfaces:<\/p>\n<ul>\n<li>Workers bindings (for creating and managing repositories)<\/li>\n<li>REST API (for creating and managing repos from any other compute platform)<\/li>\n<li>Git protocol (for interacting with repos)<\/li>\n<\/ul>\n<p>As an example: you can use the Workers binding to create a repo and read back its remote URL:<\/p>\n<div>\n<figure>\n<pre data-language=\"ts\"><code class=\"language-ts\"><div><div><span># <\/span><span>Create<\/span><span> <\/span><span>a<\/span><span> <\/span><span>thousand<\/span><span>,<\/span><span> <\/span><span>a<\/span><span> <\/span><span>million<\/span><span> <\/span><span>or<\/span><span> <\/span><span>ten<\/span><span> <\/span><span>million<\/span><span> <\/span><span>repos<\/span><span>:<\/span><span> <\/span><span>one<\/span><span> <\/span><span>for<\/span><span> <\/span><span>every<\/span><span> <\/span><span>agent<\/span><span>,<\/span><span> <\/span><span>for<\/span><span> <\/span><span>every<\/span><span> <\/span><span>upstream<\/span><span> <\/span><span>branch<\/span><span>,<\/span><span> <\/span><span>or<\/span><span> <\/span><span>every<\/span><span> <\/span><span>user<\/span><span>.<\/span><\/div><\/div><div><div><span>const<\/span><span> <\/span><span>created<\/span><span> <\/span><span>=<\/span><span> <\/span><span>await<\/span><span> <\/span><span>env<\/span><span>.<\/span><span>PROD_ARTIFACTS<\/span><span>.<\/span><span>create<\/span><span>(<\/span><span>\"agent-007\"<\/span><span>)<\/span><span>;<\/span><\/div><\/div><div><div><span>const<\/span><span> <\/span><span>remote<\/span><span> <\/span><span>=<\/span><span> (<\/span><span>await<\/span><span> <\/span><span>created<\/span><span>.<\/span><span>repo<\/span><span>.<\/span><span>info<\/span><span>())<\/span><span>?.<\/span><span>remote<\/span><span>;<\/span><\/div><\/div><\/code><\/pre>\n<div>\n<div><\/div>\n<\/div>\n<\/figure>\n<\/div>\n<p>Or, use the REST API to create a repo inside a namespace from your agent(s) running on any platform:<\/p>\n<div>\n<figure>\n<pre data-language=\"bash\"><code class=\"language-bash\"><div><div><span>curl<\/span><span> <\/span><span>--request<\/span><span> <\/span><span>POST<\/span><span> <\/span><span>\"https:\/\/artifacts.cloudflare.net\/v1\/api\/namespaces\/some-namespace\/repos\"<\/span><span> <\/span><span>--header<\/span><span> <\/span><span>\"Authorization: Bearer <\/span><span>$CLOUDFLARE_API_TOKEN<\/span><span>\"<\/span><span> <\/span><span>--header<\/span><span> <\/span><span>\"Content-Type: application\/json\"<\/span><span> <\/span><span>--data<\/span><span> <\/span><span>'{\"name\":\"agent-007\"}'<\/span><\/div><\/div><\/code><\/pre>\n<div>\n<div><\/div>\n<\/div>\n<\/figure>\n<\/div>\n<p>Any Git client that speaks smart HTTP can use the returned remote URL:<\/p>\n<div>\n<figure>\n<pre data-language=\"bash\"><code class=\"language-bash\"><div><div><span># Agents know git.<\/span><\/div><\/div><div><div><span># Every repository can act as a git repo, allowing agents to interact with Artifacts the way they know best: using the git CLI.<\/span><\/div><\/div><div><div><span>git<\/span><span> <\/span><span>clone<\/span><span> <\/span><span>https:\/\/x:<\/span><span>${<\/span><span>REPO_TOKEN<\/span><span>}<\/span><span>@artifacts.cloudflare.net\/some-namespace\/agent-007.git<\/span><\/div><\/div><\/code><\/pre>\n<div>\n<div><\/div>\n<\/div>\n<\/figure>\n<\/div>\n<p>To learn more, refer to <a href=\"https:\/\/developers.cloudflare.com\/artifacts\/get-started\/\">Get started<\/a>, <a href=\"https:\/\/developers.cloudflare.com\/artifacts\/api\/workers-binding\/\">Workers binding<\/a>, and <a href=\"https:\/\/developers.cloudflare.com\/artifacts\/api\/git-protocol\/\">Git protocol<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Artifacts is now in private beta. Artifacts is Git-compatible storage built for scale: create tens of millions of repos, fork from any remote, and hand off a URL to any Git client. It provides a versioned filesystem for storing and exchanging file trees across Workers, the REST API, and any Git client, running locally or [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-378","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/posts\/378","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/comments?post=378"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/posts\/378\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/media?parent=378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/categories?post=378"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/tags?post=378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}