AI coding tools run with your credentials. Rye is the checkpoint.

Every prompt that leaves a developer machine passes through Rye. Secrets get stripped. Policies enforce. Everything is logged.

rye history
$ rye history
TimestampMethodStatusTimeURI
16:43:16POST2006025msapi.anthropic.com/v1/messages
16:43:38POST200241msapi.anthropic.com/api/event_logging
16:44:02POST403<1msapi.anthropic.com/v1/messages
16:44:09CONNECT403<1msapi.openai.com:443
16:44:21POST403<1msapi.openai.com/v1/chat/completions
16:44:35GET200187mschatgpt.com/backend-api/codex/models
$
14K+
threats blocked / 30d
<4ms
policy eval latency
99.9%
enforcement uptime

Architecture

One control plane between your AI tools and LLM providers

Rye proxies every request. Prompts are scanned, secrets are stripped, policies are enforced — then clean requests are forwarded to the model.

Cursor
Cursor
AI-first code editor
Windsurf
Windsurf
Agentic IDE by Codeium
Claude Code
Claude Code
Anthropic's CLI coding agent
GitHub Copilot
GitHub Copilot
AI pair programmer
rye.ai
Secret scanningPolicy engineThreat detectionDevice authAudit log
OpenAI
GPT-4o, o1
Anthropic
Claude 4, Haiku
Google AI
Gemini 2.5
Outputs
Alerts
Audit log
SIEM export
Webhooks
Live enforcement feedacme-eng workspace

Rye intercepts before the model sees it.

Four things happen on every request. Secret scan. Policy check. Device check. Log write. All before the prompt reaches Anthropic or OpenAI.

Secret scanning

Your developer pastes an AWS key into a prompt. Rye catches it before it hits the model.

Every prompt is scanned for credentials, API keys, connection strings, and PII before being forwarded. The model never sees them.

prompt intercepted — secret-scanning3 SECRETS FOUND
1// connect to prod database
2DATABASE_URL=postgres://admin:s3cr3t@prod-db.internal:5432/core
3
4aws_access_key_id = AKIAIOSFODNN7EXAMPLE
5aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
6
7STRIPE_SECRET=sk_live_4eC39HqLyjWDarjtT1zdp7dc
Secrets stripped— sanitized prompt forwarded to Anthropic Claude 4
policy evaluation — mrodriguez via CursorBLOCKED
1// billing service — proprietary
2export function calculateMRR(accounts) {
3 const tier = accounts.map(a =>
4 a.plan.price * a.seats
5 );
policy: no_proprietary_code
matched: src/billing/** — request blocked, developer notified

Policy engine

Someone tries to send your billing logic to an LLM. The request never leaves.

Policies are YAML. Block file paths, restrict which models each team can use, require approval for large context windows. Evaluation adds under 4ms.

Device authorization

A contractor's laptop tries to connect. Rye rejects it before the first token.

Only registered devices route traffic through Rye. Revoke access the moment someone leaves. No API keys to rotate. No tokens to expire.

device-auth — connection attempt
$ cursor attempting api.openai.com via rye
macbook-eng-042authorized
macbook-eng-118authorized
desktop-contract-017rejected
Connection refused
desktop-contract-017 is not registered.
203.0.113.42 · certificate expired · last authorized: Jan 15
audit log — last 60 seconds
SOC 2ISO 27001
14:03:22 ALLOW jchen · cursor → claude-4
prompt: 1,247 tok · response: 892 tok · 2.3s
14:03:24 REDACT mrodriguez · claude-code → claude-4
AWS_SECRET_KEY at line 42 — stripped, forwarded
14:03:25 BLOCK desktop-contract-017
device not registered
14:03:31 BLOCK mrodriguez · cursor → gpt-4o
no_proprietary_code · src/billing/mrr.ts
14:03:38 ALLOW akim · windsurf → gpt-4o
prompt: 3,891 tok · response: 1,204 tok · 1.1s

Audit trail

Every prompt. Every decision. Traced to the developer, device, and timestamp.

Compliance-ready by default. Every interaction is recorded — export to your SIEM, query via API, or browse in the dashboard.

When a customer asks how you govern AI tool usage, you have a specific answer.

Not "we trust our developers." An audit trail, a policy list, and a device registry.

SOC 2 Type II

Every AI interaction logged with identity, device, tool, model, and policy outcome. Export-ready on demand.

ISO 27001

Demonstrate control over what leaves your network. Block sensitive code from reaching any LLM provider.

Vendor questionnaires

"How do you govern AI tool usage?" One answer: link to your Rye policy list and audit log.

Incident response

Trace any AI-generated code change back to the prompt, the developer, the device, and the exact timestamp.

Deployed in minutes.
No workflow changes.

Rye proxies AI tool traffic at the network level. Developers keep their tools. You get the controls.

01

Install the agent

brew install ryeai/tap/rye

Rye starts a local proxy. Your developers change nothing. Their tools connect through it automatically.

02

Write a policy

block_paths: ["src/billing/**", "infra/**"]

Policies are YAML. Block file paths, restrict models, require device registration. They evaluate in under 4ms.

03

Read the log

rye history

Every request proxied through Rye appears here — method, status, latency, URI. Export to your SIEM or query via API.

Your developers are already using AI.
Now you know what it's doing.