Configure Rye’s local proxy, HTTPS interception, system proxy settings, and API shim.
Rye’s local proxy is the network enforcement point for model traffic.By default, rye up starts the proxy on:
127.0.0.1:18080
Start the proxy
rye up
Start with CA installation:
rye up --install-ca
Start on a custom address:
rye up --listen 127.0.0.1:19090
Stop the proxy:
rye down
Intercepted domains
Rye intercepts common AI tool and model-provider domains by default, including OpenAI, Anthropic, Claude, Cursor, Windsurf, ChatGPT, and Gemini domains.Override the list:
rye up --intercept-patterns openai.com,anthropic.com,claude.com
For CLI tools, start Rye and set environment variables before launching the agent:
export HTTP_PROXY="http://127.0.0.1:18080"export HTTPS_PROXY="http://127.0.0.1:18080"export NODE_EXTRA_CA_CERTS="$(rye ca path)"
rye wrap handles these variables for the child process.
CA management
Rye generates a local CA certificate and private key in its log directory.
Command
Purpose
rye ca install
Install the Rye CA into the system trust store.
rye ca path
Print the CA certificate path.
rye ca regenerate
Generate a new CA keypair.
Protect the Rye CA private key. Any local CA trusted by a machine can sign certificates that the machine accepts. Install it only on devices you own or administer.
System proxy setup
Use automatic system proxy setup when an app does not inherit shell environment variables:
rye up --auto-configure-proxy
On macOS, you can use a PAC file so only matching domains route through Rye:
rye up --auto-configure-proxy-pac --intercept-patterns openai.com,anthropic.com
rye down restores proxy settings that Rye configured.
API shim
Use the API shim when a client supports a custom model API base URL. This avoids MITM certificate setup for that client.Start an Anthropic-compatible shim:
rye up \ --shim-listen 127.0.0.1:18090 \ --shim-upstream https://api.anthropic.com
Point a compatible client at the shim:
ANTHROPIC_BASE_URL="http://127.0.0.1:18090" claude
Use MITM proxying for broad compatibility. Use the API shim when the client exposes a reliable base URL setting.
{"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":"proxy-and-ca","slug":"/proxy-and-ca","pageMetadata":{"title":"Proxy and CA","description":"Configure Rye's local proxy, HTTPS interception, system proxy settings, and API shim.","href":"/proxy-and-ca"},"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: \"Configure Rye’s local proxy, HTTPS interception, system proxy settings, and API shim.\"\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={code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Rye’s local proxy is the network enforcement point for model traffic.`}),`\n`,_jsxs(_components.p,{children:[`By default, `,_jsx(_components.code,{children:`rye up`}),` starts the proxy on:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`127.0.0.1:18080`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`start-the-proxy`,children:`Start the proxy`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Start with CA installation:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --install-ca`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Start on a custom address:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --listen`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 127.0.0.1:19090`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Stop the proxy:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` down`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`intercepted-domains`,children:`Intercepted domains`}),`\n`,_jsx(_components.p,{children:`Rye intercepts common AI tool and model-provider domains by default, including OpenAI, Anthropic, Claude, Cursor, Windsurf, ChatGPT, and Gemini domains.`}),`\n`,_jsx(_components.p,{children:`Override the list:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --intercept-patterns`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` openai.com,anthropic.com,claude.com`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Intercept everything:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --intercept-all`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Manage stored patterns:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` intercept`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` intercept`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` openai.com,anthropic.com`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` intercept`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` remove`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cursor.com`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`manual-proxy-environment`,children:`Manual proxy environment`}),`\n`,_jsx(_components.p,{children:`For CLI tools, start Rye and set environment variables before launching the agent:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` HTTP_PROXY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http://127.0.0.1:18080\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` HTTPS_PROXY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http://127.0.0.1:18080\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` NODE_EXTRA_CA_CERTS`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ca path)\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`rye wrap`}),` handles these variables for the child process.`]}),`\n`,_jsx(Heading,{level:`2`,id:`ca-management`,children:`CA management`}),`\n`,_jsx(_components.p,{children:`Rye generates a local CA certificate and private key in its log directory.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Command`}),_jsx(_components.th,{children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`rye ca install`})}),_jsx(_components.td,{children:`Install the Rye CA into the system trust store.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`rye ca path`})}),_jsx(_components.td,{children:`Print the CA certificate path.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`rye ca regenerate`})}),_jsx(_components.td,{children:`Generate a new CA keypair.`})]})]})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Protect the Rye CA private key. Any local CA trusted by a machine can sign certificates that the machine accepts. Install it only on devices you own or administer.`})}),`\n`,_jsx(Heading,{level:`2`,id:`system-proxy-setup`,children:`System proxy setup`}),`\n`,_jsx(_components.p,{children:`Use automatic system proxy setup when an app does not inherit shell environment variables:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --auto-configure-proxy`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`On macOS, you can use a PAC file so only matching domains route through Rye:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --auto-configure-proxy-pac`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --intercept-patterns`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` openai.com,anthropic.com`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`rye down`}),` restores proxy settings that Rye configured.`]}),`\n`,_jsx(Heading,{level:`2`,id:`api-shim`,children:`API shim`}),`\n`,_jsx(_components.p,{children:`Use the API shim when a client supports a custom model API base URL. This avoids MITM certificate setup for that client.`}),`\n`,_jsx(_components.p,{children:`Start an Anthropic-compatible shim:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rye`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` up`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --shim-listen`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 127.0.0.1:18090`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --shim-upstream`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.anthropic.com`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Point a compatible client at the shim:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ANTHROPIC_BASE_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http://127.0.0.1:18090\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` claude`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Use MITM proxying for broad compatibility. Use the API shim when the client exposes a reliable base URL setting.`})]})}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":"Proxy and CA","description":"Configure Rye's local proxy, HTTPS interception, system proxy settings, and API shim.","href":"/proxy-and-ca"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Start the proxy","slug":"start-the-proxy","depth":2,"children":[]},{"title":"Intercepted domains","slug":"intercepted-domains","depth":2,"children":[]},{"title":"Manual proxy environment","slug":"manual-proxy-environment","depth":2,"children":[]},{"title":"CA management","slug":"ca-management","depth":2,"children":[]},{"title":"System proxy setup","slug":"system-proxy-setup","depth":2,"children":[]},{"title":"API shim","slug":"api-shim","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"rye-ai","siteName":"Rye","title":"Proxy and CA - Rye","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-28T17:59:51.337Z","originalFileLocation":"proxy-and-ca.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=\"Configure Rye\u0026#x27;s local proxy, HTTPS interception, system proxy settings, and API shim.\">\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=\"Proxy and CA - Rye\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure Rye\u0026#x27;s local proxy, HTTPS interception, system proxy settings, and API shim.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Rye\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.rye.ai/proxy-and-ca\">\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=Configure+Rye\u0026amp;title=Proxy+and+CA\u0026amp;description=Configure+Rye%27s+local+proxy%2C+HTTPS+interception%2C+system+proxy+settings%2C+and+API+shim.\u0026amp;theme=074f0988828a11e2b0f8a992\u0026amp;signature=8eae9fc6cc7e3753eafa0ea7dbc9b550ed4a6ece589b95c64e6e33caaa3f90ba\">\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=\"Proxy and CA - Rye\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure Rye\u0026#x27;s local proxy, HTTPS interception, system proxy settings, and API shim.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://rye-ai.mintlify.site/_mintlify/api/og/v2?division=Configure+Rye\u0026amp;title=Proxy+and+CA\u0026amp;description=Configure+Rye%27s+local+proxy%2C+HTTPS+interception%2C+system+proxy+settings%2C+and+API+shim.\u0026amp;theme=074f0988828a11e2b0f8a992\u0026amp;signature=8eae9fc6cc7e3753eafa0ea7dbc9b550ed4a6ece589b95c64e6e33caaa3f90ba\">\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/proxy-and-ca\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/proxy-and-ca.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/proxy-and-ca#webpage\",\"url\":\"https://docs.rye.ai/proxy-and-ca\",\"name\":\"Proxy and CA\",\"description\":\"Configure Rye's local proxy, HTTPS interception, system proxy settings, and API shim.\",\"dateModified\":\"2026-07-28T17:59:51.337Z\",\"isPartOf\":{\"@id\":\"https://docs.rye.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.rye.ai/proxy-and-ca#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.rye.ai/proxy-and-ca#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Configure Rye\",\"item\":\"https://docs.rye.ai/agent-supervision\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Proxy and CA\",\"item\":\"https://docs.rye.ai/proxy-and-ca\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.rye.ai/proxy-and-ca#article\",\"headline\":\"Proxy and CA\",\"name\":\"Proxy and CA\",\"description\":\"Configure Rye's local proxy, HTTPS interception, system proxy settings, and API shim.\",\"url\":\"https://docs.rye.ai/proxy-and-ca\",\"mainEntityOfPage\":{\"@id\":\"https://docs.rye.ai/proxy-and-ca#webpage\"},\"dateModified\":\"2026-07-28T17:59:51.337Z\",\"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":"/proxy-and-ca.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","href":"/installation"}]},{"group":"Core concepts","pages":[{"title":"Why Rye exists","href":"/why-rye"},{"title":"Architecture","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","description":"Make common AI coding CLIs run through Rye automatically.","href":"/app-shims"},{"title":"Proxy and CA","href":"/proxy-and-ca"},{"title":"Policy enforcement","description":"Understand how Rye evaluates model requests before they leave the workstation.","href":"/policy-enforcement"}]},{"group":"Operate","pages":[{"title":"Audit history","href":"/audit-history"},{"title":"Command reference","href":"/commands"},{"title":"Troubleshooting","href":"/troubleshooting"}]}]},"basePath":"","title":"Proxy and CA - Rye","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}