Privacy
CodeRush.run is a page of static files. Detecting, transforming and running your code all happen inside your browser. CodeRush never uploads your source or stores it on a server. Your browser shares source only when you deliberately create a Rush link or send an AI change request; the exact boundaries are explained below.
Your code stays in the tab
When you paste, three files already loaded in your browser do all the work:
/extension/detect.js decides what the snippet is,
/extension/transform.js turns it into a page, and
/web/app.js hands that page to the frame that renders it.
All three run locally. There is no upload, no form submission, no API call and no
CodeRush server-side endpoint that receives what you typed.
The site makes exactly one kind of network request: GET for its own static
files, from this same domain. Pasting adds none of its own. The single thing a snippet can
cause the pad to fetch is the compiler: the first JSX or TSX snippet you run downloads
/extension/vendor/babel.min.js, because it is 2.8 MB and an empty pad
should not pay for it. That is a plain GET for a file that ships with the
site, and it carries nothing of yours — the compiling happens here, in your browser.
AI editing is the one deliberate exception: pressing the AI send button makes a direct
request to the provider you selected, as described below.
Rush links never become server files
A Rush puts its complete payload after the # in the URL. Browsers do not send
URL fragments in HTTP requests, so Vercel and CodeRush never receive that payload. The
recipient’s browser reads the fragment and reconstructs the source locally. Rushes are
limited to 64 KB so the result remains a practical browser link.
A public Rush is encoded, not encrypted. A private Rush is encrypted with AES-GCM and includes its random decryption key in the complete link, so possession of the link is access. A password-protected Rush is encrypted with a key derived from the password; the password is not in the link and should be sent separately. None of these links can be revoked because there is no server-side copy to delete. Share them with the same care you would share the source itself.
AI editing is direct and opt-in
Nothing is sent to an AI provider while you type, paste, run, switch views or create a Rush. When you press the AI send button, your request and the current source are sent directly from this browser to the selected provider: OpenRouter, OpenAI, Anthropic or Google. CodeRush has no proxy in that path and cannot read the request, response or key. The provider’s own data-use and retention terms apply to that deliberate request.
API keys live in memory for the current tab by default. If you choose
Remember keys in this browser, they are stored as plain text in this
device’s localStorage under cr:ai-settings. They are not encrypted
and anyone who can access this browser profile or run code in this page’s origin may be
able to read them. Forget saved keys removes that record. Use restricted,
low-limit keys and provider spending controls whenever possible.
Nothing is kept on a server
The only place your snippets are saved is your own browser's localStorage,
under two keys: hr:history holds the last 12 snippets you ran, and
hr:last holds whatever is in the box right now, so a reload does not lose it.
Both live on this device only.
Clear history on the pad deletes both keys and empties the list. That is the complete erasure — there is no server copy to ask anyone to delete. If you keep typing afterwards, the pad starts saving your current draft again, in the same one place.
No analytics, no tracking, no third parties
There is no analytics script, no tracking pixel, no session recorder and no advertising code on this site. This page sets no cookies of its own. Every file the pad loads comes from this domain: no fonts, no scripts and no images are fetched from anywhere else, so no other company sees that you visited. A selected AI provider sees a request only after you press send; that request is product functionality, not analytics.
The snippet runs locked in
Your snippet renders inside an <iframe> with a
sandbox attribute that permits scripts but withholds
allow-same-origin. The frame therefore has an opaque origin: code inside it
cannot read this page, its localStorage, or its cookies. Trying throws a
SecurityError, and a test in this project asserts that it does.
One honest limit: if your snippet fetches an external URL, loads a remote image, or calls an API, that request happens. It is your snippet's own behaviour, written in the code you pasted and visible there. CodeRush.run neither adds such a request nor blocks one.
What the host can see
The static files are served by Vercel. Like any web host, it records ordinary request logs:
your IP address, the time, the path requested, and your browser's user agent. Those entries
describe which files your browser asked for — /,
/web/app.js, and so on.
Running code is never part of those requests, and Rush fragments are never sent in them. AI requests go straight to the chosen provider, not through the host, so the host’s request logs still do not contain your source or API key.
Optional password protection
A deployment of this site can be put behind a password. When it is, the password is checked at the edge, before the page loads, and your browser is given a session cookie recording only that a correct password was entered. The password itself is not stored in the cookie. This is a lock on the front door; it changes nothing about where your code is processed.
Do not take our word for it
Open your browser's developer tools, switch to the Network tab, then paste some code and
run it. You will see requests for this site's own files and nothing else, all of them
GET, none of them carrying your snippet. If you then send an AI request, you
will see one POST directly to the provider you selected.
The source is plain, unminified JavaScript you can read: /web/app.js,
/web/ai.js, /web/rush.js, /extension/detect.js,
/extension/transform.js. And the claim is
tested, not just written: a test in test/web.test.mjs records every single
request the page makes from load through render, and fails if any request is not a
same-origin GET during ordinary run operations, or if any request URL or body
contains the pasted code. Separate tests assert that Rush content stays in the fragment
and an AI request goes only to the provider the user explicitly chose.