<!DOCTYPE html><html lang="en" dir="ltr" class="font-sans"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Govern and secure enterprise AI — Speakeasy</title><meta name="description" content="The AI control plane for discovering, securing, and governing AI agents, MCP servers, and AI applications across your enterprise."><link rel="preload" href="/fonts/diatype/ABCDiatype-Regular.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/diatype/ABCDiatype-Light.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/tobias/Tobias-Thin.woff2" as="font" type="font/woff2" crossorigin><link rel="stylesheet" href="/_astro/global.CJBfv7NR.css"><style>@font-face{font-family:ABCDiatype;src:url(/fonts/diatype/ABCDiatype-Light.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:ABCDiatype;src:url(/fonts/diatype/ABCDiatype-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:ABCDiatype;src:url(/fonts/diatype/ABCDiatype-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:ABCDiatype;src:url(/fonts/diatype/ABCDiatype-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:ABCDiatype;src:url(/fonts/diatype/ABCDiatype-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:ABCDiatypeMono;src:url(/fonts/diatype-mono/ABCDiatypeMono-Light.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:ABCDiatypeMono;src:url(/fonts/diatype-mono/ABCDiatypeMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Tobias;src:url(/fonts/tobias/Tobias-Thin.woff2)format("woff2");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Tobias;src:url(/fonts/tobias/Tobias-Light.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Tobias;src:url(/fonts/tobias/Tobias-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Tobias Fallback;src:local(Times New Roman),local(Times);size-adjust:120.13%;ascent-override:78.34%;descent-override:19.31%;line-gap-override:0%}@font-face{font-family:SpeakeasyAscii;src:url(/fonts/speakeasy/speakeasy-ascii.woff2)format("woff2");font-display:swap}:root{--font-diatype:"ABCDiatype", sans-serif;--font-diatype-mono:"ABCDiatypeMono", monospace;--font-tobias:"Tobias", "Tobias Fallback", serif;--font-speakeasy:"SpeakeasyAscii", "ABCDiatypeMono", monospace}</style><link rel="canonical" href="https://www.speakeasy.com/"><link rel="preload" as="image" href="/webgl/hand-ascii-poster.webp" type="image/webp" fetchpriority="high" media="(min-width: 1024px) and (prefers-reduced-motion: no-preference)"> <link rel="preload" as="video" href="/webgl/hand.mp4" type="video/mp4" crossorigin="anonymous" media="(min-width: 1024px) and (prefers-reduced-motion: no-preference)"> <link rel="ai-catalog" href="/.well-known/ai-catalog.json" type="application/ai-catalog+json"><meta property="og:type" content="website"><meta property="og:site_name" content="Speakeasy"><meta property="og:title" content="Govern and secure enterprise AI — Speakeasy"><meta property="og:description" content="The AI control plane for discovering, securing, and governing AI agents, MCP servers, and AI applications across your enterprise."><meta property="og:url" content="https://www.speakeasy.com/"><meta property="og:locale" content="en_US"><meta property="og:image" content="https://www.speakeasy.com/api/og?title=Govern%20and%20secure%20enterprise%20AI"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="og:image:alt" content="Govern and secure enterprise AI — Speakeasy"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@speakeasydev"><meta name="twitter:title" content="Govern and secure enterprise AI — Speakeasy"><meta name="twitter:description" content="The AI control plane for discovering, securing, and governing AI agents, MCP servers, and AI applications across your enterprise."><meta name="twitter:image" content="https://www.speakeasy.com/api/og?title=Govern%20and%20secure%20enterprise%20AI"><link rel="icon" type="image/png" href="/favicon-96x96-light.png" media="(prefers-color-scheme: light)"><link rel="icon" type="image/png" href="/favicon-96x96-dark.png" media="(prefers-color-scheme: dark)"><link rel="apple-touch-icon" href="/apple-touch-icon-light.png"><link rel="dns-prefetch" href="https://metrics.speakeasy.com"><link rel="preconnect" href="https://metrics.speakeasy.com" crossorigin="anonymous"><script>
      try {
        var stored = localStorage.getItem("speakeasy-theme");
        var theme =
          stored && stored !== "system"
            ? stored
            : window.matchMedia("(prefers-color-scheme: dark)").matches
              ? "dark"
              : "light";
        document.documentElement.classList.add(theme);
        document.documentElement.style.colorScheme = theme;
      } catch (e) {}
    </script><script>
      try {
        if (localStorage.getItem("speakeasy-view-mode") === "agent") {
          document.documentElement.classList.add("agent-mode");
        }
      } catch (e) {}
    </script><script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.speakeasy.com/#organization","name":"Speakeasy","legalName":"Speakeasy API, Inc.","url":"https://www.speakeasy.com","logo":{"@type":"ImageObject","url":"https://www.speakeasy.com/assets/og-images/og-speakeasy.png","width":1200,"height":630},"description":"Speakeasy is the AI control plane for the AI-native enterprise. Connect, distribute, secure, and observe every AI agent and the systems they reach.","foundingDate":"2021","sameAs":["https://github.com/speakeasy-api","https://www.linkedin.com/company/speakeasyapi","https://x.com/speakeasydev","https://www.youtube.com/@SpeakeasyDev","https://www.crunchbase.com/organization/speakeasy-1c97","https://www.g2.com/products/speakeasy/reviews"],"address":{"@type":"PostalAddress","streetAddress":"1390 Market Street, Suite 200","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94102","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"sales","email":"sales@speakeasy.com","url":"https://www.speakeasy.com/talk-to-us","areaServed":"Worldwide","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"customer support","email":"support@speakeasy.com","url":"https://www.speakeasy.com/contact","areaServed":"Worldwide","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"security","email":"security@speakeasy.com","url":"https://www.speakeasy.com/.well-known/security.txt","areaServed":"Worldwide","availableLanguage":["English"]}]},{"@type":"WebSite","@id":"https://www.speakeasy.com/#website","url":"https://www.speakeasy.com","name":"Speakeasy","description":"The AI control plane for the AI-native enterprise. Connect, distribute, secure, and observe every AI agent across the organization.","publisher":{"@id":"https://www.speakeasy.com/#organization"},"inLanguage":"en-US"},{"@type":"SoftwareApplication","@id":"https://www.speakeasy.com/#software","name":"Speakeasy AI Control Plane","applicationCategory":"BusinessApplication","applicationSubCategory":"AI Governance Platform","operatingSystem":"Web, Cloud, Self-hosted","url":"https://www.speakeasy.com","description":"AI control plane that connects every AI agent (Claude, ChatGPT, Cursor, Copilot, Codex) to every system, with SSO, RBAC, runtime guardrails, and a full audit trail.","brand":{"@id":"https://www.speakeasy.com/#organization"},"publisher":{"@id":"https://www.speakeasy.com/#organization"},"offers":{"@type":"Offer","url":"https://www.speakeasy.com/pricing","priceCurrency":"USD","availability":"https://schema.org/InStock"},"featureList":["MCP server provisioning and gateway","OAuth 2.1 with PKCE and Dynamic Client Registration","SSO integration (Okta, Microsoft Entra ID, Auth0, WorkOS, Google Workspace)","Role-based access control down to the tool level","Real-time prompt and tool-call inspection","PII and data exfiltration blocking","Prompt injection and shadow MCP detection","SIEM integration for security events","Token, adoption, and outcome analytics","OpenAPI to MCP, Terraform, and CLI generation"],"audience":{"@type":"BusinessAudience","audienceType":"Enterprise security, platform, and AI engineering teams"}},{"@type":"WebPage","@id":"https://www.speakeasy.com/#webpage","url":"https://www.speakeasy.com","name":"Speakeasy: the AI control plane","isPartOf":{"@id":"https://www.speakeasy.com/#website"},"about":{"@id":"https://www.speakeasy.com/#software"},"primaryImageOfPage":{"@type":"ImageObject","url":"https://www.speakeasy.com/assets/og-images/og-speakeasy.png"},"speakable":{"@type":"SpeakableSpecification","cssSelector":["h1","[data-speakable]",".bsmnt-text-display-lg"]},"inLanguage":"en-US"}]}</script><script type="module" src="/_astro/Base.astro_astro_type_script_index_0_lang.BUxuwUVT.js"></script><script type="module" src="/_astro/Base.astro_astro_type_script_index_1_lang.BKYTjLQd.js"></script><vercel-speed-insights data-props="{}" data-params="{}" data-pathname="/"></vercel-speed-insights> <script type="module">var e=()=>{window.si||(window.si=function(...e){(window.siq=window.siq||[]).push(e)})};function t(){return typeof window<`u`}function n(){return`production`}function r(){return n()===`development`}function i(e,t){if(!e||!t)return e;let n=e;try{let e=Object.entries(t);for(let[t,r]of e)if(!Array.isArray(r)){let e=a(r);e.test(n)&&(n=n.replace(e,`/[${t}]`))}for(let[t,r]of e)if(Array.isArray(r)){let e=a(r.join(`/`));e.test(n)&&(n=n.replace(e,`/[...${t}]`))}return n}catch{return e}}function a(e){return RegExp(`/${o(e)}(?=[/?#]|$)`)}function o(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function s(e){return e.scriptSrc?e.scriptSrc:r()?`https://va.vercel-scripts.com/v1/speed-insights/script.debug.js`:e.dsn?`https://va.vercel-scripts.com/v1/speed-insights/script.js`:e.basePath?`${e.basePath}/speed-insights/script.js`:`/_vercel/speed-insights/script.js`}function c(n={}){var i;if(!t()||n.route===null)return null;e();let a=s(n);if(document.head.querySelector(`script[src*="${a}"]`))return null;n.beforeSend&&((i=window.si)==null||i.call(window,`beforeSend`,n.beforeSend));let o=document.createElement(`script`);return o.src=a,o.defer=!0,o.dataset.sdkn=`@vercel/speed-insights`+(n.framework?`/${n.framework}`:``),o.dataset.sdkv=`1.3.1`,n.sampleRate&&(o.dataset.sampleRate=n.sampleRate.toString()),n.route&&(o.dataset.route=n.route),n.endpoint?o.dataset.endpoint=n.endpoint:n.basePath&&(o.dataset.endpoint=`${n.basePath}/speed-insights/vitals`),n.dsn&&(o.dataset.dsn=n.dsn),r()&&n.debug===!1&&(o.dataset.debug=`false`),o.onerror=()=>{console.log(`[Vercel Speed Insights] Failed to load script from ${a}. Please check if any content blockers are enabled and try again.`)},document.head.appendChild(o),{setRoute:e=>{o.dataset.route=e??void 0}}}function l(){try{return}catch{}}customElements.define(`vercel-speed-insights`,class extends HTMLElement{constructor(){super();try{let e=JSON.parse(this.dataset.props??`{}`),t=JSON.parse(this.dataset.params??`{}`);c({route:i(this.dataset.pathname??``,t),...e,framework:`astro`,basePath:l(),beforeSend:window.speedInsightsBeforeSend})}catch(e){throw Error(`Failed to parse SpeedInsights properties: ${e}`)}}});</script><link rel="stylesheet" href="/_astro/brandbook.CmfMAmKx.css"><link rel="stylesheet" href="/_astro/Marketing.CUMu06kj.css"><style>@property --rotation{syntax:"<angle>";inherits:false;initial-value:0deg}@property --x{syntax:"<length>";inherits:false;initial-value:0}@keyframes rotate{0%{--rotation:0deg}32.8228%{--rotation:0deg}50%{--rotation:180deg}82.8228%{--rotation:180deg}to{--rotation:360deg}}@keyframes shimmer{0%{--x:20px}32.8228%{--x:calc(var(--width) - 20px)}50%{--x:calc(var(--width) - 20px)}82.8228%{--x:20px}to{--x:20px}}.snippet-inner{z-index:2}.snippet{box-sizing:border-box;padding:2px}.snippet:before{content:"";z-index:1;visibility:hidden;width:100%;height:100%;display:block;position:absolute}.shimmer:before{content:"";background:conic-gradient(from calc(var(--rotation) - 80deg) at var(--x) 30px, transparent 0, #fff6 20%, transparent 25%), transparent;visibility:visible;z-index:1;padding:1px;transition:all .2s;animation:-.64s linear 5s infinite rotate,-.64s linear 5s infinite shimmer;display:block;position:absolute;inset:0;transform:translateZ(0)}.highlighted-code{transition:background-color .4s}
</style><script type="module" src="/_astro/page.LAbJoB63.js"></script></head> <body>   <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event("astro:only"));})();</script><script>(()=>{var g=Object.defineProperty;var w=(a,s,c)=>s in a?g(a,s,{enumerable:!0,configurable:!0,writable:!0,value:c}):a[s]=c;var l=(a,s,c)=>w(a,typeof s!="symbol"?s+"":s,c);var E=new Set(["__proto__","constructor","prototype"]);{let a={0:t=>y(t),1:t=>c(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(c(t)),5:t=>new Set(c(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>Number.POSITIVE_INFINITY*t},s=t=>{let[p,e]=t;return p in a?a[p](e):void 0},c=t=>t.map(s),y=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([p,e])=>[p,s(e)]));class f extends HTMLElement{constructor(){super(...arguments);l(this,"Component");l(this,"hydrator");l(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let r=this.querySelectorAll("astro-slot"),n={},d=this.querySelectorAll("template[data-astro-template]");for(let o of d){let i=o.closest(this.tagName);i!=null&&i.isSameNode(this)&&(n[o.getAttribute("data-astro-template")||"default"]=o.innerHTML,o.remove())}for(let o of r){let i=o.closest(this.tagName);i!=null&&i.isSameNode(this)&&(n[o.getAttribute("name")||"default"]=o.innerHTML)}let u;try{u=this.hasAttribute("props")?y(JSON.parse(this.getAttribute("props"))):{}}catch(o){let i=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(i+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${i}`,this.getAttribute("props"),o),o}let h;await this.hydrator(this)(this.Component,u,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});l(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),r.disconnect(),this.childrenConnectedCallback()},r=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});r.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}getRetryImportUrl(e){let r=new URL(e,document.baseURI);return r.searchParams.set("astro-retry",Date.now().toString()),r.toString()}async importWithRetry(e){try{return await import(e)}catch(r){return await new Promise(n=>setTimeout(n,1e3)),import(this.getRetryImportUrl(e))}}handleHydrationError(e){let r=this.getAttribute("component-url"),n=new CustomEvent("astro:hydration-error",{cancelable:!0,bubbles:!0,composed:!0,detail:{error:e,componentUrl:r}});this.dispatchEvent(n)&&console.error(`[astro-island] Error hydrating ${r}`,e)}async start(){let e=JSON.parse(this.getAttribute("opts")),r=this.getAttribute("client");if(Astro[r]===void 0){window.addEventListener(`astro:${r}`,()=>this.start(),{once:!0});return}try{await Astro[r](async()=>{let n=this.getAttribute("renderer-url");try{let[d,{default:u}]=await Promise.all([this.importWithRetry(this.getAttribute("component-url")),n?this.importWithRetry(n):Promise.resolve({default:()=>()=>{}})]),h=this.getAttribute("component-export")||"default";if(h.includes(".")){this.Component=d;for(let m of h.split(".")){if(E.has(m)||!this.Component||typeof this.Component!="object"&&typeof this.Component!="function"||!Object.hasOwn(this.Component,m))throw new Error(`Invalid component export path: ${h}`);this.Component=this.Component[m]}}else{if(E.has(h))throw new Error(`Invalid component export path: ${h}`);this.Component=d[h]}return this.hydrator=u,this.hydrate}catch(d){return this.handleHydrationError(d),()=>{}}},e,this)}catch(n){this.handleHydrationError(n)}}attributeChangedCallback(){this.hydrate()}}l(f,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",f)}})();</script><astro-island uid="2ceRBV" component-url="/_astro/site-ascii-environment.2L40SRt-.js" component-export="default" renderer-url="/_astro/client.Ba23cQob.js" props="{}" ssr client="only" opts="{&quot;name&quot;:&quot;SiteAsciiEnvironment&quot;,&quot;value&quot;:&quot;react&quot;}"></astro-island> <div class="flex min-h-screen flex-col"> <script>(()=>{var l=(n,t)=>{let i=async()=>{await(await n())()},e=typeof t.value=="object"?t.value:void 0,s={timeout:e==null?void 0:e.timeout};"requestIdleCallback"in window?window.requestIdleCallback(i,s):setTimeout(i,s.timeout||200)};(self.Astro||(self.Astro={})).idle=l;window.dispatchEvent(new Event("astro:idle"));})();</script><astro-island uid="Z1aseh7" prefix="r4" component-url="/_astro/site-header.DUjJKafS.js" component-export="default" renderer-url="/_astro/client.Ba23cQob.js" props="{&quot;careersPreview&quot;:[0,{&quot;totalCount&quot;:[0,5],&quot;roles&quot;:[1,[[0,{&quot;title&quot;:[0,&quot;Account Executive&quot;],&quot;locations&quot;:[1,[[0,&quot;San Francisco&quot;]]],&quot;detailsUrl&quot;:[0,&quot;https://jobs.ashbyhq.com/Speakeasy/b0c122c2-f0db-46ed-8c43-7bb72a4638a0&quot;]}],[0,{&quot;title&quot;:[0,&quot;Forward Deployed Engineer&quot;],&quot;locations&quot;:[1,[[0,&quot;San Francisco&quot;]]],&quot;detailsUrl&quot;:[0,&quot;https://jobs.ashbyhq.com/Speakeasy/def210b2-b6aa-421b-84c4-dcd278f95db9&quot;]}],[0,{&quot;title&quot;:[0,&quot;Platform Engineer (SRE) - AI Control Plane&quot;],&quot;locations&quot;:[1,[[0,&quot;San Francisco&quot;]]],&quot;detailsUrl&quot;:[0,&quot;https://jobs.ashbyhq.com/Speakeasy/43904ba3-3792-4cc4-b097-6e98ca9a1b4b&quot;]}],[0,{&quot;title&quot;:[0,&quot;Product Engineer - AI Control Plane&quot;],&quot;locations&quot;:[1,[[0,&quot;San Francisco&quot;]]],&quot;detailsUrl&quot;:[0,&quot;https://jobs.ashbyhq.com/Speakeasy/df5263bd-c529-4563-9d93-136a5d5b1dd5&quot;]}],[0,{&quot;title&quot;:[0,&quot;Product Engineer (Security) - AI Control Plane&quot;],&quot;locations&quot;:[1,[[0,&quot;San Francisco&quot;]]],&quot;detailsUrl&quot;:[0,&quot;https://jobs.ashbyhq.com/Speakeasy/7994e807-4a8f-4f2b-b16e-f1147a396a7b&quot;]}]]]}]}" ssr client="idle" opts="{&quot;name&quot;:&quot;SiteHeader&quot;,&quot;value&quot;:true}" await-children><div class="bg-gradient-primary top-0 z-[1000] h-1 w-full sticky"></div><header class="bg-background-pure border-b-border top-1 z-[999] flex h-[var(--header-height)] w-full flex-col border-b sticky"><div class="bsmnt-container-xl relative flex h-full w-full items-center justify-between py-1 md:px-6 xl:px-12"><div role="button" tabindex="-1" type="button" id="radix-_r4R_6_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><a href="/"><div class="group/logo flex items-center"><div class="relative size-7 md:size-6 [perspective:600px]"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30" fill="none" class="size-full scale-[0.87] [transform-style:preserve-3d]"><title>Speakeasy Logo</title><g class="[transform-box:fill-box] [transform-origin:center] transition-transform duration-700 ease-out [transition-delay:0ms] motion-safe:group-hover/logo:[transform:rotateY(360deg)]"><path fill="var(--foreground)" d="M29.095 3.902 8.456.971 0 8.305l20.639 2.934 8.456-7.337Z"></path></g><g class="[transform-box:fill-box] [transform-origin:center] transition-transform duration-700 ease-out [transition-delay:60ms] motion-safe:group-hover/logo:[transform:rotateY(360deg)]"><path fill="var(--foreground)" d="M27.627 6.658 24.69 9.205 20.64 12.72l-7.923-1.126L1.469 9.996 0 11.271l11.246 1.596-1.467 1.275-8.311-1.181L0 14.235l20.639 2.932 8.456-7.334-2.937-.418 2.937-2.549-1.468-.208Z"></path></g><g class="[transform-box:fill-box] [transform-origin:center] transition-transform duration-700 ease-out [transition-delay:120ms] motion-safe:group-hover/logo:[transform:rotateY(360deg)]"><path fill="var(--foreground)" d="m20.639 18.65-19.17-2.724L0 17.201l20.639 2.931 8.456-7.334-1.468-.208-6.988 6.06Z"></path></g><g class="[transform-box:fill-box] [transform-origin:center] transition-transform duration-700 ease-out [transition-delay:180ms] motion-safe:group-hover/logo:[transform:rotateY(360deg)]"><path fill="var(--foreground)" d="m20.639 23.1 8.456-7.336-1.468-.207-6.988 6.06-6.84-.972-9.394-1.333-2.936-.417L0 20.169l2.937.416L0 23.132l20.639 2.931 8.456-7.334-1.468-.208-6.986 6.062-9.78-1.39 1.468-1.273 8.31 1.18Z"></path></g><g class="[transform-box:fill-box] [transform-origin:center] transition-transform duration-700 ease-out [transition-delay:240ms] motion-safe:group-hover/logo:[transform:rotateY(360deg)]"><path fill="var(--foreground)" d="m20.639 27.548-19.17-2.724L0 26.1l20.639 2.931 8.456-7.336-1.468-.208-6.988 6.062Z"></path></g></svg></div><p class="sr-only">Speakeasy Logo</p><svg width="106" height="22" viewBox="0 0 106 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="hidden md:block mt-px ml-[9px] w-[6.5rem] h-auto"><path d="M102.372 4.72596L98.9819 13.7316L95.4811 4.72596H93.1875L97.8247 16.2969L97.2496 17.6066C97.087 17.995 96.9453 18.2702 96.8328 18.4212L96.8231 18.4347C96.7314 18.5885 96.6105 18.6937 96.4535 18.7557C96.2882 18.8232 96.0284 18.8569 95.6811 18.8569H93.8696V20.7964H96.2549C96.8106 20.7964 97.2634 20.7087 97.6038 20.5361C97.9455 20.3621 98.2345 20.091 98.4596 19.7295C98.6763 19.3829 98.9277 18.8596 99.2042 18.1731L104.665 4.72461H102.37L102.372 4.72596Z" fill="var(--foreground)"></path><path d="M91.0858 9.92009C90.4231 9.71103 89.566 9.54378 88.538 9.42509C87.8114 9.33742 87.2613 9.25515 86.9001 9.18232C86.575 9.11353 86.3041 8.9827 86.0944 8.79253C85.8929 8.61044 85.7943 8.35148 85.7943 8.00081C85.7943 7.52604 86.0138 7.15513 86.4681 6.86515C86.9307 6.55629 87.553 6.39983 88.3143 6.39983C89.0756 6.39983 89.6855 6.58461 90.1786 6.95012C90.6718 7.31699 90.9469 7.76747 91.0191 8.32855L91.0344 8.44724H93.1863L93.1752 8.30158C93.0807 7.10928 92.5764 6.17729 91.6762 5.53393C90.7996 4.89597 89.6466 4.57227 88.2463 4.57227C87.3905 4.57227 86.607 4.72602 85.9207 5.02815C85.2289 5.31813 84.6704 5.73759 84.2592 6.27575C83.8619 6.8166 83.6605 7.44107 83.6605 8.13433C83.6605 8.90717 83.873 9.52895 84.2939 9.98483C84.7065 10.4164 85.2511 10.7347 85.9138 10.9344C86.5598 11.1286 87.4016 11.2877 88.413 11.4064C89.1228 11.4941 89.673 11.5831 90.0494 11.6708C90.419 11.753 90.7204 11.9068 90.9455 12.124C91.1705 12.3411 91.272 12.6459 91.272 13.0519C91.272 13.5267 91.0372 13.9043 90.5565 14.2064C90.0772 14.5018 89.4312 14.6529 88.6366 14.6529C87.7392 14.6529 86.996 14.4452 86.4278 14.0351C85.8763 13.6265 85.5943 13.1139 85.5651 12.4679L85.5595 12.3384H83.4062V12.4746C83.4243 13.729 83.9119 14.723 84.8621 15.4298C85.8137 16.1271 87.0835 16.4804 88.6366 16.4804C89.5063 16.4804 90.3106 16.3348 91.0274 16.0475C91.7498 15.7575 92.3319 15.3394 92.7584 14.8039C93.1877 14.2631 93.4058 13.6292 93.4058 12.9184C93.4058 12.1024 93.1863 11.4442 92.7542 10.9613C92.3416 10.4839 91.7804 10.1332 91.0872 9.91874L91.0858 9.92009Z" fill="var(--foreground)"></path><path d="M82.037 14.2455C81.9314 14.1349 81.8786 13.9568 81.8786 13.7194V8.82345C81.8786 7.4693 81.4465 6.41592 80.595 5.69703C79.7628 4.96601 78.5667 4.59375 77.0414 4.59375C75.6119 4.59375 74.4283 4.91745 73.5211 5.55406C72.6223 6.19742 72.0944 7.10514 71.9527 8.25023L71.9346 8.40129H74.0837L74.106 8.29339C74.2213 7.74579 74.5172 7.32228 75.0117 6.99723C75.5202 6.6587 76.1731 6.4874 76.9511 6.4874C77.8304 6.4874 78.5167 6.68567 78.9946 7.07951C79.485 7.472 79.7239 8.0061 79.7239 8.7115V9.35486H76.4246C74.8714 9.35486 73.6628 9.67182 72.8432 10.2882L72.8307 10.2949C72.0041 10.9275 71.5859 11.846 71.5859 13.0275C71.5859 14.0903 71.9971 14.9414 72.8098 15.5605C73.6253 16.1701 74.7103 16.479 76.0342 16.479C77.6512 16.479 78.9321 15.9206 79.8462 14.8173C79.9142 15.257 80.0865 15.609 80.3616 15.8626C80.7075 16.1823 81.2798 16.3455 82.062 16.3455H83.2317V14.406H82.5204C82.2995 14.406 82.1412 14.3534 82.0384 14.2441L82.037 14.2455ZM79.7211 11.1622V11.583C79.7211 12.5042 79.4044 13.2568 78.7807 13.8206C78.1527 14.3736 77.2747 14.6528 76.1703 14.6528C75.4257 14.6528 74.8297 14.4896 74.3977 14.1686C73.9712 13.8516 73.7642 13.4429 73.7642 12.9183C73.7642 12.3275 73.9601 11.8986 74.3616 11.6073C74.77 11.3119 75.4021 11.1608 76.2384 11.1608H79.7211V11.1622Z" fill="var(--foreground)"></path><path d="M67.9452 5.25464C67.1033 4.8163 66.1253 4.59375 65.0376 4.59375C63.9498 4.59375 62.9371 4.84732 62.0786 5.34636C61.22 5.83191 60.5379 6.53056 60.0545 7.42479C59.5877 8.31632 59.3516 9.36295 59.3516 10.5364C59.3516 11.7098 59.5961 12.7416 60.0795 13.6493C60.5782 14.5422 61.2826 15.2489 62.173 15.7493C63.0608 16.2335 64.1096 16.479 65.2904 16.479C66.6463 16.479 67.8091 16.1013 68.7496 15.3568C69.6873 14.5975 70.2819 13.6129 70.5166 12.43L70.5486 12.2695H68.3717L68.3439 12.3693C68.155 13.0612 67.7716 13.6129 67.2062 14.0081C66.6519 14.3898 65.9614 14.584 65.1543 14.584C64.1138 14.584 63.2594 14.2603 62.6176 13.6237C61.9744 12.9844 61.6326 12.1171 61.6021 11.0462V11.026H70.6681L70.6792 10.9019C70.7097 10.5377 70.725 10.2801 70.725 10.1088C70.6945 8.99474 70.4333 8.00745 69.9512 7.17527C69.4664 6.34039 68.7926 5.69434 67.948 5.25329L67.9452 5.25464ZM68.4814 9.24561H61.7327C61.8452 8.44715 62.2092 7.78626 62.8135 7.27912C63.4567 6.73962 64.2124 6.46582 65.0612 6.46582C66.0156 6.46582 66.8102 6.72479 67.4229 7.23462C68.0147 7.71612 68.3703 8.39185 68.4801 9.24561H68.4814Z" fill="var(--foreground)"></path><path d="M59.6949 4.72835H57.0679L51.3291 10.6224V0.5H49.1716V14.4084H47.5879C47.3671 14.4084 47.2087 14.3558 47.1059 14.2465C47.0003 14.1359 46.9475 13.9579 46.9475 13.7205V8.82453C46.9475 7.47037 46.5155 6.417 45.6639 5.69811C44.8317 4.96708 43.6356 4.59483 42.1103 4.59483C40.6808 4.59483 39.4972 4.91853 38.59 5.55514C37.6912 6.1985 37.1633 7.10621 37.0216 8.2513L37.0036 8.40237H39.1527L39.1749 8.29447C39.2902 7.74687 39.5861 7.32336 40.0806 6.99831C40.5891 6.65977 41.242 6.48713 42.02 6.48713C42.8994 6.48713 43.5856 6.6854 44.0635 7.07924C44.5539 7.47172 44.7928 8.00448 44.7928 8.71123V9.35459H41.4935C39.9403 9.35459 38.7317 9.67155 37.901 10.296C37.0744 10.9286 36.6562 11.8471 36.6562 13.0286C36.6562 14.0914 37.0675 14.9425 37.8801 15.5616C38.6956 16.1712 39.7806 16.4801 41.1045 16.4801C42.7215 16.4801 44.0024 15.9217 44.9165 14.8184C44.9846 15.2581 45.1568 15.6088 45.4319 15.8637C45.7778 16.1833 46.3501 16.3465 47.1323 16.3465H49.1744H51.3319V13.2606L53.5143 11.0378L57.3138 16.2885L57.3555 16.3465H59.963L55.0619 9.52588L59.6977 4.727L59.6949 4.72835ZM39.4305 11.6084C39.8389 11.313 40.471 11.1619 41.3073 11.1619H44.7901V11.5827C44.7901 12.5039 44.4733 13.2565 43.8496 13.8203C43.2216 14.3733 42.3437 14.6525 41.2392 14.6525C40.4946 14.6525 39.8987 14.4893 39.4666 14.1683C39.0401 13.8513 38.8331 13.4427 38.8331 12.918C38.8331 12.3272 39.029 11.8983 39.4305 11.607V11.6084Z" fill="var(--foreground)"></path><path d="M33.0116 5.25464C32.1698 4.8163 31.1918 4.59375 30.104 4.59375C29.0163 4.59375 28.0035 4.84732 27.145 5.34636C26.2851 5.83191 25.6044 6.53056 25.1209 7.42479C24.6541 8.31632 24.418 9.36295 24.418 10.5364C24.418 11.7098 24.6625 12.7416 25.1459 13.6493C25.6446 14.5422 26.349 15.2489 27.2395 15.7493C28.1272 16.2335 29.176 16.479 30.3555 16.479C31.7113 16.479 32.8755 16.1013 33.8146 15.3568C34.7523 14.5975 35.3469 13.6129 35.5817 12.43L35.6136 12.2695H33.4367L33.4089 12.3693C33.22 13.0612 32.8366 13.6129 32.2712 14.0081C31.7169 14.3898 31.0264 14.584 30.2193 14.584C29.1788 14.584 28.3244 14.2603 27.6826 13.6237C27.0394 12.9844 26.6977 12.1171 26.6685 11.0462V11.026H35.7345L35.7456 10.9019C35.7761 10.5377 35.7914 10.2801 35.7914 10.1088C35.7609 8.99339 35.4997 8.00745 35.0176 7.17527C34.5328 6.34039 33.859 5.69434 33.0144 5.25329L33.0116 5.25464ZM33.5479 9.24561H26.7991C26.9116 8.44715 27.2756 7.78626 27.8799 7.27912C28.5231 6.73962 29.2788 6.46582 30.1276 6.46582C31.082 6.46582 31.8766 6.72479 32.4893 7.23462C33.0811 7.71612 33.4367 8.39185 33.5465 9.24561H33.5479Z" fill="var(--foreground)"></path><path d="M20.7354 5.3005C19.8783 4.83113 18.8836 4.59375 17.7792 4.59375C16.1593 4.59375 14.8424 5.18451 13.8616 6.34848L13.6379 4.72728H11.75V20.7977H13.9074V14.8942C14.2714 15.3326 14.734 15.6954 15.2855 15.9759H15.2883C15.9774 16.3118 16.8151 16.4803 17.7806 16.4803C18.8711 16.4803 19.8658 16.2268 20.7396 15.7277C21.6134 15.2274 22.3024 14.5206 22.7859 13.6277C23.2832 12.7362 23.5361 11.6963 23.5361 10.5377C23.5361 9.31845 23.2832 8.24888 22.7859 7.3587C22.301 6.46448 21.612 5.77121 20.7368 5.30185L20.7354 5.3005ZM21.33 10.5377C21.33 11.73 20.9799 12.7173 20.2881 13.4753C19.6157 14.2131 18.7099 14.5867 17.5958 14.5867C16.8762 14.5867 16.2219 14.414 15.6523 14.0728C15.0966 13.7316 14.659 13.2487 14.352 12.6377C14.0422 12.0065 13.8838 11.2849 13.8838 10.4932C13.8838 9.70149 14.0408 9.01767 14.3506 8.41613C14.6576 7.80514 15.0952 7.32903 15.6509 7.00263C16.2219 6.66139 16.8762 6.48875 17.5958 6.48875C18.7099 6.48875 19.6157 6.87045 20.2895 7.62441C20.9799 8.36622 21.3314 9.34677 21.3314 10.5377H21.33Z" fill="var(--foreground)"></path><path d="M8.1483 9.92009C7.48565 9.71103 6.6285 9.54378 5.60049 9.42509C4.87532 9.33742 4.32381 9.25515 3.96261 9.18232C3.63754 9.11353 3.36664 8.9827 3.15687 8.79253C2.95544 8.61044 2.8568 8.35148 2.8568 8.00081C2.8568 7.52604 3.0763 7.15513 3.53057 6.86515C3.99318 6.55629 4.61554 6.39983 5.37683 6.39983C6.13812 6.39983 6.74798 6.58461 7.24115 6.95012C7.73431 7.31564 8.00938 7.76747 8.08162 8.32855L8.0969 8.44724H10.2488L10.2377 8.30158C10.1432 7.10928 9.63892 6.17729 8.73871 5.53393C7.86212 4.89597 6.70908 4.57227 5.30875 4.57227C4.453 4.57227 3.66949 4.72602 2.98322 5.02815C2.29139 5.31813 1.73293 5.73759 1.32173 6.27575C0.924413 6.81525 0.722976 7.44107 0.722976 8.13433C0.722976 8.90717 0.935526 9.52895 1.35646 9.98483C1.76905 10.4164 2.31362 10.7347 2.97627 10.9344C3.62226 11.1286 4.46412 11.2877 5.47546 11.4064C6.18535 11.4941 6.73547 11.5831 7.11195 11.6708C7.48148 11.753 7.78294 11.9068 8.00799 12.124C8.22471 12.3344 8.33445 12.6459 8.33445 13.0519C8.33445 13.5267 8.09968 13.9043 7.61901 14.2064C7.13973 14.5018 6.49375 14.6529 5.69912 14.6529C4.80169 14.6529 4.05847 14.4452 3.49028 14.0351C2.93876 13.6265 2.65676 13.1139 2.62758 12.4679L2.62202 12.3384H0.46875V12.4746C0.485421 13.729 0.974422 14.723 1.92325 15.4298C2.87486 16.1271 4.14599 16.4804 5.69774 16.4804C6.56738 16.4804 7.37173 16.3348 8.08856 16.0475C8.81095 15.7575 9.39303 15.3394 9.81952 14.8039C10.2488 14.2631 10.4669 13.6278 10.4669 12.9184C10.4669 12.1024 10.2474 11.4442 9.81535 10.9613C9.40276 10.4839 8.84152 10.1332 8.14691 9.91874L8.1483 9.92009Z" fill="var(--foreground)"></path></svg></div></a></div><!--$?--><template id="r4B:0"></template><!--/$--><div class="lg:hidden"><!--$?--><template id="r4B:1"></template><!--/$--></div></div></header><script>requestAnimationFrame(function(){$RT=performance.now()});</script><div hidden id="r4S:0"><div class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 hidden lg:block"><nav aria-label="Main" data-orientation="horizontal" dir="ltr" class="relative z-10 flex max-w-max flex-1 items-center justify-center"><div style="position:relative"><ul data-orientation="horizontal" class="group flex flex-1 list-none items-center justify-center space-x-1" dir="ltr"><li><button id="radix-_r4R_q_-trigger-Products" data-state="closed" aria-expanded="false" class="group relative inline-flex outline-none interact:before:opacity-100 min-h-[44px] w-max items-center justify-center px-1.5 xl:px-4 py-2 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 before:absolute before:opacity-0 before:top-px before:bottom-0 before:left-1/2 before:-translate-x-1/2 before:w-full xl:before:w-[calc(100%-1rem)] before:rounded-sm before:bg-neutral-200 dark:before:bg-neutral-850 before:z-[-1] before:transition-opacity before:duration-300 before:ease-out" data-radix-collection-item="">Products<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="relative top-[1px] mb-0.5 ml-1 size-4 text-current" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.11035 2.52148C8.8354 2.2972 8.43804 2.2972 8.16309 2.52148L8.10645 2.57324L4.92969 5.75L5.63672 6.45703L8.63672 3.45703L11.6367 6.45703L12.3437 5.75L9.16699 2.57324L9.11035 2.52148ZM9.16699 13.4268L12.3437 10.25L11.6367 9.54297L8.63672 12.543L5.63672 9.54297L4.92969 10.25L8.10645 13.4268L8.16309 13.4785C8.45766 13.7188 8.89239 13.7013 9.16699 13.4268Z" fill="currentColor"></path></svg></button><div class="left-0 top-0 absolute w-full md:w-auto duration-300 ease-out motion-safe:data-[motion^=from-]:animate-in motion-safe:data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out motion-safe:data-[motion=from-start]:slide-in-from-left-52 motion-safe:data-[motion=from-end]:slide-in-from-right-52 motion-safe:data-[motion=to-start]:slide-out-to-left-52 motion-safe:data-[motion=to-end]:slide-out-to-right-52 pointer-events-none opacity-0 bg-white dark:bg-black p-4 pb-4.5" id="radix-_r4R_q_-content-Products" aria-labelledby="radix-_r4R_q_-trigger-Products" data-orientation="horizontal" data-state="closed" aria-hidden="true" style="pointer-events:none" dir="ltr"><div class="flex gap-x-8"><div class="w-[33rem] flex flex-col"><p class="font-mono text-[0.75rem]/[1.66] font-light tracking-[0.03em] text-neutral-850 uppercase dark:text-neutral-300">AI Control Plane</p><ul class="relative grid flex-1 border border-neutral-300 dark:border-neutral-850 grid-cols-2 mt-4.5"><li aria-hidden="true" class="contents invisible"><div class="w-[7px] h-[7px] z-10 absolute border md:block -top-[4px] -left-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block -top-[4px] -right-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block -bottom-[4px] -left-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block -bottom-[4px] -right-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block left-1/2 -translate-x-1/2 -translate-y-1/2 top-1/2 dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div></li><li class="flex invisible border-r border-b border-neutral-300 dark:border-neutral-850"><a href="/product/agent-identity" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,var(--color-bsmnt-brand-terraform)_8%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[var(--color-bsmnt-brand-terraform)]"></span>Connect</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">Agent identity</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Govern every agent action with permissioned enterprise identity</p></a></li><li class="flex invisible border-b border-neutral-300 dark:border-neutral-850"><a href="/product/agent-security" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,var(--color-bsmnt-brand-swift)_8%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[var(--color-bsmnt-brand-swift)]"></span>Secure</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">Agent Security</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Detect shadow AI, prevent risky actions, stop data leaks in real time</p></a></li><li class="flex invisible border-r border-neutral-300 dark:border-neutral-850"><a href="/product/mcp-gateway" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,var(--color-bsmnt-brand-ruby)_10%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[var(--color-bsmnt-brand-ruby)]"></span>Distribute</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">MCP &amp; Skills gateway</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Empower your team with centralized MCPs &amp; skills</p></a></li><li class="flex invisible"><a href="/product/agent-observability" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,var(--color-bsmnt-brand-java)_8%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[var(--color-bsmnt-brand-java)]"></span>Observe</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">AI usage telemetry</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Track adoption, cost, and activity across the org</p></a></li></ul></div></div><div class="flex gap-2 border-t border-dashed border-neutral-300 dark:border-neutral-850 mt-6 pt-4"><a href="/resources/ai-control-plane" class="rounded-full border border-neutral-300 px-4 py-1.5 font-mono text-xs tracking-[0.03em] uppercase text-neutral-850 no-underline transition-colors dark:border-neutral-800 dark:text-neutral-300 interact:border-neutral-500 interact:bg-neutral-100 interact:text-[#111111] dark:interact:border-neutral-600 dark:interact:bg-neutral-900 dark:interact:text-white invisible" data-radix-collection-item="">What is an AI control plane?</a><a href="/changelog" class="rounded-full border border-neutral-300 px-4 py-1.5 font-mono text-xs tracking-[0.03em] uppercase text-neutral-850 no-underline transition-colors dark:border-neutral-800 dark:text-neutral-300 interact:border-neutral-500 interact:bg-neutral-100 interact:text-[#111111] dark:interact:border-neutral-600 dark:interact:bg-neutral-900 dark:interact:text-white invisible" data-radix-collection-item="">Product changelog</a></div></div></li><li><button id="radix-_r4R_q_-trigger-Docs" data-state="closed" aria-expanded="false" class="group relative inline-flex outline-none interact:before:opacity-100 min-h-[44px] w-max items-center justify-center px-1.5 xl:px-4 py-2 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 before:absolute before:opacity-0 before:top-px before:bottom-0 before:left-1/2 before:-translate-x-1/2 before:w-full xl:before:w-[calc(100%-1rem)] before:rounded-sm before:bg-neutral-200 dark:before:bg-neutral-850 before:z-[-1] before:transition-opacity before:duration-300 before:ease-out" data-radix-collection-item=""><a href="/docs/ai-control-plane" class="interact:underline">Docs</a><svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="relative top-[1px] mb-0.5 ml-1 size-4 text-current" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.11035 2.52148C8.8354 2.2972 8.43804 2.2972 8.16309 2.52148L8.10645 2.57324L4.92969 5.75L5.63672 6.45703L8.63672 3.45703L11.6367 6.45703L12.3437 5.75L9.16699 2.57324L9.11035 2.52148ZM9.16699 13.4268L12.3437 10.25L11.6367 9.54297L8.63672 12.543L5.63672 9.54297L4.92969 10.25L8.10645 13.4268L8.16309 13.4785C8.45766 13.7188 8.89239 13.7013 9.16699 13.4268Z" fill="currentColor"></path></svg></button><div class="left-0 top-0 absolute w-full md:w-auto duration-300 ease-out motion-safe:data-[motion^=from-]:animate-in motion-safe:data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out motion-safe:data-[motion=from-start]:slide-in-from-left-52 motion-safe:data-[motion=from-end]:slide-in-from-right-52 motion-safe:data-[motion=to-start]:slide-out-to-left-52 motion-safe:data-[motion=to-end]:slide-out-to-right-52 pointer-events-none opacity-0 bg-white dark:bg-black p-4 pb-4.5" id="radix-_r4R_q_-content-Docs" aria-labelledby="radix-_r4R_q_-trigger-Docs" data-orientation="horizontal" data-state="closed" aria-hidden="true" style="pointer-events:none" dir="ltr"><div class="flex gap-x-8"><div class="min-w-[16rem] flex flex-col"><p class="font-mono text-[0.75rem]/[1.66] font-light tracking-[0.03em] text-neutral-850 uppercase dark:text-neutral-300">AI Control Plane</p><a href="/docs/ai-control-plane" class="group relative mt-4.5 flex flex-1 flex-col gap-2 rounded-lg border border-dashed border-neutral-200 bg-white p-5 no-underline overflow-hidden transition-colors dark:border-neutral-800 dark:bg-black interact:border-neutral-400 interact:bg-neutral-50 dark:interact:border-neutral-600 dark:interact:bg-neutral-900 invisible" data-radix-collection-item=""><div class="flex items-start gap-3"><div class="grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-solid border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-800 dark:bg-neutral-700/40 group-interact:border-neutral-500 dark:group-interact:border-neutral-500"><span class="size-4 text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white [&amp;_svg]:size-[inherit]"><!--$?--><template id="r4B:2"></template><svg width="16" height="16" viewBox="0 0 24 24" aria-hidden="true"></svg><!--/$--></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em]">AI Control Plane</p><p class="text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-600">A single control plane to safely scale AI</p></div></div><div class="absolute inset-0 pointer-events-none overflow-hidden select-none font-mono text-[2rem] font-bold leading-[1.4] tracking-[0.15em] uppercase text-neutral-900/[0.04] dark:text-white/[0.04] transition-colors duration-300 group-interact:text-neutral-900/[0.08] dark:group-interact:text-white/[0.08]" aria-hidden="true"><span class="absolute bottom-21 right-20">Connect</span><span class="absolute bottom-14 right-14">Secure</span><span class="absolute bottom-7 right-8">Distribute</span><span class="absolute bottom-0 right-0">Observe</span></div></a></div><div class="min-w-[16rem]"><p class="font-mono text-[0.75rem]/[1.66] font-light tracking-[0.03em] text-neutral-850 uppercase dark:text-neutral-300">API Platform</p><ul class="space-y-1 mt-4.5"><li class="invisible"><a href="/docs/sdks/create-client-sdks" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-solid"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">SDKs</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Idiomatic, type-safe SDKs</p></div></a></li><li class="invisible"><a href="/docs/terraform/create-terraform" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-solid"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server" aria-hidden="true"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">Terraform</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Providers from OpenAPI</p></div></a></li><li class="invisible"><a href="/docs/cli-generation/create-cli" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-solid"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">CLI</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Your API in the terminal</p></div></a></li><li class="invisible"><a href="/docs/speakeasy-reference/cli/getting-started" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-solid"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"><!--$?--><template id="r4B:3"></template><svg width="16" height="16" viewBox="0 0 24 24" aria-hidden="true"></svg><!--/$--></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">Docs MCP</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Docs agents understand</p></div></a></li></ul></div></div><ul class="flex w-full gap-x-4 border-t border-dashed border-neutral-300 dark:border-neutral-850 mt-8"><li class="pt-1.5 lg:pt-1.5 mt-0.5 flex-1 invisible"><a href="/docs/speakeasy-reference/cli/getting-started" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none mt-0.5 flex-1 invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-dashed"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">Documentation Home</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Home for all Speakeasy product docs</p></div></a></li><li class="pt-1.5 lg:pt-1.5 mt-0.5 flex-1 invisible"><a href="/resources" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none mt-0.5 flex-1 invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-dashed"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">Resource Library</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Reference architecture and working definitions for the AI control plane</p></div></a></li></ul></div></li><li><button id="radix-_r4R_q_-trigger-Solutions" data-state="closed" aria-expanded="false" class="group relative inline-flex outline-none interact:before:opacity-100 min-h-[44px] w-max items-center justify-center px-1.5 xl:px-4 py-2 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 before:absolute before:opacity-0 before:top-px before:bottom-0 before:left-1/2 before:-translate-x-1/2 before:w-full xl:before:w-[calc(100%-1rem)] before:rounded-sm before:bg-neutral-200 dark:before:bg-neutral-850 before:z-[-1] before:transition-opacity before:duration-300 before:ease-out" data-radix-collection-item="">Solutions<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="relative top-[1px] mb-0.5 ml-1 size-4 text-current" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.11035 2.52148C8.8354 2.2972 8.43804 2.2972 8.16309 2.52148L8.10645 2.57324L4.92969 5.75L5.63672 6.45703L8.63672 3.45703L11.6367 6.45703L12.3437 5.75L9.16699 2.57324L9.11035 2.52148ZM9.16699 13.4268L12.3437 10.25L11.6367 9.54297L8.63672 12.543L5.63672 9.54297L4.92969 10.25L8.10645 13.4268L8.16309 13.4785C8.45766 13.7188 8.89239 13.7013 9.16699 13.4268Z" fill="currentColor"></path></svg></button><div class="left-0 top-0 absolute w-full md:w-auto duration-300 ease-out motion-safe:data-[motion^=from-]:animate-in motion-safe:data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out motion-safe:data-[motion=from-start]:slide-in-from-left-52 motion-safe:data-[motion=from-end]:slide-in-from-right-52 motion-safe:data-[motion=to-start]:slide-out-to-left-52 motion-safe:data-[motion=to-end]:slide-out-to-right-52 pointer-events-none opacity-0 bg-white dark:bg-black p-4 pb-4.5" id="radix-_r4R_q_-content-Solutions" aria-labelledby="radix-_r4R_q_-trigger-Solutions" data-orientation="horizontal" data-state="closed" aria-hidden="true" style="pointer-events:none" dir="ltr"><div class="flex gap-x-8"><div class="w-[17rem] flex flex-col"><p class="font-mono text-[0.75rem]/[1.66] font-light tracking-[0.03em] text-neutral-850 uppercase dark:text-neutral-300">Use Cases</p><ul class="relative grid flex-1 border border-neutral-300 dark:border-neutral-850 grid-cols-1 mt-4.5"><li aria-hidden="true" class="contents invisible"><div class="w-[7px] h-[7px] z-10 absolute border md:block -top-[4px] -left-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block -top-[4px] -right-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block -bottom-[4px] -left-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block -bottom-[4px] -right-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div></li><li class="flex invisible border-b border-neutral-300 dark:border-neutral-850"><a href="/product/mcp-gateway" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,var(--color-bsmnt-brand-ruby)_10%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[var(--color-bsmnt-brand-ruby)]"></span>Distribute</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">Manage MCP with a Gateway</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">One gateway for every agent and every MCP</p></a></li><li class="flex invisible"><a href="/product/agent-security" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,var(--color-bsmnt-brand-swift)_8%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[var(--color-bsmnt-brand-swift)]"></span>Secure</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">Secure AI Usage</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Detect shadow AI, prevent risky actions, stop data leaks in real time</p></a></li></ul></div><div class="w-[33rem] flex flex-col"><p class="font-mono text-[0.75rem]/[1.66] font-light tracking-[0.03em] text-neutral-850 uppercase dark:text-neutral-300">Agents</p><ul class="relative grid flex-1 border border-neutral-300 dark:border-neutral-850 grid-cols-2 mt-4.5"><li aria-hidden="true" class="contents invisible"><div class="w-[7px] h-[7px] z-10 absolute border md:block -top-[4px] -left-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block -top-[4px] -right-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block -bottom-[4px] -left-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block -bottom-[4px] -right-[4px] dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block left-1/2 -translate-x-1/2 -translate-y-1/2 top-1/3 dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block left-1/2 -translate-x-1/2 -translate-y-1/2 top-2/3 dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div></li><li class="flex invisible border-r border-b border-neutral-300 dark:border-neutral-850"><a href="/use-cases/claude-control" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,#D97757_8%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[#D97757]"></span>Anthropic</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">Claude</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Your control plane for Claude at work</p></a></li><li class="flex invisible border-b border-neutral-300 dark:border-neutral-850"><a href="/use-cases/codex-control" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,#3941FF_8%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[#3941FF]"></span>OpenAI</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">Codex</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Govern Codex usage across your org</p></a></li><li class="flex invisible border-r border-b border-neutral-300 dark:border-neutral-850"><a href="/use-cases/gemini-control" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,#4285F4_8%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[#4285F4]"></span>Google</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">Gemini</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Secure and observe Gemini usage</p></a></li><li class="flex invisible border-b border-neutral-300 dark:border-neutral-850"><a href="/use-cases/cursor-control" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,rgb(15,10,7)_6%,transparent)] dark:lg:interact:bg-[color-mix(in_srgb,rgb(250,250,250)_8%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[rgb(15,10,7)] dark:bg-[rgb(250,250,250)]"></span>Code editor</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">Cursor</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Guardrails for Cursor across every team</p></a></li><li class="flex invisible border-r border-neutral-300 dark:border-neutral-850"><a href="/use-cases/opencode-control" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,rgb(15,10,7)_6%,transparent)] dark:lg:interact:bg-[color-mix(in_srgb,rgb(250,250,250)_8%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[rgb(15,10,7)] dark:bg-[rgb(250,250,250)]"></span>Open source</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">OpenCode</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Enterprise controls for OpenCode</p></a></li><li class="flex invisible"><a href="/use-cases/enterprise-openclaw" class="group flex w-full flex-col no-underline transition-colors select-none gap-0.5 p-4 lg:interact:bg-[color-mix(in_srgb,#E6181E_8%,transparent)]" data-radix-collection-item=""><p class="flex items-center gap-1.5 font-mono text-[0.625rem]/[1.4] font-light tracking-[0.08em] uppercase text-neutral-500 transition-colors group-interact:text-[#111111] dark:group-interact:text-white"><span aria-hidden="true" class="size-[7px] shrink-0 bg-[#E6181E]"></span>Enterprise</p><p class="flex items-center gap-1 text-[1rem]/[1.5] font-medium tracking-[0.03em]">OpenClaw</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Roll out OpenClaw agents safely</p></a></li></ul></div></div></div></li><li><a href="/customers" class="group relative inline-flex outline-none interact:before:opacity-100 min-h-[44px] w-max items-center justify-center px-1.5 xl:px-4 py-2 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 before:absolute before:opacity-0 before:top-px before:bottom-0 before:left-1/2 before:-translate-x-1/2 before:w-full xl:before:w-[calc(100%-1rem)] before:rounded-sm before:bg-neutral-200 dark:before:bg-neutral-850 before:z-[-1] before:transition-opacity before:duration-300 before:ease-out" data-radix-collection-item="">Customers</a></li><li><button id="radix-_r4R_q_-trigger-Company" data-state="closed" aria-expanded="false" class="group relative inline-flex outline-none interact:before:opacity-100 min-h-[44px] w-max items-center justify-center px-1.5 xl:px-4 py-2 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 before:absolute before:opacity-0 before:top-px before:bottom-0 before:left-1/2 before:-translate-x-1/2 before:w-full xl:before:w-[calc(100%-1rem)] before:rounded-sm before:bg-neutral-200 dark:before:bg-neutral-850 before:z-[-1] before:transition-opacity before:duration-300 before:ease-out" data-radix-collection-item="">Company<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="relative top-[1px] mb-0.5 ml-1 size-4 text-current" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.11035 2.52148C8.8354 2.2972 8.43804 2.2972 8.16309 2.52148L8.10645 2.57324L4.92969 5.75L5.63672 6.45703L8.63672 3.45703L11.6367 6.45703L12.3437 5.75L9.16699 2.57324L9.11035 2.52148ZM9.16699 13.4268L12.3437 10.25L11.6367 9.54297L8.63672 12.543L5.63672 9.54297L4.92969 10.25L8.10645 13.4268L8.16309 13.4785C8.45766 13.7188 8.89239 13.7013 9.16699 13.4268Z" fill="currentColor"></path></svg></button><div class="left-0 top-0 absolute w-full md:w-auto duration-300 ease-out motion-safe:data-[motion^=from-]:animate-in motion-safe:data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out motion-safe:data-[motion=from-start]:slide-in-from-left-52 motion-safe:data-[motion=from-end]:slide-in-from-right-52 motion-safe:data-[motion=to-start]:slide-out-to-left-52 motion-safe:data-[motion=to-end]:slide-out-to-right-52 pointer-events-none opacity-0 bg-white dark:bg-black p-4 pb-4.5" id="radix-_r4R_q_-content-Company" aria-labelledby="radix-_r4R_q_-trigger-Company" data-orientation="horizontal" data-state="closed" aria-hidden="true" style="pointer-events:none" dir="ltr"><div class="flex gap-x-8"><div class="min-w-[16rem]"><p class="font-mono text-[0.75rem]/[1.66] font-light tracking-[0.03em] text-neutral-850 uppercase dark:text-neutral-300">Careers</p><ul class="space-y-1 mt-4.5"><li class="invisible"><a href="/careers" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-solid"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">Careers<span class="ml-1.5 inline-flex items-center justify-center rounded-full bg-primary/10 px-1.5 py-0.5 text-[0.625rem] font-medium leading-none text-primary dark:bg-primary/20">5</span></p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Shape the future with us</p></div></a></li></ul><div class="mt-4 invisible"><ul class="space-y-1.5"><li><a href="https://jobs.ashbyhq.com/Speakeasy/b0c122c2-f0db-46ed-8c43-7bb72a4638a0" target="_blank" rel="noopener noreferrer" class="flex items-center justify-between gap-2 rounded-sm px-3 py-2 text-[0.8125rem]/[1.5] tracking-[0.02em] border border-dashed border-neutral-300 dark:border-neutral-700 text-neutral-600 dark:text-neutral-400 interact:border-neutral-400 dark:interact:border-neutral-600 interact:text-neutral-900 dark:interact:text-neutral-200 transition-colors"><span class="line-clamp-1">Account Executive</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-3.5 shrink-0 text-neutral-400" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://jobs.ashbyhq.com/Speakeasy/def210b2-b6aa-421b-84c4-dcd278f95db9" target="_blank" rel="noopener noreferrer" class="flex items-center justify-between gap-2 rounded-sm px-3 py-2 text-[0.8125rem]/[1.5] tracking-[0.02em] border border-dashed border-neutral-300 dark:border-neutral-700 text-neutral-600 dark:text-neutral-400 interact:border-neutral-400 dark:interact:border-neutral-600 interact:text-neutral-900 dark:interact:text-neutral-200 transition-colors"><span class="line-clamp-1">Forward Deployed Engineer</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-3.5 shrink-0 text-neutral-400" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://jobs.ashbyhq.com/Speakeasy/43904ba3-3792-4cc4-b097-6e98ca9a1b4b" target="_blank" rel="noopener noreferrer" class="flex items-center justify-between gap-2 rounded-sm px-3 py-2 text-[0.8125rem]/[1.5] tracking-[0.02em] border border-dashed border-neutral-300 dark:border-neutral-700 text-neutral-600 dark:text-neutral-400 interact:border-neutral-400 dark:interact:border-neutral-600 interact:text-neutral-900 dark:interact:text-neutral-200 transition-colors"><span class="line-clamp-1">Platform Engineer (SRE) - AI Control Plane</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-3.5 shrink-0 text-neutral-400" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li></ul></div></div><div class="min-w-[16rem]"><p class="font-mono text-[0.75rem]/[1.66] font-light tracking-[0.03em] text-neutral-850 uppercase dark:text-neutral-300">Company</p><ul class="space-y-1 mt-4.5"><li class="invisible"><a href="/company" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-solid"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">About us</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Our story, mission, and vision</p></div></a></li><li class="invisible"><a href="/contact" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-solid"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-at-sign" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"></path></svg></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">Contact us</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Get in touch with our team</p></div></a></li><li class="invisible"><a href="/talk-to-us" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-solid"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">Talk to us</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Unlock the right solution</p></div></a></li></ul></div></div><ul class="flex w-full gap-x-4 border-t border-dashed border-neutral-300 dark:border-neutral-850 mt-8"><li class="pt-1.5 lg:pt-1.5 mt-0.5 flex-1 invisible"><a href="/blog" class="lg:interact:bg-neutral-100 group lg:interact:dark:bg-neutral-850 relative -m-1.5 -mr-2.5 flex w-full items-center gap-x-3 rounded-md p-1.5 pr-2.5 no-underline transition-colors select-none mt-0.5 flex-1 invisible" data-radix-collection-item=""><div class="dark:group-interact:border-neutral-500 group-interact:border-neutral-500 group-inteact:bg-neutral-200 grid size-[2.75rem] shrink-0 place-items-center rounded-xs border border-neutral-300 bg-neutral-300/10 transition-colors dark:border-neutral-850 dark:bg-neutral-700/40 border-dashed"><span class="lg:group-interact:text-[#111111] lg:group-interact:dark:text-white size-4 text-neutral-500 transition-colors dark:text-neutral-500 [&amp;_svg]:size-[inherit]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-circle-more" aria-hidden="true"><path d="M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719"></path><path d="M8 12h.01"></path><path d="M12 12h.01"></path><path d="M16 12h.01"></path></svg></span></div><div><p class="text-[1rem]/[1.66] font-medium tracking-[0.03em] flex items-center gap-1">Blog</p><p class="line-clamp-2 text-[0.75rem]/[1.66] tracking-[0.03em] text-neutral-500">Read our latest news and updates</p></div></a></li></ul></div></li><li><a href="/pricing" class="group relative inline-flex outline-none interact:before:opacity-100 min-h-[44px] w-max items-center justify-center px-1.5 xl:px-4 py-2 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 before:absolute before:opacity-0 before:top-px before:bottom-0 before:left-1/2 before:-translate-x-1/2 before:w-full xl:before:w-[calc(100%-1rem)] before:rounded-sm before:bg-neutral-200 dark:before:bg-neutral-850 before:z-[-1] before:transition-opacity before:duration-300 before:ease-out" data-radix-collection-item="">Pricing</a></li></ul></div><div class="pointer-events-none absolute top-full mt-2 flex justify-start"></div></nav></div><div class="space-x-2 hidden lg:block"><div class="hidden items-center lg:inline-flex"><button type="button" id="radix-_r4R_3a_" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="cta-app-navbar lg:px-2 xl:px-4 inline-flex h-10 items-center gap-1 px-3 text-sm font-medium outline-none">Log in<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-3.5 opacity-70" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="flex flex-col gap-2 lg:hidden"><a href="https://app.getgram.ai/" class="relative inline-flex group z-[1] cursor-pointer items-center justify-center gap-2.5 rounded-full font-mono text-[15px] leading-[1.6] tracking-[0.01em] whitespace-nowrap uppercase transition-all outline-none select-none disabled:pointer-events-none [&amp;_svg]:pointer-events-none [&amp;_svg]:mb-px [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-[#F8F8F8] !text-neutral-800 shadow-[0px_2px_1px_0px_#FFF_inset,_0px_-2px_1px_100px_rgba(0,0,0,0.0)_inset,_0px_-2px_1px_0px_rgba(0,0,0,0.1)_inset] interact:bg-neutral-200 interact:shadow-[0px_2px_1px_0px_#F3F3F3_inset,_0px_-40px_10px_10px_rgba(220,220,220,0.2)_inset,_0px_-2px_1px_0px_rgba(0,0,0,0.05)_inset] active:bg-neutral-200 active:shadow-[0px_2px_1px_0px_rgba(0,0,0,0.25)_inset] focus-visible:ring-1 focus-visible:ring-offset-3 focus-visible:ring-[#979797] dark:focus-visible:ring-neutral-300 focus-visible:ring-offset-background disabled:opacity-50 h-10 px-5 py-2 w-full">AI Control Plane<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-3.5 ml-1 opacity-70" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a><a href="https://app.speakeasy.com/" class="relative inline-flex group z-[1] cursor-pointer items-center justify-center gap-2.5 rounded-full font-mono text-[15px] leading-[1.6] tracking-[0.01em] whitespace-nowrap uppercase transition-all outline-none select-none disabled:pointer-events-none [&amp;_svg]:pointer-events-none [&amp;_svg]:mb-px [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-[#F8F8F8] !text-neutral-800 shadow-[0px_2px_1px_0px_#FFF_inset,_0px_-2px_1px_100px_rgba(0,0,0,0.0)_inset,_0px_-2px_1px_0px_rgba(0,0,0,0.1)_inset] interact:bg-neutral-200 interact:shadow-[0px_2px_1px_0px_#F3F3F3_inset,_0px_-40px_10px_10px_rgba(220,220,220,0.2)_inset,_0px_-2px_1px_0px_rgba(0,0,0,0.05)_inset] active:bg-neutral-200 active:shadow-[0px_2px_1px_0px_rgba(0,0,0,0.25)_inset] focus-visible:ring-1 focus-visible:ring-offset-3 focus-visible:ring-[#979797] dark:focus-visible:ring-neutral-300 focus-visible:ring-offset-background disabled:opacity-50 h-10 px-5 py-2 w-full">API Platform<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-3.5 ml-1 opacity-70" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></div><a href="/talk-to-us" class="inline-flex group z-[1] cursor-pointer items-center justify-center gap-2.5 font-mono text-[15px] leading-[1.6] whitespace-nowrap uppercase transition-all outline-none select-none disabled:pointer-events-none [&amp;_svg]:pointer-events-none [&amp;_svg]:mb-px [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 relative border-0 bg-transparent before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:transition-all before:p-[1px] button-gradient-hover after:absolute after:inset-[1.5px] after:transition-all after:-z-10 after:rounded-[inherit] after:content-[&#x27;&#x27;] active:after:inset-[2px] active:before:p-[2px] !text-neutral-800 dark:!text-neutral-100 after:bg-neutral-100 dark:after:bg-neutral-900 active:after:bg-neutral-100 dark:active:after:bg-neutral-900 interact:after:bg-neutral-200 dark:interact:after:bg-neutral-850 focus-visible:ring-1 focus-visible:ring-offset-3 focus-visible:ring-[#979797] dark:focus-visible:ring-neutral-300 focus-visible:ring-offset-background disabled:opacity-50 h-10 px-5 py-2 lg:px-2 xl:px-4 cta-demo-navbar rounded-lg tracking-[0.08em]">Talk to us</a></div></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("r4B:0","r4S:0")</script><div hidden id="r4S:1"><button type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_r4R_e_" data-state="closed" aria-label="Open menu" class="flex items-center" data-mobile-nav-trigger=""><div class="-mr-1 p-2"><div class="relative h-7 w-5"><div class="bg-foreground absolute h-0.5 w-full transition-all duration-300 ease-in-out top-1/3 -translate-y-1/2"></div><div class="bg-foreground absolute h-0.5 w-full transition-all duration-300 ease-in-out top-2/3 -translate-y-1/2"></div></div></div></button></div><script>$RC("r4B:1","r4S:1")</script><div hidden id="r4S:2"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 101 97" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-speakeasy" aria-hidden="true"><path d="M71.288 91.564 5.403 82.202l-5.05 4.38L71.287 96.66l29.064-25.215-5.044-.715-24.02 20.835Z"></path><path d="m71.288 76.28 29.064-25.216-5.044-.714-24.02 20.828-23.509-3.338-32.288-4.582-10.088-1.435-5.05 4.38 10.094 1.429L.352 76.386l70.936 10.076 29.064-25.208-5.044-.715-24.014 20.835-33.61-4.779 5.045-4.374 28.559 4.058Z"></path><path d="M71.288 60.989 5.403 51.627l-5.05 4.38 70.935 10.076 29.064-25.208-5.044-.715-24.02 20.829Z"></path><path d="M95.308 19.774 85.213 28.53 71.288 40.61 44.056 36.74 5.403 31.247l-5.05 4.38 38.653 5.487-5.045 4.381-28.565-4.058-5.044 4.38 70.936 10.076 29.064-25.208-10.095-1.435 10.095-8.761-5.044-.715Z"></path><path d="M100.352 10.3 29.416.223.352 25.432l70.936 10.082L100.352 10.3Z"></path></svg></div><script>$RC("r4B:2","r4S:2")</script><div hidden id="r4S:3"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="-10 -5 1034 1034" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-markdown" aria-hidden="true"><path d="M922 319q-1 0 -2 1h-11v0h-836q-18 0 -33.5 8.5t-25.5 22.5q-17 26 -13 57v461q1 18 11 32.5t24 22.5q25 14 55 10v1l843 -1q18 -1 32.5 -11t22.5 -24q14 -24 10 -55h1l-1 -459q-1 -17 -11 -31.5t-24 -23.5q-19 -10 -42 -11zM918 367h2q12 0 20 5q6 3 8.5 6.5t2.5 9.5l1 456v3q2 16 -5 29q-3 5 -6.5 7.5t-9.5 2.5l-840 1h-3q-16 2 -28 -5q-6 -3 -8.5 -6.5t-2.5 -9.5v-458l-1 -4q-2 -14 5.5 -25t18.5 -11h837zM145 464v327h96v-188l96 120l96 -120v188h96v-327h-96l-96 120l-96 -120h-96zM697 464v168h-96l144 159l144 -159h-96v-168h-96z"></path></svg></div><script>$RC("r4B:3","r4S:3")</script><!--astro:end--></astro-island>  <div data-header-reserve aria-hidden="true"></div> <main id="main" class="flex-1">   <astro-island uid="ZXBjeG" prefix="r3" component-url="/_astro/home.DjdcuD-o.js" component-export="default" renderer-url="/_astro/client.Ba23cQob.js" props="{}" ssr client="idle" opts="{&quot;name&quot;:&quot;HomeScreen&quot;,&quot;value&quot;:true}" await-children><div class="ai-page ai-body"><div class="mx-auto max-w-[1920px]"><section class="relative overflow-x-clip px-6 pt-12 pb-20 md:px-12 md:pt-24 md:pb-24"><div class="relative"><div class="absolute inset-0 pointer-events-none"><div class="relative w-full h-full"><div aria-hidden="true" class="absolute w-auto h-auto aspect-square top-[calc(50%-20px)] -translate-y-1/2 left-[58%] -right-[12%] hero-hand-poster"></div></div></div><div class="relative z-10 lg:max-w-[58%]"><a href="/blog/release-skills-management" class="ai-eyebrow group mb-8 inline-flex items-center gap-2.5 border border-[var(--ai-rule)] bg-[var(--ai-bone)] px-4 py-2.5 text-[var(--ai-ink)] shadow-[4px_4px_0_var(--ai-hairline)] transition-[box-shadow,translate] hover:-translate-x-px hover:-translate-y-px hover:shadow-[5px_5px_0_var(--ai-rule)]"><span aria-hidden="true" class="size-[9px] bg-[var(--ai-ink)]"></span><span class="text-[var(--ai-stone)]">New</span>Skills management: security and system of record<span aria-hidden="true" class="transition-transform group-hover:translate-x-0.5">→</span></a><h1 class="ai-display mb-8 text-[clamp(3rem,5.5vw,6.5rem)] leading-[1]!"><span class="relative block [&amp;_svg]:overflow-visible"><span class="inline-block -translate-y-[0.135em] opacity-100">Securely Scale</span></span><span class="relative block [&amp;_svg]:overflow-visible"><span class="inline-block -translate-y-[0.135em] opacity-100">Enterprise AI.</span></span></h1><p data-speakable="true" class="ai-body m-0 max-w-[640px] text-[1.25rem] leading-[1.35] text-[var(--ai-stone)] md:text-[1.375rem]">The AI control plane for discovering, securing, and governing AI agents, MCP servers, and Skills across your enterprise.</p><div class="mt-10 flex flex-col gap-4 sm:flex-row sm:items-center"><a href="/talk-to-us" class="ai-btn ai-btn--primary text-center">Talk to us</a><a href="/use-cases/claude-control" aria-label="Start governing AI agents like Claude, Codex, Cursor, Gemini, ChatGPT, OpenCode, Devin, Mistral, Bedrock, and more. Learn about the control plane." class="group relative inline-flex items-center gap-4 rounded-lg px-6 py-2 transition-colors interact:bg-[var(--ai-paper)] focus-visible:ring-1 focus-visible:ring-offset-3 focus-visible:ring-[#979797] dark:focus-visible:ring-neutral-300 focus-visible:ring-offset-background outline-none justify-center"><span class="shrink-0 font-mono text-sm font-light tracking-[0.08em] uppercase select-none">Start governing</span><span class="relative flex h-6 shrink-0 items-center overflow-hidden"><span aria-hidden="true" class="invisible grid"><span class="col-start-1 row-start-1"><span class="flex items-center gap-2"><img src="/assets/platform-diagram/agent-icons/claude.svg" alt="" aria-hidden="true" loading="lazy" class="shrink-0 object-contain h-5 w-5"/><span class="font-mono text-[15px] uppercase leading-[1.6] tracking-[0.01em] text-foreground">Claude</span></span></span><span class="col-start-1 row-start-1"><span class="flex items-center gap-2"><img src="/assets/platform-diagram/agent-icons/codex.svg" alt="" aria-hidden="true" loading="lazy" class="shrink-0 object-contain h-5 w-5"/><span class="font-mono text-[15px] uppercase leading-[1.6] tracking-[0.01em] text-foreground">Codex</span></span></span><span class="col-start-1 row-start-1"><span class="flex items-center gap-2"><img src="/assets/platform-diagram/agent-icons/cursor.svg" alt="" aria-hidden="true" loading="lazy" class="shrink-0 object-contain h-5 w-5 invert dark:invert-0"/><span class="font-mono text-[15px] uppercase leading-[1.6] tracking-[0.01em] text-foreground">Cursor</span></span></span><span class="col-start-1 row-start-1"><span class="flex items-center gap-2"><img src="/assets/platform-diagram/agent-icons/google.svg" alt="" aria-hidden="true" loading="lazy" class="shrink-0 object-contain h-5 w-5"/><span class="font-mono text-[15px] uppercase leading-[1.6] tracking-[0.01em] text-foreground">Gemini</span></span></span><span class="col-start-1 row-start-1"><span class="flex items-center gap-2"><img src="/assets/platform-diagram/agent-icons/openai.svg" alt="" aria-hidden="true" loading="lazy" class="shrink-0 object-contain h-5 w-5 invert dark:invert-0"/><span class="font-mono text-[15px] uppercase leading-[1.6] tracking-[0.01em] text-foreground">ChatGPT</span></span></span><span class="col-start-1 row-start-1"><span class="flex items-center gap-2"><img src="/assets/platform-diagram/agent-icons/opencode.svg" alt="" aria-hidden="true" loading="lazy" class="shrink-0 object-contain h-5 w-5 dark:invert"/><span class="font-mono text-[15px] uppercase leading-[1.6] tracking-[0.01em] text-foreground">OpenCode</span></span></span><span class="col-start-1 row-start-1"><span class="flex items-center gap-2"><img src="/assets/platform-diagram/agent-icons/devin.png" alt="" aria-hidden="true" loading="lazy" class="shrink-0 object-contain h-5 w-5"/><span class="font-mono text-[15px] uppercase leading-[1.6] tracking-[0.01em] text-foreground">Devin</span></span></span><span class="col-start-1 row-start-1"><span class="flex items-center gap-2"><img src="/assets/platform-diagram/agent-icons/mistral.svg" alt="" aria-hidden="true" loading="lazy" class="shrink-0 object-contain h-5 w-5"/><span class="font-mono text-[15px] uppercase leading-[1.6] tracking-[0.01em] text-foreground">Mistral</span></span></span><span class="col-start-1 row-start-1"><span class="flex items-center gap-2"><img src="/assets/platform-diagram/agent-icons/bedrock.svg" alt="" aria-hidden="true" loading="lazy" class="shrink-0 object-contain h-5 w-5 dark:invert"/><span class="font-mono text-[15px] uppercase leading-[1.6] tracking-[0.01em] text-foreground">Bedrock</span></span></span></span><span class="absolute inset-0 flex items-center justify-start" style="opacity:1;transform:none"><span class="flex items-center gap-2"><img src="/assets/platform-diagram/agent-icons/claude.svg" alt="" aria-hidden="true" loading="lazy" class="shrink-0 object-contain h-5 w-5"/><span class="font-mono text-[15px] uppercase leading-[1.6] tracking-[0.01em] text-foreground">Claude</span></span></span></span></a></div></div></div><div class="relative z-10 mt-20 flex flex-wrap items-center gap-x-10 gap-y-6 md:mt-28"><span class="ai-eyebrow mr-2 text-[var(--ai-stone)]">Trusted by</span><img src="/customers/google.svg" alt="Google" loading="lazy" class="h-9 w-auto opacity-60 invert dark:invert-0 dark:opacity-70"/><img src="/customers/mistral.svg" alt="Mistral" loading="lazy" class="h-9 w-auto opacity-60 invert dark:invert-0 dark:opacity-70"/><img src="/customers/moonpay.svg" alt="MoonPay" loading="lazy" class="h-9 w-auto opacity-60 invert dark:invert-0 dark:opacity-70"/><img src="/customers/fifth-third.svg" alt="Fifth Third" loading="lazy" class="h-9 w-auto opacity-60 invert dark:invert-0 dark:opacity-70"/><img src="/customers/planetscale.svg" alt="PlanetScale" loading="lazy" class="h-9 w-auto opacity-60 invert dark:invert-0 dark:opacity-70"/><img src="/customers/launchdarkly.svg" alt="LaunchDarkly" loading="lazy" class="h-9 w-auto opacity-60 invert dark:invert-0 dark:opacity-70"/></div></section><hr class="m-0 border-0 border-t border-[var(--ai-hairline)]"/><section id="problem" class="relative overflow-hidden px-6 py-16 contain-paint md:px-24 md:py-24"><div aria-hidden="true" class="pointer-events-none absolute inset-0"><div class="absolute top-0 left-0 h-[180px] w-[180px] opacity-15 md:h-[250px] md:w-[250px]"></div><div class="absolute top-0 right-0 h-[180px] w-[180px] opacity-15 md:h-[250px] md:w-[250px]"></div></div><p class="ai-eyebrow relative z-10 mb-6 text-[var(--ai-stone)]">01 · The problem</p><h2 class="ai-display relative z-10 mb-10 max-w-[1100px] text-[clamp(2.75rem,6vw,5.5rem)] leading-[1.02]! tracking-[-0.03em]">AI adoption is accelerating across every company.</h2><div class="relative z-10 mb-10 md:mb-6 md:grid md:grid-cols-[8.5rem_1fr_1fr] lg:grid-cols-[10rem_1fr_1fr]"><div class="hidden md:block"></div><div class="hidden md:block"></div><div class="md:px-8"><p class="ai-display m-0 text-[clamp(1.75rem,3vw,3rem)] leading-[1.05]">You need a platform that can keep pace.</p></div></div><div class="relative z-10 mb-8 hidden md:grid md:grid-cols-[8.5rem_1fr_1fr] lg:grid-cols-[10rem_1fr_1fr]"><div></div><div class="md:px-8"><span class="ai-eyebrow inline-block px-3.5 py-1.5 text-[rgb(250,250,250)]" style="background:var(--ai-vermilion)">Without a control plane</span></div><div class="md:px-8"><span class="ai-eyebrow inline-block px-3.5 py-1.5 text-[rgb(250,250,250)]" style="background:var(--ai-blue-badge)">On the control plane</span></div></div><div class="relative z-10 border-y border-[var(--ai-hairline)]"><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -left-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -right-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -left-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -right-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -left-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;top:-40px"></div><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;left:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -right-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;top:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;right:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -left-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;left:-40px"></div><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;bottom:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -right-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;bottom:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;right:-40px"></div></div><div class="grid border-[var(--ai-hairline)]  md:grid-cols-[8.5rem_1fr_1fr] lg:grid-cols-[10rem_1fr_1fr]"><div class="flex items-center gap-2.5 pt-6 md:items-start md:py-7 md:pr-4"><svg viewBox="0 0 16 16" aria-hidden="true" class="h-4 w-4 shrink-0 md:mt-[1px]" style="color:var(--ai-stone)"><rect x="2" y="2.5" width="3" height="3" fill="currentColor"></rect><rect x="10.5" y="1.5" width="2.5" height="2.5" fill="currentColor"></rect><rect x="6" y="7" width="2.5" height="2.5" fill="currentColor"></rect><rect x="2.5" y="11.5" width="2.5" height="2.5" fill="currentColor"></rect><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><rect x="10" y="10" width="4" height="4" stroke-dasharray="1.5 1.5"></rect></g></svg><span class="ai-eyebrow text-[var(--ai-stone)]">Shadow AI</span></div><div class="relative py-4 md:border-l md:border-[var(--ai-hairline)] md:px-8 md:py-7"><span aria-hidden="true" class="absolute -top-[2.5px] -left-[2.5px] hidden size-[4px] bg-[var(--ai-ink)] opacity-30 md:block"></span><div class="flex items-start gap-3"><svg viewBox="0 0 16 16" aria-hidden="true" class="shrink-0 mt-[5px] size-3.5" style="color:var(--ai-vermilion)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><path d="m3.5 3.5 9 9M12.5 3.5l-9 9"></path></g></svg><div><span class="ai-eyebrow mb-1 block text-xs md:hidden" style="color:var(--ai-vermilion-text)">Without a control plane</span><p class="ai-body m-0 text-lg leading-[1.45]">AI tools spread team by team with no central approval. Nobody can list every agent, MCP server, and Skill in use</p></div></div></div><div class="relative py-4 md:border-l md:border-[var(--ai-hairline)] md:px-8 md:py-7"><span aria-hidden="true" class="absolute -top-[2.5px] -left-[2.5px] hidden size-[4px] bg-[var(--ai-ink)] opacity-30 md:block"></span><div class="flex items-start gap-3"><svg viewBox="0 0 16 16" aria-hidden="true" class="shrink-0 mt-[5px] size-3.5" style="color:var(--ai-blue-badge)"><rect x="4.5" y="4.5" width="7" height="7" fill="currentColor"></rect></svg><div><span class="ai-eyebrow mb-1 block text-xs md:hidden" style="color:var(--ai-blue-text)">On the control plane</span><p class="ai-body m-0 text-lg leading-[1.45]">One catalog of approved agents, MCP servers, and Skills, so what&#x27;s running is what&#x27;s been approved</p></div></div></div></div><div class="grid border-[var(--ai-hairline)] border-t md:grid-cols-[8.5rem_1fr_1fr] lg:grid-cols-[10rem_1fr_1fr]"><div class="flex items-center gap-2.5 pt-6 md:items-start md:py-7 md:pr-4"><svg viewBox="0 0 16 16" aria-hidden="true" class="h-4 w-4 shrink-0 md:mt-[1px]" style="color:var(--ai-stone)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><rect x="1.5" y="3" width="13" height="10"></rect><path d="M8.75 6.5h3.75M8.75 9h3.75"></path></g><rect x="4" y="5.75" width="2.5" height="2.5" fill="currentColor"></rect></svg><span class="ai-eyebrow text-[var(--ai-stone)]">Identity</span></div><div class="relative py-4 md:border-l md:border-[var(--ai-hairline)] md:px-8 md:py-7"><span aria-hidden="true" class="absolute -top-[2.5px] -left-[2.5px] hidden size-[4px] bg-[var(--ai-ink)] opacity-30 md:block"></span><div class="flex items-start gap-3"><svg viewBox="0 0 16 16" aria-hidden="true" class="shrink-0 mt-[5px] size-3.5" style="color:var(--ai-vermilion)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><path d="m3.5 3.5 9 9M12.5 3.5l-9 9"></path></g></svg><div><span class="ai-eyebrow mb-1 block text-xs md:hidden" style="color:var(--ai-vermilion-text)">Without a control plane</span><p class="ai-body m-0 text-lg leading-[1.45]">Agents reach sensitive systems through borrowed credentials and shared service accounts, and security can&#x27;t tell one agent from another</p></div></div></div><div class="relative py-4 md:border-l md:border-[var(--ai-hairline)] md:px-8 md:py-7"><span aria-hidden="true" class="absolute -top-[2.5px] -left-[2.5px] hidden size-[4px] bg-[var(--ai-ink)] opacity-30 md:block"></span><div class="flex items-start gap-3"><svg viewBox="0 0 16 16" aria-hidden="true" class="shrink-0 mt-[5px] size-3.5" style="color:var(--ai-blue-badge)"><rect x="4.5" y="4.5" width="7" height="7" fill="currentColor"></rect></svg><div><span class="ai-eyebrow mb-1 block text-xs md:hidden" style="color:var(--ai-blue-text)">On the control plane</span><p class="ai-body m-0 text-lg leading-[1.45]">Every agent acts under its own identity, employee-driven or autonomous, with access scoped by team and role through the identity provider you already run</p></div></div></div></div><div class="grid border-[var(--ai-hairline)] border-t md:grid-cols-[8.5rem_1fr_1fr] lg:grid-cols-[10rem_1fr_1fr]"><div class="flex items-center gap-2.5 pt-6 md:items-start md:py-7 md:pr-4"><svg viewBox="0 0 16 16" aria-hidden="true" class="h-4 w-4 shrink-0 md:mt-[1px]" style="color:var(--ai-stone)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><path d="M1.5 8C4 4.5 6 3.5 8 3.5S12 4.5 14.5 8C12 11.5 10 12.5 8 12.5S4 11.5 1.5 8Z"></path></g><rect x="6.75" y="6.75" width="2.5" height="2.5" fill="currentColor"></rect></svg><span class="ai-eyebrow text-[var(--ai-stone)]">Visibility</span></div><div class="relative py-4 md:border-l md:border-[var(--ai-hairline)] md:px-8 md:py-7"><span aria-hidden="true" class="absolute -top-[2.5px] -left-[2.5px] hidden size-[4px] bg-[var(--ai-ink)] opacity-30 md:block"></span><div class="flex items-start gap-3"><svg viewBox="0 0 16 16" aria-hidden="true" class="shrink-0 mt-[5px] size-3.5" style="color:var(--ai-vermilion)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><path d="m3.5 3.5 9 9M12.5 3.5l-9 9"></path></g></svg><div><span class="ai-eyebrow mb-1 block text-xs md:hidden" style="color:var(--ai-vermilion-text)">Without a control plane</span><p class="ai-body m-0 text-lg leading-[1.45]">Security can&#x27;t see what AI can access, what it did, or what data it exposed</p></div></div></div><div class="relative py-4 md:border-l md:border-[var(--ai-hairline)] md:px-8 md:py-7"><span aria-hidden="true" class="absolute -top-[2.5px] -left-[2.5px] hidden size-[4px] bg-[var(--ai-ink)] opacity-30 md:block"></span><div class="flex items-start gap-3"><svg viewBox="0 0 16 16" aria-hidden="true" class="shrink-0 mt-[5px] size-3.5" style="color:var(--ai-blue-badge)"><rect x="4.5" y="4.5" width="7" height="7" fill="currentColor"></rect></svg><div><span class="ai-eyebrow mb-1 block text-xs md:hidden" style="color:var(--ai-blue-text)">On the control plane</span><p class="ai-body m-0 text-lg leading-[1.45]">Every prompt, response, and tool call crosses one governed path with a searchable record behind it</p></div></div></div></div><div class="grid border-[var(--ai-hairline)] border-t md:grid-cols-[8.5rem_1fr_1fr] lg:grid-cols-[10rem_1fr_1fr]"><div class="flex items-center gap-2.5 pt-6 md:items-start md:py-7 md:pr-4"><svg viewBox="0 0 16 16" aria-hidden="true" class="h-4 w-4 shrink-0 md:mt-[1px]" style="color:var(--ai-stone)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><rect x="2.5" y="1.5" width="11" height="13"></rect><path d="M5 4.5h6M5 7h6"></path></g><rect x="8.75" y="9.75" width="3" height="3" fill="currentColor"></rect></svg><span class="ai-eyebrow text-[var(--ai-stone)]">Policy</span></div><div class="relative py-4 md:border-l md:border-[var(--ai-hairline)] md:px-8 md:py-7"><span aria-hidden="true" class="absolute -top-[2.5px] -left-[2.5px] hidden size-[4px] bg-[var(--ai-ink)] opacity-30 md:block"></span><div class="flex items-start gap-3"><svg viewBox="0 0 16 16" aria-hidden="true" class="shrink-0 mt-[5px] size-3.5" style="color:var(--ai-vermilion)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><path d="m3.5 3.5 9 9M12.5 3.5l-9 9"></path></g></svg><div><span class="ai-eyebrow mb-1 block text-xs md:hidden" style="color:var(--ai-vermilion-text)">Without a control plane</span><p class="ai-body m-0 text-lg leading-[1.45]">Rules live in wiki pages and vary by team, with no way to enforce them consistently or prove they were followed</p></div></div></div><div class="relative py-4 md:border-l md:border-[var(--ai-hairline)] md:px-8 md:py-7"><span aria-hidden="true" class="absolute -top-[2.5px] -left-[2.5px] hidden size-[4px] bg-[var(--ai-ink)] opacity-30 md:block"></span><div class="flex items-start gap-3"><svg viewBox="0 0 16 16" aria-hidden="true" class="shrink-0 mt-[5px] size-3.5" style="color:var(--ai-blue-badge)"><rect x="4.5" y="4.5" width="7" height="7" fill="currentColor"></rect></svg><div><span class="ai-eyebrow mb-1 block text-xs md:hidden" style="color:var(--ai-blue-text)">On the control plane</span><p class="ai-body m-0 text-lg leading-[1.45]">Policy is defined once and enforced on every action, with scanning for prompt injection, PII exposure, and leaked credentials, and every allow-or-deny decision logged for audit</p></div></div></div></div></div></section><section class="border-y border-[var(--ai-hairline)] bg-[var(--ai-paper)] px-6 py-16 md:px-12 md:py-24"><div class="grid md:grid-cols-2"><figure class="m-0 flex flex-col border-b border-[var(--ai-hairline)] pb-12 md:border-r md:border-b-0 md:pr-14 md:pb-0"><span aria-hidden="true" class="ai-display block select-none text-[3.5rem] leading-[0.8]!" style="color:var(--ai-vermilion)">“</span><blockquote class="m-0 mt-3 p-0"><p class="ai-display m-0 text-[clamp(1.75rem,2.6vw,2.75rem)] leading-[1.08]! tracking-[-0.02em]">We built our access controls on IAM. When we rolled out agents, the controls broke down. Speakeasy let us extend our identity management to all our AI usage.</p></blockquote><figcaption class="mt-auto flex flex-wrap items-center gap-x-6 gap-y-4 pt-10"><img src="/assets/quote-headshots/thierry-dang.jpg" alt="" loading="lazy" width="48" height="48" class="h-12 w-12 border border-[var(--ai-rule)] object-cover grayscale"/><div><p class="ai-body m-0 text-lg leading-tight">Thierry Dang</p><p class="ai-eyebrow m-0 mt-1.5 text-[var(--ai-stone)]">Security Operations</p></div><span aria-hidden="true" class="mx-1 hidden h-10 w-px bg-[var(--ai-hairline)] sm:block"></span><img src="/customers/moonpay.svg" alt="MoonPay" loading="lazy" class="h-10 w-auto opacity-70 invert dark:invert-0"/></figcaption></figure><figure class="m-0 flex flex-col pt-12 md:pt-0 md:pl-14"><span aria-hidden="true" class="ai-display block select-none text-[3.5rem] leading-[0.8]!" style="color:var(--ai-blue)">“</span><blockquote class="m-0 mt-3 p-0"><p class="ai-display m-0 text-[clamp(1.75rem,2.6vw,2.75rem)] leading-[1.08]! tracking-[-0.02em]">Speakeasy was critical in launching our MCP server. Now we&#x27;re giving agents the ability to feature flag their releases!</p></blockquote><figcaption class="mt-auto flex flex-wrap items-center gap-x-6 gap-y-4 pt-10"><img src="/assets/quote-headshots/benjamin-woskow.webp" alt="" loading="lazy" width="48" height="48" class="h-12 w-12 border border-[var(--ai-rule)] object-cover grayscale"/><div><p class="ai-body m-0 text-lg leading-tight">Benjamin Woskow</p><p class="ai-eyebrow m-0 mt-1.5 text-[var(--ai-stone)]">Senior Director of Engineering</p></div><span aria-hidden="true" class="mx-1 hidden h-10 w-px bg-[var(--ai-hairline)] sm:block"></span><img src="/customers/launchdarkly.svg" alt="LaunchDarkly" loading="lazy" class="h-10 w-auto opacity-70 invert dark:invert-0"/></figcaption></figure></div></section><section id="solution" class="px-6 py-16 md:px-12 md:py-24"><p class="ai-eyebrow mb-6 text-[var(--ai-stone)]">02 · The platform</p><h2 class="ai-display mb-8 max-w-[1100px] text-[clamp(2.75rem,6vw,5.5rem)] leading-[1.02]! tracking-[-0.03em]">Every Agent Action.<br/>Governed on one control plane.</h2><p class="ai-body mb-6 max-w-[640px] text-[1.25rem] leading-[1.35] text-[var(--ai-stone)]">Speakeasy provides governance, security, identity, policy, and visibility across every AI agent, MCP server, and Skill in your enterprise, through a single governed path.</p><a href="/resources/ai-control-plane" class="ai-eyebrow mb-16 inline-block text-[var(--ai-ink)] underline underline-offset-4">Read the guide: what is an AI control plane?</a><div role="img" aria-label="An agent chat window on the left runs governed sessions while the Speakeasy control plane on the right tracks spend and sessions, and its policy monitor checks every action against access, budget, and data policies in real time" class="not-content pointer-events-none relative mx-auto w-full max-w-[76rem] select-none"><div aria-hidden="true" class="flex flex-col gap-4 font-sans font-light text-[var(--ink)] lg:block lg:h-[36.5rem]"><div class="order-2 h-[30rem] lg:absolute lg:top-10 lg:right-0 lg:left-[14.5rem] lg:h-[31.5rem]"><div class="flex h-full flex-col overflow-hidden border border-[var(--rule)] bg-[var(--paper)] shadow-[0_20px_50px_rgba(15,10,7,0.07)] dark:shadow-[0_20px_50px_rgba(0,0,0,0.45)]"><div class="flex h-[2.875rem] shrink-0 items-center gap-3 border-b border-[var(--hairline)] pr-5 pl-5 lg:pl-56"><span class="flex items-center gap-1.5 truncate text-[13px] text-[var(--stone)]"><span>Speakeasy</span><span class="opacity-50">/</span><span>Default</span><span class="opacity-50">/</span><span class="font-normal text-[var(--ink)]">Home</span></span><span class="ml-auto flex size-5 shrink-0 items-center justify-center rounded-full bg-[var(--lang-typescript)] text-[9px] leading-none text-[var(--bone)]">N</span></div><div class="h-0.5 shrink-0 [background:var(--rgb-gradient-horizontal)]"></div><div class="flex min-h-0 flex-1"><div class="flex min-w-0 flex-1 flex-col pr-5 pb-4 pl-5 lg:pl-56"><div class="flex shrink-0 items-baseline justify-between pt-3.5 pb-2.5"><span class="text-sm font-normal">Overview</span><span class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] text-[11px]">Last 30 days</span></div><div class="grid shrink-0 grid-cols-2 gap-2.5"><div class="border border-[var(--hairline)] border-t-2 px-3 py-2.5" style="border-top-color:var(--lang-javascript)"><div class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] text-[10px]">Total spend</div><div class="pt-0.5"><span class="whitespace-nowrap tabular-nums font-mono text-[17px] font-normal">$13,878.94</span></div><div class="pt-[3px] font-mono text-[10px]" style="color:var(--lang-csharp)">+27%</div></div><div class="border border-[var(--hairline)] border-t-2 px-3 py-2.5" style="border-top-color:var(--lang-python)"><div class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] text-[10px]">Agent sessions</div><div class="pt-0.5"><span class="whitespace-nowrap tabular-nums font-mono text-[17px] font-normal">1,131</span></div><div class="pt-[3px] font-mono text-[10px]" style="color:var(--lang-ruby)">+12%</div></div><div class="border border-[var(--hairline)] border-t-2 px-3 py-2.5" style="border-top-color:var(--lang-typescript)"><div class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] text-[10px]">Tool calls</div><div class="pt-0.5"><span class="whitespace-nowrap tabular-nums font-mono text-[17px] font-normal">111,402</span></div><div class="pt-[3px] font-mono text-[10px]" style="color:var(--lang-ruby)">+38%</div></div><div class="border border-[var(--hairline)] border-t-2 px-3 py-2.5" style="border-top-color:var(--lang-csharp)"><div class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] text-[10px]">Risk findings</div><div class="pt-0.5"><span class="whitespace-nowrap tabular-nums font-mono text-[17px] font-normal">29,622</span></div><div class="pt-[3px] font-mono text-[10px]" style="color:var(--lang-ruby)">-31%</div></div></div><div class="mt-3.5 min-h-0 flex-1 border-t border-[var(--hairline)] pt-3"><div class="flex items-center gap-2"><span class="size-[7px] shrink-0 animate-pulse rounded-full bg-[var(--lang-ruby)]"></span><span class="animate-in fade-in inline-block duration-300 truncate text-sm font-normal">Billing bug outreach</span></div><div class="flex flex-wrap items-center gap-x-2 gap-y-1 pt-1 text-[11px] text-[var(--stone)]"><span class="animate-in fade-in inline-block duration-300 font-mono">B7F2A1D4</span><span>·</span><span class="animate-in fade-in inline-block duration-300">daniel@speakeasy.com</span><span class="border border-[var(--hairline)] px-2 py-0.5 font-mono text-[10px] tracking-[0.06em] whitespace-nowrap">claude-opus-4-8</span></div><div class="grid grid-cols-4 gap-x-3 pt-3"><div class="min-w-0"><div class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] truncate text-[9px]">Cost</div><span class="whitespace-nowrap tabular-nums font-mono text-[13px] font-normal transition-colors duration-500 text-[var(--ink)]">$0.00</span></div><div class="min-w-0"><div class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] truncate text-[9px]">Calls</div><span class="whitespace-nowrap tabular-nums font-mono text-[13px] font-normal transition-colors duration-500 text-[var(--ink)]">0</span></div><div class="min-w-0"><div class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] truncate text-[9px]">Tokens</div><span class="whitespace-nowrap tabular-nums font-mono text-[13px] font-normal transition-colors duration-500 text-[var(--ink)]">0</span></div><div class="min-w-0"><div class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] truncate text-[9px]">Risk</div><span class="whitespace-nowrap tabular-nums font-mono text-[13px] font-normal transition-colors duration-500 text-[var(--ink)]">0</span></div></div></div></div><div class="flex-col border-l border-[var(--hairline)] bg-[var(--bone)] hidden w-[38%] shrink-0 md:flex"><div class="flex h-[2.125rem] shrink-0 items-center gap-2 border-b border-[var(--hairline)] px-4"><span class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] text-[10px]">Policy monitor</span><span class="ml-auto flex shrink-0 items-center gap-1.5"><span class="size-1.5 animate-pulse rounded-full bg-[var(--lang-ruby)]"></span><span class="font-mono text-[9px] text-[var(--stone)]">attached</span></span></div><div class="flex min-h-0 flex-1 flex-col gap-[3px] overflow-hidden px-3.5 py-3 font-mono text-[10px] leading-[1.7]"><span class="flex gap-1.5"><span class="w-3 shrink-0"></span><span class="inline-block h-3 w-1.5 animate-pulse bg-[var(--rule)]"></span></span></div></div></div></div></div><div class="order-1 h-[27rem] lg:absolute lg:top-0 lg:left-0 lg:z-10 lg:h-[36.5rem] lg:w-[27rem]"><div class="flex h-full flex-col overflow-hidden border border-[var(--rule)] bg-[var(--paper)] shadow-[24px_28px_60px_rgba(15,10,7,0.10)] dark:shadow-[24px_28px_60px_rgba(0,0,0,0.5)]"><div class="flex h-10 shrink-0 items-center gap-2.5 border-b border-[var(--hairline)] px-3.5"><span class="flex shrink-0 gap-[5px]"><i class="block size-2 rounded-full bg-[var(--ink)]"></i><i class="block size-2 rounded-full border border-[var(--ink)]"></i><i class="block size-2 rounded-full border border-[var(--ink)]"></i></span><span class="animate-in fade-in inline-block duration-300 truncate font-mono text-[11px] tracking-[0.08em] uppercase">Billing bug outreach</span><span class="ml-auto shrink-0 border border-[var(--hairline)] px-[9px] py-[3px] font-mono text-[10px] tracking-[0.08em] whitespace-nowrap uppercase text-[var(--lang-ruby)]">✓ Governed</span></div><div class="flex min-h-0 flex-1"><div class="hidden w-[8.75rem] shrink-0 flex-col border-r border-[var(--hairline)] bg-[var(--bone)] p-2 lg:flex"><div class="flex h-6 shrink-0 items-center gap-1.5 border border-[var(--hairline)] bg-[var(--paper)] px-2 text-[10px]"><span class="font-mono text-[var(--stone)]">+</span>New</div><div class="flex h-6 shrink-0 items-center gap-1.5 px-2 text-[10px] text-[var(--stone)]"><span aria-hidden="true" class="size-1.5 shrink-0 border border-[var(--rule)]"></span>Projects</div><div class="flex h-6 shrink-0 items-center gap-1.5 px-2 text-[10px] text-[var(--stone)]"><span aria-hidden="true" class="size-1.5 shrink-0 border border-[var(--rule)]"></span>Artifacts</div><div class="flex h-6 shrink-0 items-center gap-1.5 px-2 text-[10px] text-[var(--stone)]"><span aria-hidden="true" class="size-1.5 shrink-0 border border-[var(--rule)]"></span>Scheduled</div><div class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] px-2 pt-2.5 pb-1 text-[9px]">Scheduled</div><div class="flex h-6 shrink-0 items-center gap-1.5 px-2 text-[10px] text-[var(--stone)]"><span class="truncate">Morning brief</span><span class="ml-auto shrink-0 border border-[var(--hairline)] px-1 font-mono text-[9px]">3</span></div><div class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] px-2 pt-2.5 pb-1 text-[9px]">Recents</div><div class="flex h-6 shrink-0 items-center truncate px-2 text-[10px] bg-[var(--ink-wash-strong)] text-[var(--ink)]"><span class="truncate">Billing bug outreach</span></div><div class="flex h-6 shrink-0 items-center truncate px-2 text-[10px] text-[var(--stone)]"><span class="truncate">EU customer list export</span></div><div class="flex h-6 shrink-0 items-center truncate px-2 text-[10px] text-[var(--stone)]"><span class="truncate">Incident review follow-ups</span></div><div class="mt-auto flex h-6 shrink-0 items-center gap-1.5 px-2"><span class="flex size-4 shrink-0 items-center justify-center border border-[var(--hairline)] bg-[var(--paper)] font-mono text-[7px] leading-none">NS</span><span class="truncate text-[10px] text-[var(--stone)]">Nolan</span></div></div><div class="flex min-w-0 flex-1 flex-col"><div class="flex min-h-0 flex-1 flex-col gap-2.5 overflow-hidden p-3.5"><div class="border border-[var(--hairline)] bg-[var(--bone)] px-3 py-2 animate-in fade-in slide-in-from-bottom-1 duration-300"><div class="flex items-center gap-2 text-xs font-normal"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" fill="none" class="h-3 w-auto shrink-0"><path fill="currentColor" d="M29.095 3.902 8.456.971 0 8.305l20.639 2.934 8.456-7.337Z"></path><path fill="currentColor" d="M27.627 6.658 24.69 9.205 20.64 12.72l-7.923-1.126L1.469 9.996 0 11.271l11.246 1.596-1.467 1.275-8.311-1.181L0 14.235l20.639 2.932 8.456-7.334-2.937-.418 2.937-2.549-1.468-.208Z"></path><path fill="currentColor" d="m20.639 18.65-19.17-2.724L0 17.201l20.639 2.931 8.456-7.334-1.468-.208-6.988 6.06Z"></path><path fill="currentColor" d="m20.639 23.1 8.456-7.336-1.468-.207-6.988 6.06-6.84-.972-9.394-1.333-2.936-.417L0 20.169l2.937.416L0 23.132l20.639 2.931 8.456-7.334-1.468-.208-6.986 6.062-9.78-1.39 1.468-1.273 8.31 1.18Z"></path><path fill="currentColor" d="m20.639 27.548-19.17-2.724L0 26.1l20.639 2.931 8.456-7.336-1.468-.208-6.988 6.062Z"></path></svg>Connected to Speakeasy<span class="ml-auto shrink-0 text-[var(--lang-ruby)]">✓</span></div><div class="pt-0.5 font-mono text-[11px] text-[var(--stone)]">12 MCP servers · 84 tools · session governed</div></div></div><div class="relative z-10 shrink-0 bg-[var(--paper)] p-3"><div class="border border-[var(--rule)] bg-[var(--bone)] px-3 py-2.5"><div class="min-h-[1.125rem] text-[13px]"><span>Pull the contacts affected by yesterday&#x27;s billing bug and draft an apology email.<span class="ml-px inline-block h-[1.1em] w-px translate-y-[0.15em] animate-pulse bg-[var(--ink)]"></span></span></div><div class="flex items-center gap-2.5 pt-2.5"><span class="font-mono tracking-[0.08em] uppercase text-[var(--stone)] text-[10px]">Opus 5</span><span class="ml-auto flex size-[1.375rem] items-center justify-center bg-[var(--ink)] text-xs text-[var(--bone)]">↑</span></div></div></div></div></div></div></div></div></div><div class="relative mt-16 grid border-y border-[var(--ai-hairline)] md:grid-cols-2"><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -left-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -right-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -left-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -right-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -left-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;top:-40px"></div><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;left:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -right-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;top:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;right:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -left-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;left:-40px"></div><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;bottom:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -right-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;bottom:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;right:-40px"></div></div><div class="border-b border-[var(--ai-hairline)] py-10 md:border-r md:border-b-0 md:pr-12"><span aria-hidden="true" class="items-center justify-center border border-[var(--ai-hairline)] bg-[var(--ai-bone)] px-2.5 py-2 mb-6 inline-flex"><pre class="font-mono text-[4.5px] select-none" style="color:var(--ai-blue);line-height:1.1;letter-spacing:0">                                   
          xv·-x                    
      xv-xxv··x-x--                
    --·x-v·-·x·vvxv·-              
   v·vx·x       vx--vv             
  vxvxv           -v·--            
  v-v-             xxv·            
  vv-x             ·xvv            
  xxv-x           ·vxvx            
   v-vxv         -v·--x            
    vvvx·vv   x-xxvvvv             
     vvv-vvvvxx-vxxxx-vx           
        ·-x·-xxxv  v·xv-v-         
                     x-v·-x        
                       vv·-vv      
                         -·xxvx    
                          x·vv-v-  
                            xv-    
                                   </pre></span><h3 class="ai-display m-0 text-[clamp(1.75rem,2.4vw,2.5rem)] leading-[1]! tracking-[-0.02em]">Govern AI</h3><p class="ai-body m-0 mt-4 max-w-[520px] text-base leading-normal text-[var(--ai-stone)]">Define who AI can access, what it can do, and the policies it must follow. One catalog of approved tools and Skills, access scoped by team and role through the identity provider you already run, and an audit trail behind every decision.</p><div class="mt-6 grid max-w-[520px] gap-2"><span class="flex items-center gap-3 border-t border-[var(--ai-hairline)] pt-2 font-mono text-sm font-light tracking-[0.02em] text-[var(--ai-ink)]"><svg viewBox="0 0 16 16" aria-hidden="true" class="h-4 w-4 shrink-0" style="color:var(--ai-blue)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><path d="M3 8.5 6.5 12 13 3.5"></path></g></svg>Approved tools and Skills by team and role</span><span class="flex items-center gap-3 border-t border-[var(--ai-hairline)] pt-2 font-mono text-sm font-light tracking-[0.02em] text-[var(--ai-ink)]"><svg viewBox="0 0 16 16" aria-hidden="true" class="h-4 w-4 shrink-0" style="color:var(--ai-blue)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><rect x="1.5" y="3" width="13" height="10"></rect><path d="M8.75 6.5h3.75M8.75 9h3.75"></path></g><rect x="4" y="5.75" width="2.5" height="2.5" fill="currentColor"></rect></svg>Access follows your identity provider</span><span class="flex items-center gap-3 border-t border-[var(--ai-hairline)] pt-2 font-mono text-sm font-light tracking-[0.02em] text-[var(--ai-ink)]"><svg viewBox="0 0 16 16" aria-hidden="true" class="h-4 w-4 shrink-0" style="color:var(--ai-blue)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><path d="M6 4h8.5M6 8h5.5M6 12h7.5"></path></g><rect x="1.5" y="3" width="2" height="2" fill="currentColor"></rect><rect x="1.5" y="7" width="2" height="2" fill="currentColor"></rect><rect x="1.5" y="11" width="2" height="2" fill="currentColor"></rect></svg>Every action in one audit trail</span></div></div><div class="py-10 md:pl-12"><span aria-hidden="true" class="items-center justify-center border border-[var(--ai-hairline)] bg-[var(--ai-bone)] px-2.5 py-2 mb-6 inline-flex"><pre class="font-mono text-[4.5px] select-none" style="color:var(--ai-vermilion);line-height:1.1;letter-spacing:0">              x-vvv·v              
            ·-x·x-x·vxx            
           v··x-x--vv··x           
          ·-·x·     --vvx          
         ---·v       vvvvx         
         x·--         -xvx         
         vvv-v       v·xv-         
          -vx--     xvvx·          
      x-·x--xvxvvv·vxvxx··--v      
      xvxvvv-x·vv-v·--xvvvv··      
      vx·vv-vvx     vvv-xv-vv      
      vv-vvvvxx     x-vxvvv-x      
      vx·-x·-xxx   v·xv-v-xxx      
      ··vv-·xx-v   vvx-v·-xxv      
      x··xxv-v--   vxxvvv·-vv      
      xx-vxvv·-x·vv-vv·xv-·xx      
      x-·xv-xx··-xx-x---·vx·v      
      vvxvvvvxxv·x·x·-vx·vvvx      
                                   </pre></span><h3 class="ai-display m-0 text-[clamp(1.75rem,2.4vw,2.5rem)] leading-[1]! tracking-[-0.02em]">Secure AI</h3><p class="ai-body m-0 mt-4 max-w-[520px] text-base leading-normal text-[var(--ai-stone)]">Enforce those policies across every AI agent, MCP server, and Skill. Every prompt, response, and agent action is inspected in real time. PII and credentials are blocked before they leave your environment, and injection attempts are caught in flight.</p><div class="mt-6 grid max-w-[520px] gap-2"><span class="flex items-center gap-3 border-t border-[var(--ai-hairline)] pt-2 font-mono text-sm font-light tracking-[0.02em] text-[var(--ai-ink)]"><svg viewBox="0 0 16 16" aria-hidden="true" class="h-4 w-4 shrink-0" style="color:var(--ai-vermilion)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><path d="M8 1.5 14.5 4v4.2L8 14.5 1.5 8.2V4Z"></path></g></svg>PII and secrets blocked in flight</span><span class="flex items-center gap-3 border-t border-[var(--ai-hairline)] pt-2 font-mono text-sm font-light tracking-[0.02em] text-[var(--ai-ink)]"><svg viewBox="0 0 16 16" aria-hidden="true" class="h-4 w-4 shrink-0" style="color:var(--ai-vermilion)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><path d="M1.5 8C4 4.5 6 3.5 8 3.5S12 4.5 14.5 8C12 11.5 10 12.5 8 12.5S4 11.5 1.5 8Z"></path></g><rect x="6.75" y="6.75" width="2.5" height="2.5" fill="currentColor"></rect></svg>Prompt injection and shadow-tool detection</span><span class="flex items-center gap-3 border-t border-[var(--ai-hairline)] pt-2 font-mono text-sm font-light tracking-[0.02em] text-[var(--ai-ink)]"><svg viewBox="0 0 16 16" aria-hidden="true" class="h-4 w-4 shrink-0" style="color:var(--ai-vermilion)"><g fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="square" stroke-linejoin="miter"><path d="M3.5 10.5V7.5a4.5 4.5 0 0 1 9 0v3"></path><path d="M1.5 10.5h13"></path></g><rect x="6.75" y="12" width="2.5" height="2" fill="currentColor"></rect></svg>Alerts to Slack, PagerDuty, or your SIEM</span></div></div></div></section><section class="px-6 pb-16 md:px-12 md:pb-24"><div class="flex flex-wrap items-center gap-x-8 gap-y-5"><span class="ai-eyebrow mr-2 text-[var(--ai-stone)]">Works with every identity provider</span><img src="/assets/svg/wordmarks/okta.svg" alt="Okta" loading="lazy" class="h-6 w-auto filter-[brightness(0)_opacity(0.65)] dark:filter-[brightness(0)_invert(1)_opacity(0.7)]"/><img src="/assets/svg/wordmarks/entra-id.svg" alt="Microsoft Entra ID" loading="lazy" class="h-6 w-auto filter-[brightness(0)_opacity(0.65)] dark:filter-[brightness(0)_invert(1)_opacity(0.7)]"/><img src="/assets/svg/wordmarks/auth0.svg" alt="Auth0" loading="lazy" class="h-9 w-auto filter-[brightness(0)_opacity(0.65)] dark:filter-[brightness(0)_invert(1)_opacity(0.7)]"/><img src="/assets/svg/wordmarks/workos.svg" alt="WorkOS" loading="lazy" class="h-9 w-auto filter-[brightness(0)_opacity(0.65)] dark:filter-[brightness(0)_invert(1)_opacity(0.7)]"/><img src="/assets/svg/wordmarks/google-workspace.svg" alt="Google Workspace" loading="lazy" class="h-6 w-auto filter-[brightness(0)_opacity(0.65)] dark:filter-[brightness(0)_invert(1)_opacity(0.7)]"/><img src="/assets/svg/wordmarks/ping-identity.svg" alt="Ping Identity" loading="lazy" class="h-6 w-auto filter-[brightness(0)_opacity(0.65)] dark:filter-[brightness(0)_invert(1)_opacity(0.7)]"/><span class="border border-[var(--ai-rule)] px-3.5 py-1.5 font-mono text-sm font-light tracking-[0.04em]">Any SAML / OIDC</span></div></section><section id="results" class="ai-inverted px-6 py-16 md:px-12 md:py-24"><div class="grid items-start gap-12 lg:grid-cols-[1.1fr_1fr] lg:gap-24"><div><p class="ai-eyebrow mb-6 text-[var(--ai-inv-faint)]">03 · Results</p><h2 class="ai-display mb-8 text-[clamp(2.25rem,4.6vw,4.5rem)] leading-[1.05]! tracking-[-0.03em]">When AI is governed,<br/>adoption grows</h2><p class="ai-body m-0 max-w-[560px] text-[1.25rem] leading-[1.35] text-[var(--ai-inv-soft)]">Numbers from teams running the control plane in production: full-company rollouts, MCP servers shipped in days, and usage that grows because governance stops being per-project work.</p><a href="/customers/fivetran" class="ai-eyebrow mt-10 inline-block text-[rgb(250,250,250)] underline underline-offset-4">Read the Fivetran story</a></div><div class="relative border-t border-[var(--ai-inv-hairline)] lg:mt-1.5"><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -left-[4px] md:hidden bg-black border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -right-[4px] md:hidden bg-black border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -left-[4px] md:hidden bg-black border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -right-[4px] md:hidden bg-black border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -left-[4px] hidden md:block bg-black border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-850 to-transparent" style="height:40px;top:-40px"></div><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-850" style="width:40px;left:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -right-[4px] hidden md:block bg-black border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-850 to-transparent" style="height:40px;top:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-850" style="width:40px;right:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -left-[4px] hidden md:block bg-black border-neutral-850"><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-850" style="width:40px;left:-40px"></div><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-850 to-transparent" style="height:40px;bottom:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -right-[4px] hidden md:block bg-black border-neutral-850"><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-850 to-transparent" style="height:40px;bottom:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-850" style="width:40px;right:-40px"></div></div><div class="ai-reveal relative border-b border-[var(--ai-inv-hairline)] py-8 pl-6 md:pl-8"><div class="w-[7px] h-[7px] z-10 absolute border -bottom-[4px] -left-[4px] md:hidden bg-black border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border -right-[4px] -bottom-[4px] md:hidden bg-black border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border -bottom-[4px] -left-[4px] hidden md:block bg-black border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-850 to-transparent" style="height:40px;top:-40px"></div><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-850" style="width:40px;left:-40px"></div><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-850 to-transparent" style="height:40px;bottom:-40px"></div></div><div class="w-[7px] h-[7px] z-10 absolute border -right-[4px] -bottom-[4px] hidden md:block bg-black border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-850 to-transparent" style="height:40px;top:-40px"></div><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-850 to-transparent" style="height:40px;bottom:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-850" style="width:40px;right:-40px"></div></div><p class="ai-display text-[clamp(3rem,4vw,4.25rem)] leading-none min-w-[var(--min-w)]" style="--min-w:4.1ch">100%</p><p class="ai-eyebrow mt-4 text-[var(--ai-inv-faint)]">Employee AI rollout</p><p class="ai-body mt-2.5 m-0 flex max-w-[380px] items-baseline gap-1.5 text-base leading-normal text-[var(--ai-inv-soft)]"><img src="/customers/fermat.svg" alt="Fermat" loading="lazy" class="h-6 w-auto shrink-0 translate-y-[2px] self-center opacity-90"/><span>rolled out governed AI to the whole company.</span></p></div><div class="ai-reveal relative border-b border-[var(--ai-inv-hairline)] py-8 pl-6 md:pl-8"><div class="w-[7px] h-[7px] z-10 absolute border -bottom-[4px] -left-[4px] md:hidden bg-black border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border -right-[4px] -bottom-[4px] md:hidden bg-black border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border -bottom-[4px] -left-[4px] hidden md:block bg-black border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-850 to-transparent" style="height:40px;top:-40px"></div><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-850" style="width:40px;left:-40px"></div><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-850 to-transparent" style="height:40px;bottom:-40px"></div></div><div class="w-[7px] h-[7px] z-10 absolute border -right-[4px] -bottom-[4px] hidden md:block bg-black border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-850 to-transparent" style="height:40px;top:-40px"></div><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-850 to-transparent" style="height:40px;bottom:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-850" style="width:40px;right:-40px"></div></div><p class="ai-display text-[clamp(3rem,4vw,4.25rem)] leading-none min-w-[var(--min-w)]" style="--min-w:3.1ch">60K</p><p class="ai-eyebrow mt-4 text-[var(--ai-inv-faint)]">agent sessions governed per week</p><p class="ai-body mt-2.5 m-0 flex max-w-[380px] items-baseline gap-1.5 text-base leading-normal text-[var(--ai-inv-soft)]"><img src="/customers/moonpay.svg" alt="MoonPay" loading="lazy" class="h-6 w-auto shrink-0 translate-y-[2px] self-center opacity-90"/><span>enforces policy across every agent.</span></p></div><div class="ai-reveal relative border-b border-[var(--ai-inv-hairline)] py-8 pl-6 md:pl-8"><p class="ai-display text-[clamp(3rem,4vw,4.25rem)] leading-none min-w-[var(--min-w)]" style="--min-w:4.1ch">200%</p><p class="ai-eyebrow mt-4 text-[var(--ai-inv-faint)]">MCP usage growth</p><p class="ai-body mt-2.5 m-0 flex max-w-[380px] items-baseline gap-1.5 text-base leading-normal text-[var(--ai-inv-soft)]"><img src="/customers/planetscale.svg" alt="PlanetScale" loading="lazy" class="h-6 w-auto shrink-0 translate-y-[2px] self-center opacity-90"/><span>customers are now agent-based.</span></p></div></div></div></section><section id="enterprise" class="px-6 py-16 md:px-12 md:py-24"><div class="mb-16 grid items-center gap-12 lg:grid-cols-[1.2fr_1fr] lg:gap-24"><div><p class="ai-eyebrow mb-6 text-[var(--ai-stone)]">04 · Enterprise</p><h2 class="ai-display mb-8 max-w-[1100px] text-[clamp(2.75rem,6vw,5.5rem)] leading-[1.02]! tracking-[-0.03em]">Certified and supported</h2><p class="ai-body m-0 max-w-[640px] text-[1.25rem] leading-[1.35] text-[var(--ai-stone)]">The control plane meets the standards it helps you enforce. Audit reports and compliance documentation are available through the trust center.</p><div class="mt-10 flex flex-col gap-4 sm:flex-row sm:items-center"><a href="https://trust.speakeasy.com/" class="ai-btn ai-btn--quiet text-center">Visit trust center</a><a href="/enterprise" class="ai-btn ai-btn--quiet text-center">Learn about enterprise</a></div></div><div class="relative flex min-h-[300px] items-center justify-center lg:min-h-[380px]"><div class="relative flex aspect-square w-full max-w-[380px] items-center justify-center"><pre aria-hidden="true" class="font-mono select-none text-[8px] xs:text-[9px] sm:text-[11px] md:text-[12px] lg:text-[13px] xl:text-[15px]" style="color:#808080;line-height:1.1;letter-spacing:0">       *===============*       
   *===++::.........::++===*   
  *===++::...........::++===*  
  *===++::...........::++===*  
  *===++::...........::++===*  
  *===++::...........::++===*  
  *===++::...........::++===*  
  *===++::...........::++===*  
  *===++::...........::++===*  
  **==++::...........::++==**  
    *==++::.........::++==*    
     *==++:.........:++==*     
       *==+:.......:+==*       
         ==+:.....:+==         
           =+:...:+=           
            *+:::+*            
              ===              </pre><div aria-hidden="true" class="pointer-events-none absolute inset-0 flex flex-col items-center justify-center gap-1"><span class="bg-background/55 flex flex-col items-center gap-0.5 rounded-md px-3 py-1.5 backdrop-blur-[2px]"><span class="text-foreground font-mono text-xl font-medium tracking-[0.06em] uppercase md:text-2xl">SOC 2</span><span class="text-muted-foreground font-mono text-[10px] tracking-[0.22em] uppercase md:text-[11px]">Type II</span></span></div><p class="sr-only">Speakeasy is SOC 2 Type II, ISO 27001 and CSA STAR AI certified, GDPR compliant and HIPAA ready.</p></div></div></div><div class="relative grid border-t border-l border-[var(--ai-hairline)] sm:grid-cols-2 lg:grid-cols-3"><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -left-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -right-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -left-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -right-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -left-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;top:-40px"></div><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;left:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -right-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;top:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;right:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -left-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;left:-40px"></div><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;bottom:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -right-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;bottom:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;right:-40px"></div></div><a href="/security/soc-2" class="flex flex-col border-r border-b border-[var(--ai-hairline)] p-6 md:p-8 transition-colors hover:bg-[var(--ai-paper)]"><h3 class="ai-display m-0 text-[clamp(1.75rem,2.4vw,2.5rem)] leading-[1]! tracking-[-0.02em]">SOC 2 Type II</h3><p class="ai-body m-0 mt-4 flex-1 text-base leading-normal text-[var(--ai-stone)]">Audited controls for security, availability, and confidentiality of customer data.</p><span class="ai-eyebrow mt-6 inline-block text-[var(--ai-ink)] underline underline-offset-4">Learn more</span></a><a href="/security/iso-27001" class="flex flex-col border-r border-b border-[var(--ai-hairline)] p-6 md:p-8 transition-colors hover:bg-[var(--ai-paper)]"><h3 class="ai-display m-0 text-[clamp(1.75rem,2.4vw,2.5rem)] leading-[1]! tracking-[-0.02em]">ISO 27001</h3><p class="ai-body m-0 mt-4 flex-1 text-base leading-normal text-[var(--ai-stone)]">Certified information security management system aligned with international standards.</p><span class="ai-eyebrow mt-6 inline-block text-[var(--ai-ink)] underline underline-offset-4">Learn more</span></a><div class="flex flex-col border-r border-b border-[var(--ai-hairline)] p-6 md:p-8"><h3 class="ai-display m-0 text-[clamp(1.75rem,2.4vw,2.5rem)] leading-[1]! tracking-[-0.02em]">Forward-deployed engineering</h3><p class="ai-body m-0 mt-4 flex-1 text-base leading-normal text-[var(--ai-stone)]">A dedicated engineering team that works alongside yours to integrate, customize, and ship.</p></div></div></section><hr class="m-0 border-0 border-t border-[var(--ai-hairline)]"/><section class="px-6 py-16 md:px-12 md:py-24"><p class="ai-eyebrow mb-6 text-[var(--ai-stone)] text-center">Every agent</p><h2 class="ai-display mb-8 max-w-[1100px] text-[clamp(2.75rem,6vw,5.5rem)] leading-[1.02]! tracking-[-0.03em] mx-auto text-center">One control plane for every agent</h2><p class="ai-body mb-16 max-w-[640px] text-[1.25rem] leading-[1.35] text-[var(--ai-stone)] mx-auto text-center">Teams rarely settle on a single agent. The same identity, guardrails, and audit trail apply across Anthropic, OpenAI, Google, and the agents your teams build and deploy themselves, whether an employee is at the keyboard or the agent runs autonomously.</p><div class="relative grid border-t border-l border-[var(--ai-hairline)] sm:grid-cols-2 lg:grid-cols-4"><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -left-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -right-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -left-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -right-[4px] md:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -left-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;top:-40px"></div><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;left:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -top-[4px] -right-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -top-[20px] left-[2px] w-[1px] h-[20px] xl:-top-[48px] xl:h-[48px] bg-gradient-to-t from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;top:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;right:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -left-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -left-[20px] top-[2px] h-[1px] w-[20px] xl:-left-[48px] xl:w-[48px] bg-gradient-to-r from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;left:-40px"></div><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;bottom:-40px"></div></div><div class="w-[7px] h-[7px] z-10 border absolute -bottom-[4px] -right-[4px] hidden md:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"><div class="absolute -bottom-[20px] left-[2px] w-[1px] h-[20px] xl:-bottom-[48px] xl:h-[48px] bg-gradient-to-b from-neutral-300 to-transparent dark:from-neutral-850 dark:to-transparent" style="height:40px;bottom:-40px"></div><div class="absolute -right-[20px] top-[2px] h-[1px] w-[20px] xl:-right-[48px] xl:w-[48px] bg-gradient-to-l from-transparent to-neutral-300 dark:from-transparent dark:to-neutral-850" style="width:40px;right:-40px"></div></div><div class="w-[7px] h-[7px] z-10 absolute border md:block top-1/2 left-1/2 -mt-[4px] -ml-[4px] hidden sm:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border top-1/2 left-1/4 -mt-[4px] -ml-[4px] hidden md:hidden lg:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border top-1/2 left-3/4 -mt-[4px] -ml-[4px] hidden md:hidden lg:block dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block top-1/4 left-1/2 -mt-[4px] -ml-[4px] hidden sm:block lg:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><div class="w-[7px] h-[7px] z-10 absolute border md:block top-3/4 left-1/2 -mt-[4px] -ml-[4px] hidden sm:block lg:hidden dark:bg-black border-neutral-300 bg-white dark:border-neutral-850"></div><a href="/use-cases/claude-control" aria-label="Anthropic control plane" class="group flex items-center gap-5 border-b border-r border-[var(--ai-hairline)] p-6 md:p-8 transition-colors hover:bg-[var(--ai-paper)]"><span aria-hidden="true" class="flex h-[3.25rem] w-[3.25rem] shrink-0 items-center justify-center border border-[var(--ai-hairline)] bg-[var(--ai-bone)]"><img src="/assets/platform-diagram/agent-icons/anthropic.svg" alt="" loading="lazy" width="24" height="24" class="h-6 w-6 object-contain"/></span><span class="ai-body flex-1 text-lg">Anthropic</span><span aria-hidden="true" class="ai-body text-lg text-[var(--ai-stone)] opacity-0 transition-opacity group-hover:opacity-100">↗</span></a><a href="/use-cases/codex-control" aria-label="OpenAI control plane" class="group flex items-center gap-5 border-b border-r border-[var(--ai-hairline)] p-6 md:p-8 transition-colors hover:bg-[var(--ai-paper)]"><span aria-hidden="true" class="flex h-[3.25rem] w-[3.25rem] shrink-0 items-center justify-center border border-[var(--ai-hairline)] bg-[var(--ai-bone)]"><img src="/assets/platform-diagram/agent-icons/openai.svg" alt="" loading="lazy" width="24" height="24" class="h-6 w-6 object-contain invert dark:invert-0"/></span><span class="ai-body flex-1 text-lg">OpenAI</span><span aria-hidden="true" class="ai-body text-lg text-[var(--ai-stone)] opacity-0 transition-opacity group-hover:opacity-100">↗</span></a><a href="/use-cases/gemini-control" aria-label="Google control plane" class="group flex items-center gap-5 border-b border-r border-[var(--ai-hairline)] p-6 md:p-8 transition-colors hover:bg-[var(--ai-paper)]"><span aria-hidden="true" class="flex h-[3.25rem] w-[3.25rem] shrink-0 items-center justify-center border border-[var(--ai-hairline)] bg-[var(--ai-bone)]"><img src="/assets/platform-diagram/agent-icons/google.svg" alt="" loading="lazy" width="24" height="24" class="h-6 w-6 object-contain"/></span><span class="ai-body flex-1 text-lg">Google</span><span aria-hidden="true" class="ai-body text-lg text-[var(--ai-stone)] opacity-0 transition-opacity group-hover:opacity-100">↗</span></a><a href="/use-cases/cursor-control" aria-label="Cursor control plane" class="group flex items-center gap-5 border-b border-r border-[var(--ai-hairline)] p-6 md:p-8 transition-colors hover:bg-[var(--ai-paper)]"><span aria-hidden="true" class="flex h-[3.25rem] w-[3.25rem] shrink-0 items-center justify-center border border-[var(--ai-hairline)] bg-[var(--ai-bone)]"><img src="/assets/platform-diagram/agent-icons/cursor.svg" alt="" loading="lazy" width="24" height="24" class="h-6 w-6 object-contain invert dark:invert-0"/></span><span class="ai-body flex-1 text-lg">Cursor</span><span aria-hidden="true" class="ai-body text-lg text-[var(--ai-stone)] opacity-0 transition-opacity group-hover:opacity-100">↗</span></a><div class="flex items-center gap-5 border-b border-r border-[var(--ai-hairline)] p-6 md:p-8"><span aria-hidden="true" class="flex h-[3.25rem] w-[3.25rem] shrink-0 items-center justify-center border border-[var(--ai-hairline)] bg-[var(--ai-bone)]"><img src="/assets/platform-diagram/agent-icons/gh-copilot.svg" alt="" loading="lazy" width="24" height="24" class="h-6 w-6 object-contain invert dark:invert-0"/></span><span class="ai-body flex-1 text-lg">GitHub Copilot</span></div><a href="/use-cases/opencode-control" aria-label="OpenCode control plane" class="group flex items-center gap-5 border-b border-r border-[var(--ai-hairline)] p-6 md:p-8 transition-colors hover:bg-[var(--ai-paper)]"><span aria-hidden="true" class="flex h-[3.25rem] w-[3.25rem] shrink-0 items-center justify-center border border-[var(--ai-hairline)] bg-[var(--ai-bone)]"><img src="/assets/platform-diagram/agent-icons/opencode.svg" alt="" loading="lazy" width="24" height="24" class="h-6 w-6 object-contain invert dark:invert-0"/></span><span class="ai-body flex-1 text-lg">OpenCode</span><span aria-hidden="true" class="ai-body text-lg text-[var(--ai-stone)] opacity-0 transition-opacity group-hover:opacity-100">↗</span></a><div class="flex items-center gap-5 border-b border-r border-[var(--ai-hairline)] p-6 md:p-8"><span aria-hidden="true" class="flex h-[3.25rem] w-[3.25rem] shrink-0 items-center justify-center border border-[var(--ai-hairline)] bg-[var(--ai-bone)]"><img src="/assets/platform-diagram/agent-icons/devin.png" alt="" loading="lazy" width="24" height="24" class="h-6 w-6 object-contain"/></span><span class="ai-body flex-1 text-lg">Devin</span></div><div class="flex items-center gap-5 border-b border-r border-[var(--ai-hairline)] p-6 md:p-8"><span aria-hidden="true" class="flex h-[3.25rem] w-[3.25rem] shrink-0 items-center justify-center border border-[var(--ai-hairline)] bg-[var(--ai-bone)]"><span class="font-mono text-sm tracking-tight text-[var(--ai-ink)]">&gt;_</span></span><span class="ai-body flex-1 text-lg">Custom agents</span></div></div></section><section class="border-y border-[var(--ai-hairline)] bg-[var(--ai-paper)] px-6 py-16 md:px-12 md:py-24"><figure class="m-0 grid gap-x-10 gap-y-2 md:grid-cols-[4.5rem_1fr]"><span aria-hidden="true" class="ai-display -mt-2 block select-none text-[4.5rem] leading-[0.8]! md:-mt-3 md:text-[7rem]" style="color:var(--ai-ember)">“</span><div><blockquote class="m-0 p-0"><p class="ai-display m-0 max-w-[1250px] text-[clamp(2.25rem,4.5vw,4.25rem)] leading-[1.04]! tracking-[-0.02em]">Becoming AI-native meant that we needed an entirely new governance &amp; observability stack. You can&#x27;t use old tools to cover your team&#x27;s new way of working.</p></blockquote><figcaption class="mt-12 flex flex-wrap items-center gap-x-7 gap-y-5"><img src="/assets/quote-headshots/shreyas-kumar.webp" alt="" loading="lazy" width="56" height="56" class="h-14 w-14 border border-[var(--ai-rule)] object-cover grayscale"/><div><p class="ai-body m-0 text-lg leading-tight">Shreyas Kumar</p><p class="ai-eyebrow m-0 mt-1.5 text-[var(--ai-stone)]">Co-founder, Fermat</p></div><span aria-hidden="true" class="mx-1 hidden h-12 w-px bg-[var(--ai-hairline)] sm:block"></span><img src="/customers/fermat.svg" alt="Fermat" loading="lazy" class="h-12 w-auto opacity-70 invert dark:invert-0"/></figcaption></div></figure></section><section id="faq" class="px-6 py-16 md:px-12 md:py-24"><p class="ai-eyebrow mb-10 text-[var(--ai-stone)]">Questions</p><div class="ai-faq max-w-[960px] border-t border-[var(--ai-hairline)]"><details class="border-b border-[var(--ai-hairline)]"><summary class="ai-body flex items-baseline justify-between gap-6 py-6 text-xl md:text-[1.375rem]">What is an AI control plane?</summary><div class="ai-body max-w-[70ch] pb-8 text-lg leading-[1.45] text-[var(--ai-stone)]">An AI control plane is a centralized platform that gives organizations governance and security over every AI agent, MCP server, and AI application across the company. Speakeasy provides a single layer to define who AI can access, what it can do, and which policies it must follow, and then enforces those policies on every action.</div></details><details class="border-b border-[var(--ai-hairline)]"><summary class="ai-body flex items-baseline justify-between gap-6 py-6 text-xl md:text-[1.375rem]">What AI agents does Speakeasy support?</summary><div class="ai-body max-w-[70ch] pb-8 text-lg leading-[1.45] text-[var(--ai-stone)]">Speakeasy works with Claude, ChatGPT, Cursor, GitHub Copilot, and any AI agent that supports the MCP protocol. A single policy layer governs all of them, so teams can use the tools they prefer without creating security gaps.</div></details><details class="border-b border-[var(--ai-hairline)]"><summary class="ai-body flex items-baseline justify-between gap-6 py-6 text-xl md:text-[1.375rem]">How are AI policies defined?</summary><div class="ai-body max-w-[70ch] pb-8 text-lg leading-[1.45] text-[var(--ai-stone)]">Policies are written once at the control plane, in language the owning team can read, and scoped to the person or agent, the system, and the action. Access follows teams and roles from your identity provider, reads and writes are treated as different privileges, permissions go down to the individual tool, and a matching deny always wins.</div></details><details class="border-b border-[var(--ai-hairline)]"><summary class="ai-body flex items-baseline justify-between gap-6 py-6 text-xl md:text-[1.375rem]">How are policies enforced?</summary><div class="ai-body max-w-[70ch] pb-8 text-lg leading-[1.45] text-[var(--ai-stone)]">Every prompt, response, and tool call crosses the control plane, where it&#x27;s checked against policy in real time before it reaches your systems. There is no side channel to bypass, and enforcement is the same whether an employee is driving the agent or it runs autonomously. Every allow-or-deny decision is logged, and violations can alert Slack, PagerDuty, or your SIEM.</div></details><details class="border-b border-[var(--ai-hairline)]"><summary class="ai-body flex items-baseline justify-between gap-6 py-6 text-xl md:text-[1.375rem]">How does Speakeasy handle security and compliance?</summary><div class="ai-body max-w-[70ch] pb-8 text-lg leading-[1.45] text-[var(--ai-stone)]">Every prompt, response, and tool call is inspected in real time. Speakeasy detects and blocks PII, credentials, and prompt injection attempts before they leave your perimeter. The platform is SOC 2 Type II and ISO 27001 certified, with a full audit trail for every session.</div></details><details class="border-b border-[var(--ai-hairline)]"><summary class="ai-body flex items-baseline justify-between gap-6 py-6 text-xl md:text-[1.375rem]">How long does it take to deploy?</summary><div class="ai-body max-w-[70ch] pb-8 text-lg leading-[1.45] text-[var(--ai-stone)]">Most teams are up and running within a day. Speakeasy integrates with existing SSO providers like Okta and Entra ID, so access inherits your current groups and roles with no manual provisioning. Self-hosted and cloud deployment options are available.</div></details><details class="border-b border-[var(--ai-hairline)]"><summary class="ai-body flex items-baseline justify-between gap-6 py-6 text-xl md:text-[1.375rem]">What is MCP and why does it matter?</summary><div class="ai-body max-w-[70ch] pb-8 text-lg leading-[1.45] text-[var(--ai-stone)]">MCP (Model Context Protocol) is an open standard that lets AI agents connect to external tools and data sources. Speakeasy provides a managed platform for deploying, securing, and observing MCP servers at scale, turning any internal API or SaaS tool into a governed AI capability.</div></details><details class="border-b border-[var(--ai-hairline)]"><summary class="ai-body flex items-baseline justify-between gap-6 py-6 text-xl md:text-[1.375rem]">Can Speakeasy be self-hosted?</summary><div class="ai-body max-w-[70ch] pb-8 text-lg leading-[1.45] text-[var(--ai-stone)]">Yes. Speakeasy can be deployed in your own cloud or on-premises for full data residency control. The self-hosted option has no external dependencies and meets the requirements of teams that can&#x27;t send data to third-party infrastructure.</div></details></div></section><hr class="m-0 border-0 border-t border-[var(--ai-hairline)]"/></div></div><section id="prefooter" class="bsmnt-container-xl my-10 md:my-20"><div class="relative mx-auto h-auto w-full pt-8 pb-24 md:w-[37vw] md:pt-0 md:pb-0"><p class="bsmnt-text-display-md font-display text-shadow-ascii-contrast absolute top-0 left-0 z-[1] text-[clamp(1.75rem,3vw,3.1875rem)] font-thin md:top-1/4 md:-translate-x-[90%]">AI everywhere.</p><div class="aspect-[50/53] h-full w-full p-[2vw]"></div><div class="absolute right-0 bottom-0 z-[1] flex w-full flex-col items-end gap-4 md:bottom-1/4 md:w-fit md:translate-x-[65%]"><p class="bsmnt-text-display-md font-display text-shadow-ascii-contrast text-[clamp(1.75rem,3vw,3.1875rem)] font-thin whitespace-nowrap">Control here.</p></div></div><div class="relative z-[1] mt-10 flex flex-col items-center gap-4 md:flex-row md:justify-center"><a href="/talk-to-us" class="relative inline-flex group z-[1] cursor-pointer items-center justify-center gap-2.5 font-mono text-[15px] leading-[1.6] whitespace-nowrap uppercase transition-all outline-none select-none disabled:pointer-events-none [&amp;_svg]:pointer-events-none [&amp;_svg]:mb-px [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-neutral-800 text-white shadow-[0px_2px_1px_0px_#414141_inset,0px_-2px_1px_0px_rgba(0,0,0,0.05)_inset] dark:bg-[#F8F8F8] dark:text-neutral-800 dark:shadow-[0px_2px_1px_0px_#FFF_inset,_0px_-2px_1px_100px_rgba(0,0,0,0.0)_inset,_0px_-2px_1px_0px_rgba(0,0,0,0.1)_inset] interact:bg-neutral-850 dark:interact:bg-neutral-200 dark:interact:shadow-[0px_2px_1px_0px_#F3F3F3_inset,_0px_-40px_10px_10px_rgba(220,220,220,1)_inset,_0px_-2px_1px_0px_rgba(0,0,0,0.05)_inset] active:bg-neutral-850 active:shadow-[0px_5px_1px_0px_#1a1a1a_inset,0px_-2px_1px_0px_rgba(21,21,21,1)_inset] dark:active:bg-neutral-400 dark:active:shadow-[0px_2px_1px_0px_rgba(0,0,0,0.25)_inset] focus-visible:ring-1 focus-visible:ring-offset-3 focus-visible:ring-[#979797] dark:focus-visible:ring-neutral-300 focus-visible:ring-offset-background disabled:opacity-50 h-10 px-5 py-2 min-w-[18.75rem] md:min-w-0 cta-app-home rounded-lg tracking-[0.08em]">Talk to us<span aria-hidden="true">&gt;</span></a><a href="/product/ai-control-plane" aria-label="Explore the AI Control Plane product page" class="relative inline-flex group z-[1] cursor-pointer items-center justify-center gap-2.5 font-mono text-[15px] leading-[1.6] whitespace-nowrap uppercase transition-all outline-none select-none disabled:pointer-events-none [&amp;_svg]:pointer-events-none [&amp;_svg]:mb-px [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-[#F8F8F8] !text-neutral-800 shadow-[0px_2px_1px_0px_#FFF_inset,_0px_-2px_1px_40px_rgba(0,0,0,0.0)_inset,_0px_-2px_1px_0px_rgba(0,0,0,0.1)_inset] dark:bg-neutral-800 dark:!text-white dark:shadow-[0px_2px_1px_0px_#414141_inset,0px_-2px_1px_0px_rgba(0,0,0,0.05)_inset] interact:bg-neutral-200 interact:shadow-[0px_2px_1px_0px_#F3F3F3_inset,_0px_-40px_10px_10px_rgba(220,220,220,1)_inset,_0px_-2px_1px_0px_rgba(0,0,0,0.05)_inset] dark:interact:bg-neutral-850 active:bg-neutral-200 active:shadow-[0px_2px_1px_0px_rgba(0,0,0,0.25)_inset] dark:active:bg-neutral-850 dark:active:shadow-[0px_5px_1px_0px_#1a1a1a_inset,0px_-2px_1px_0px_rgba(21,21,21,1)_inset] focus-visible:ring-1 focus-visible:ring-offset-3 focus-visible:ring-[#979797] dark:focus-visible:ring-neutral-300 focus-visible:ring-offset-background disabled:opacity-50 h-10 px-5 py-2 min-w-[18.75rem] md:min-w-0 cta-app-home rounded-lg tracking-[0.08em]">Explore the AI Control Plane</a></div></section><!--astro:end--></astro-island>  </main> <div data-site-footer> <astro-island uid="24OF1R" component-url="/_astro/site-footer.D7qWj7c6.js" component-export="default" renderer-url="/_astro/client.Ba23cQob.js" props="{}" ssr client="only" opts="{&quot;name&quot;:&quot;SiteFooter&quot;,&quot;value&quot;:&quot;react&quot;}"></astro-island> </div> </div>  <script>
    (function () {
      var revealed = false;
      function reveal() {
        if (revealed) return;
        revealed = true;
        document.documentElement.setAttribute("data-mkt-ready", "");
      }
      function contentReady() {
        var m = document.getElementById("main");
        if (!m) return false;
        var island = m.querySelector("astro-island");
        // A client:only island ships empty and only gains child elements once
        // React mounts — that's the signal the page body has rendered. (Can't
        // use <main>'s height: it's flex-1 so it fills the viewport even empty.)
        if (island) return island.childElementCount > 0;
        // No island (already-SSR'd content) — it's there immediately.
        return m.childElementCount > 0;
      }
      if (contentReady()) {
        reveal();
      } else {
        var m = document.getElementById("main");
        var mo = new MutationObserver(function () {
          if (contentReady()) {
            mo.disconnect();
            reveal();
          }
        });
        if (m) mo.observe(m, { childList: true, subtree: true });
        // Safety net: never leave the footer hidden indefinitely.
        setTimeout(reveal, 3000);
      }
    })();
  </script>  <astro-island uid="Z1U3QYJ" component-url="/_astro/agent-mode.Bwt7BFlE.js" component-export="default" renderer-url="/_astro/client.Ba23cQob.js" props="{}" ssr client="only" opts="{&quot;name&quot;:&quot;AgentMode&quot;,&quot;value&quot;:&quot;react&quot;}"></astro-island>  <astro-island uid="Z24bTP3" prefix="r5" component-url="/_astro/cookie-consent.CGSBgcFf.js" component-export="default" renderer-url="/_astro/client.Ba23cQob.js" props="{}" ssr client="idle" opts="{&quot;name&quot;:&quot;CookieConsent&quot;,&quot;value&quot;:true}" await-children><style id="c15t-theme">:root, .c15t-theme-root {
--c15t-primary: var(--color-primary);
--c15t-primary-hover: color-mix(in srgb, var(--color-primary) 85%, var(--color-background));
--c15t-surface: var(--color-card);
--c15t-surface-hover: var(--color-muted);
--c15t-border: var(--color-border);
--c15t-border-hover: var(--color-border);
--c15t-text: var(--color-foreground);
--c15t-text-muted: var(--color-muted-foreground);
--c15t-text-on-primary: var(--color-background);
--c15t-overlay: color-mix(in srgb, var(--color-background) 60%, transparent);
--c15t-switch-track: var(--color-bsmnt-neutral-400);
--c15t-switch-track-active: var(--color-primary);
--c15t-switch-thumb: var(--color-base-white);
--c15t-font-family: var(--font-diatype);
--c15t-font-size-sm: 0.875rem;
--c15t-font-size-base: 1rem;
--c15t-font-size-lg: 1.125rem;
--c15t-font-weight-normal: 400;
--c15t-font-weight-medium: 500;
--c15t-font-weight-semibold: 600;
--c15t-line-height-tight: 1.25;
--c15t-line-height-normal: 1.5;
--c15t-line-height-relaxed: 1.75;
--c15t-space-xs: 0.25rem;
--c15t-space-sm: 0.5rem;
--c15t-space-md: 1rem;
--c15t-space-lg: 1.5rem;
--c15t-space-xl: 2rem;
--c15t-radius-sm: var(--radius-sm);
--c15t-radius-md: var(--radius);
--c15t-radius-lg: var(--radius-lg);
--c15t-radius-full: 9999px;
--c15t-shadow-sm: 0 1px 2px hsla(0, 0%, 0%, 0.05);
--c15t-shadow-md: 0 4px 12px hsla(0, 0%, 0%, 0.08);
--c15t-shadow-lg: 0 8px 24px hsla(0, 0%, 0%, 0.12);
--c15t-duration-fast: 80ms;
--c15t-duration-normal: 150ms;
--c15t-duration-slow: 200ms;
--c15t-easing: cubic-bezier(0.4, 0, 0.2, 1);
--c15t-easing-out: cubic-bezier(0.215, 0.61, 0.355, 1);
--c15t-easing-in-out: cubic-bezier(0.645, 0.045, 0.355, 1);
--c15t-easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

:root.dark, .dark .c15t-theme-root, :root.c15t-dark, .c15t-dark .c15t-theme-root {
--c15t-primary: var(--color-primary);
--c15t-primary-hover: color-mix(in srgb, var(--color-primary) 85%, var(--color-background));
--c15t-surface: var(--color-card);
--c15t-surface-hover: var(--color-muted);
--c15t-border: var(--color-border);
--c15t-border-hover: var(--color-border);
--c15t-text: var(--color-foreground);
--c15t-text-muted: var(--color-muted-foreground);
--c15t-text-on-primary: var(--color-background);
--c15t-overlay: color-mix(in srgb, var(--color-background) 60%, transparent);
--c15t-switch-track: var(--color-bsmnt-neutral-600);
--c15t-switch-track-active: var(--color-primary);
--c15t-switch-thumb: var(--color-base-black);
--c15t-font-family: var(--font-diatype);
--c15t-font-size-sm: 0.875rem;
--c15t-font-size-base: 1rem;
--c15t-font-size-lg: 1.125rem;
--c15t-font-weight-normal: 400;
--c15t-font-weight-medium: 500;
--c15t-font-weight-semibold: 600;
--c15t-line-height-tight: 1.25;
--c15t-line-height-normal: 1.5;
--c15t-line-height-relaxed: 1.75;
--c15t-space-xs: 0.25rem;
--c15t-space-sm: 0.5rem;
--c15t-space-md: 1rem;
--c15t-space-lg: 1.5rem;
--c15t-space-xl: 2rem;
--c15t-radius-sm: var(--radius-sm);
--c15t-radius-md: var(--radius);
--c15t-radius-lg: var(--radius-lg);
--c15t-radius-full: 9999px;
--c15t-shadow-sm: 0 1px 2px hsla(0, 0%, 0%, 0.05);
--c15t-shadow-md: 0 4px 12px hsla(0, 0%, 0%, 0.08);
--c15t-shadow-lg: 0 8px 24px hsla(0, 0%, 0%, 0.12);
--c15t-duration-fast: 80ms;
--c15t-duration-normal: 150ms;
--c15t-duration-slow: 200ms;
--c15t-easing: cubic-bezier(0.4, 0, 0.2, 1);
--c15t-easing-out: cubic-bezier(0.215, 0.61, 0.355, 1);
--c15t-easing-in-out: cubic-bezier(0.645, 0.045, 0.355, 1);
--c15t-easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/*
 * Utility class to disable transitions during theme switching.
 * Apply this class to the root element before switching themes,
 * then remove it after a short delay to prevent flash of
 * animated content during the color scheme change.
 *
 * Example usage:
 *   document.documentElement.classList.add('c15t-no-transitions');
 *   // Switch theme...
 *   requestAnimationFrame(() => {
 *     document.documentElement.classList.remove('c15t-no-transitions');
 *   });
 */
.c15t-no-transitions,
.c15t-no-transitions *,
.c15t-no-transitions *::before,
.c15t-no-transitions *::after {
	transition: none !important;
	animation: none !important;
}</style><!--astro:end--></astro-island> </body> </html>