Understand the governance gap created by modern AI coding agents.
AI coding assistants are local agent runtimes. They do not only produce text. They read files, assemble repository context, send prompts and tool schemas to remote model APIs, receive tool-call requests, run local tools, write files, and preserve session history.That operating model creates a new security boundary on every developer workstation.
The gap
Most assistant controls are local to one tool and one machine:
Prompt instructions steer behavior, but they do not enforce policy.
Runtime approvals reduce friction for one developer, but they accumulate as local state.
Hook systems are powerful, but deployment and failure behavior differ by tool.
Sandbox settings are session-scoped and product-specific.
Provider logs show API requests, but they do not show local file changes or approvals.
At team scale, this leaves security teams with fragmented evidence:
The model provider knows that a request happened.
The assistant transcript knows that a tool call happened.
Git or the filesystem knows that files changed.
Local approval files know which patterns are currently allowed.
Rye exists to connect those records and enforce policy outside any single assistant.
Rye’s control point
Rye supervises the workstation layer around the assistant:
The process wrapper sees session start and end, terminal output, approval text, and file changes.
The local proxy sees model traffic before it reaches the provider.
The policy engine can allow, deny, or mark requests as approval-required before forwarding.
The history ingester reads existing assistant transcript stores.
The daemon uploads normalized events to the control plane.
This gives teams a consistent governance layer across Claude Code, Codex CLI, Cursor, Windsurf, and future tools.
What Rye helps prove
Rye is designed to answer operational questions:
What exactly left the workstation?
Which policy revision evaluated the request?
Which model, domain, path, and user agent were involved?
Which local process and device produced the event?
Which files changed during the same session?
Which approvals were granted, and did they create persistent rules?
The goal is not to block AI coding tools. The goal is to make their real operating boundary visible, enforceable, and auditable.
For a practical rollout, start with one wrapped CLI on one test workstation. Capture only model API domains, verify TLS trust, inspect metadata first, then expand policy and retention.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Rye","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/rye-ai/BG8lFnknHdbJdKWo/logo/light.svg?fit=max\u0026auto=format\u0026n=BG8lFnknHdbJdKWo\u0026q=85\u0026s=d9bd4cc1345793689080fc5e5e0b0e42","dark":"https://mintcdn.com/rye-ai/BG8lFnknHdbJdKWo/logo/dark.svg?fit=max\u0026auto=format\u0026n=BG8lFnknHdbJdKWo\u0026q=85\u0026s=acebbb34248a1e56612a38d99bb106de"},"favicon":"https://mintcdn.com/rye-ai/BG8lFnknHdbJdKWo/favicon.svg?fit=max\u0026auto=format\u0026n=BG8lFnknHdbJdKWo\u0026q=85\u0026s=7eeb7a60a8f0ab901aad4b9922c7068a","navbar":{"links":[{"href":"mailto:security@rye.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://oven.rye.ai/auth/login"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Rye home","icon":"house","href":"https://rye.ai"},{"anchor":"Articles","icon":"newspaper","href":"https://rye.ai/blog/"},{"anchor":"Pricing","icon":"credit-card","href":"https://rye.ai/pricing/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"rye-ai","hasAudioNarration":false,"actualSubdomain":"rye-ai","customDomains":["docs.rye.ai"],"gitSource":{"type":"github","owner":"ryeai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aea20e6ae526b10c2a5b656:success","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Configure Rye","count":4},{"language":"default","tag":"Core concepts","count":4},{"language":"default","tag":"Operate","count":3},{"language":"default","tag":"Start here","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"why-rye","slug":"/why-rye","pageMetadata":{"title":"Why Rye exists","description":"Understand the governance gap created by modern AI coding agents.","href":"/why-rye"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Understand the governance gap created by modern AI coding agents.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`AI coding assistants are local agent runtimes. They do not only produce text. They read files, assemble repository context, send prompts and tool schemas to remote model APIs, receive tool-call requests, run local tools, write files, and preserve session history.`}),`\n`,_jsx(_components.p,{children:`That operating model creates a new security boundary on every developer workstation.`}),`\n`,_jsx(Heading,{level:`2`,id:`the-gap`,children:`The gap`}),`\n`,_jsx(_components.p,{children:`Most assistant controls are local to one tool and one machine:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Prompt instructions steer behavior, but they do not enforce policy.`}),`\n`,_jsx(_components.li,{children:`Runtime approvals reduce friction for one developer, but they accumulate as local state.`}),`\n`,_jsx(_components.li,{children:`Hook systems are powerful, but deployment and failure behavior differ by tool.`}),`\n`,_jsx(_components.li,{children:`Sandbox settings are session-scoped and product-specific.`}),`\n`,_jsx(_components.li,{children:`Provider logs show API requests, but they do not show local file changes or approvals.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`At team scale, this leaves security teams with fragmented evidence:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The model provider knows that a request happened.`}),`\n`,_jsx(_components.li,{children:`The assistant transcript knows that a tool call happened.`}),`\n`,_jsx(_components.li,{children:`Git or the filesystem knows that files changed.`}),`\n`,_jsx(_components.li,{children:`Local approval files know which patterns are currently allowed.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Rye exists to connect those records and enforce policy outside any single assistant.`}),`\n`,_jsx(Heading,{level:`2`,id:`rye’s-control-point`,children:`Rye’s control point`}),`\n`,_jsx(_components.p,{children:`Rye supervises the workstation layer around the assistant:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The process wrapper sees session start and end, terminal output, approval text, and file changes.`}),`\n`,_jsx(_components.li,{children:`The local proxy sees model traffic before it reaches the provider.`}),`\n`,_jsx(_components.li,{children:`The policy engine can allow, deny, or mark requests as approval-required before forwarding.`}),`\n`,_jsx(_components.li,{children:`The history ingester reads existing assistant transcript stores.`}),`\n`,_jsx(_components.li,{children:`The daemon uploads normalized events to the control plane.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`This gives teams a consistent governance layer across Claude Code, Codex CLI, Cursor, Windsurf, and future tools.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-rye-helps-prove`,children:`What Rye helps prove`}),`\n`,_jsx(_components.p,{children:`Rye is designed to answer operational questions:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`What exactly left the workstation?`}),`\n`,_jsx(_components.li,{children:`Which policy revision evaluated the request?`}),`\n`,_jsx(_components.li,{children:`Which model, domain, path, and user agent were involved?`}),`\n`,_jsx(_components.li,{children:`Which local process and device produced the event?`}),`\n`,_jsx(_components.li,{children:`Which files changed during the same session?`}),`\n`,_jsx(_components.li,{children:`Which approvals were granted, and did they create persistent rules?`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The goal is not to block AI coding tools. The goal is to make their real operating boundary visible, enforceable, and auditable.`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`For a practical rollout, start with one wrapped CLI on one test workstation. Capture only model API domains, verify TLS trust, inspect metadata first, then expand policy and retention.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Why Rye exists","description":"Understand the governance gap created by modern AI coding agents.","href":"/why-rye"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The gap","slug":"the-gap","depth":2,"children":[]},{"title":"Rye’s control point","slug":"rye’s-control-point","depth":2,"children":[]},{"title":"What Rye helps prove","slug":"what-rye-helps-prove","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"rye-ai","siteName":"Rye","title":"Why Rye exists - Rye","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-28T17:59:51.342Z","originalFileLocation":"why-rye.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Understand the governance gap created by modern AI coding agents.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Rye\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rye-ai/GCW7BLaGEfo9b6An/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/rye-ai/GCW7BLaGEfo9b6An/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rye-ai/GCW7BLaGEfo9b6An/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rye-ai/GCW7BLaGEfo9b6An/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rye-ai/GCW7BLaGEfo9b6An/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rye-ai/GCW7BLaGEfo9b6An/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rye-ai/GCW7BLaGEfo9b6An/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rye-ai/GCW7BLaGEfo9b6An/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rye-ai/GCW7BLaGEfo9b6An/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Why Rye exists - Rye\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understand the governance gap created by modern AI coding agents.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Rye\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.rye.ai/why-rye\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://rye-ai.mintlify.site/_mintlify/api/og/v2?division=Core+concepts\u0026amp;title=Why+Rye+exists\u0026amp;description=Understand+the+governance+gap+created+by+modern+AI+coding+agents.\u0026amp;theme=074f0988828a11e2b0f8a992\u0026amp;signature=2e4fe1a54d9a0d61acf6202dad9411c5b1964cc057b9482ea504a86f1b0ab10a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Why Rye exists - Rye\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understand the governance gap created by modern AI coding agents.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://rye-ai.mintlify.site/_mintlify/api/og/v2?division=Core+concepts\u0026amp;title=Why+Rye+exists\u0026amp;description=Understand+the+governance+gap+created+by+modern+AI+coding+agents.\u0026amp;theme=074f0988828a11e2b0f8a992\u0026amp;signature=2e4fe1a54d9a0d61acf6202dad9411c5b1964cc057b9482ea504a86f1b0ab10a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/rye-ai/GCW7BLaGEfo9b6An/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Rye\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.rye.ai/why-rye\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/why-rye.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.rye.ai/#organization\",\"name\":\"Rye\",\"url\":\"https://docs.rye.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/rye-ai/BG8lFnknHdbJdKWo/logo/light.svg?fit=max\u0026auto=format\u0026n=BG8lFnknHdbJdKWo\u0026q=85\u0026s=d9bd4cc1345793689080fc5e5e0b0e42\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.rye.ai#website\",\"name\":\"Rye\",\"url\":\"https://docs.rye.ai\",\"publisher\":{\"@id\":\"https://docs.rye.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.rye.ai/why-rye#webpage\",\"url\":\"https://docs.rye.ai/why-rye\",\"name\":\"Why Rye exists\",\"description\":\"Understand the governance gap created by modern AI coding agents.\",\"dateModified\":\"2026-07-28T17:59:51.342Z\",\"isPartOf\":{\"@id\":\"https://docs.rye.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.rye.ai/why-rye#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.rye.ai/why-rye#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Rye\",\"item\":\"https://docs.rye.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why Rye exists\",\"item\":\"https://docs.rye.ai/why-rye\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.rye.ai/why-rye#article\",\"headline\":\"Why Rye exists\",\"name\":\"Why Rye exists\",\"description\":\"Understand the governance gap created by modern AI coding agents.\",\"url\":\"https://docs.rye.ai/why-rye\",\"mainEntityOfPage\":{\"@id\":\"https://docs.rye.ai/why-rye#webpage\"},\"dateModified\":\"2026-07-28T17:59:51.342Z\",\"publisher\":{\"@id\":\"https://docs.rye.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.rye.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Rye\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Rye\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/why-rye.md","siteName":"Rye","nav":{"global":{"anchors":[{"anchor":"Rye home","icon":"house","href":"https://rye.ai"},{"anchor":"Articles","icon":"newspaper","href":"https://rye.ai/blog/"},{"anchor":"Pricing","icon":"credit-card","href":"https://rye.ai/pricing/"}]},"pages":[{"group":"Start here","pages":[{"title":"Introduction","href":"/index"},{"title":"Quickstart","href":"/quickstart"},{"title":"Installation","description":"Install the Rye CLI and daemon on macOS or Linux.","href":"/installation"}]},{"group":"Core concepts","pages":[{"title":"Why Rye exists","href":"/why-rye"},{"title":"Architecture","description":"How the Rye CLI, daemon, proxy, wrapper, and control plane work together.","href":"/architecture"},{"title":"Control plane","href":"/control-plane"},{"title":"Authentication","href":"/authentication"}]},{"group":"Configure Rye","pages":[{"title":"Agent supervision","href":"/agent-supervision"},{"title":"App shims","href":"/app-shims"},{"title":"Proxy and CA","href":"/proxy-and-ca"},{"title":"Policy enforcement","href":"/policy-enforcement"}]},{"group":"Operate","pages":[{"title":"Audit history","href":"/audit-history"},{"title":"Command reference","href":"/commands"},{"title":"Troubleshooting","href":"/troubleshooting"}]}]},"basePath":"","title":"Why Rye exists - Rye","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}