CodeCoach is a Chrome extension that helps users practice coding problems by providing progressive AI hints, code analysis, debugging guidance, local study notes, review reminders, and weakness tracking on supported coding-practice pages such as LeetCode and Programmers (programmers.co.kr and school.programmers.co.kr).
Important AI disclosure: When you request AI feedback, CodeCoach may send your typed question, current editor code, selected text, visible problem context, and run or test-result messages from supported coding-practice pages to an AI coaching service. In BYOK mode, the request goes directly from the extension to OpenAI using your OpenAI API key. In guest mode, the request goes through the CodeCoach Firebase backend and then to OpenAI using a CodeCoach-managed API key. This information is used only to provide the hint, analysis, debugging guidance, note, or chat response you requested.
This Privacy Policy applies only to the CodeCoach Chrome extension. It explains what information CodeCoach may collect, store, transmit, use, or share when you use the extension.
This policy does not apply to third-party websites or services that CodeCoach works with, including LeetCode, Programmers, OpenAI, Firebase, Google, Chrome, or the Chrome Web Store. Those services are governed by their own privacy policies and terms.
The developer of CodeCoach is the controller of developer-controlled CodeCoach data. For privacy questions, data access requests, correction requests, deletion requests, or cross-border transfer questions, contact:
Email: thkim210414@gmail.com
CodeCoach stores the following information locally using Chrome extension storage:
Locally stored data remains on your device unless you delete it, uninstall the extension, clear Chrome extension storage, or enable optional cloud sync. Relevant locally stored content may also be transmitted when you request an AI feature, as described below.
When you request an AI feature, such as a hint, code analysis, debugging help, note generation, or chat response, CodeCoach may send the following information to OpenAI's API directly in BYOK mode or through the CodeCoach backend in guest mode:
BYOK AI requests are sent directly from your browser to OpenAI using your own API key. Guest AI requests are sent to the CodeCoach Firebase backend, which validates the request, enforces guest quota and abuse limits, constructs the AI prompt, and forwards the request to OpenAI using a CodeCoach-managed API key. The guest backend may process request metadata needed for quota, cost reservation, duplicate request protection, rate limiting, and abuse prevention.
OpenAI processes API requests according to OpenAI's applicable terms and privacy policy: https://openai.com/policies/privacy-policy .
CodeCoach is designed to work only on supported coding-practice pages. On those pages, CodeCoach may read or process the following information to provide user-facing study features:
CodeCoach may observe run or submission result messages on supported coding-practice pages to help create debugging feedback, wrong-answer notes, and learning metadata. CodeCoach does not collect cookies, passwords, authentication headers, payment data, or unrelated HTTP payloads.
CodeCoach offers two optional sign-in methods through Firebase Authentication. Sign-in is not required to use the core local AI features.
Google sign-in: CodeCoach uses the Chrome identity API to obtain a Google OAuth access token. That token is exchanged with Firebase Authentication to create a Firebase session. CodeCoach may process your Google account email address, display name, and profile image URL for authentication and account-related features.
Email and password sign-in: You may alternatively create an account using an email address and password. Your email address and password are sent over HTTPS to Firebase Identity Toolkit (identitytoolkit.googleapis.com) to create or authenticate your account. CodeCoach does not store your password locally after the request completes. You can reset your password via a password-reset email sent by Firebase.
Regardless of sign-in method, CodeCoach stores the following authentication data locally in Chrome extension storage to maintain your signed-in session: your Firebase user ID (uid), Firebase ID token, Firebase refresh token, session expiry timestamp, and, for Google sign-in, the Google OAuth access token. This data is removed from local storage when you sign out.
If you enable optional cloud sync, CodeCoach may sync learning metadata to Firebase Firestore under your user ID. Synced metadata may include:
Cloud sync is optional and can be disabled from the extension settings.
CodeCoach does not sync full platform problem statements, saved code snapshots, or wrong-answer note bodies unless a future version explicitly discloses that behavior and requests the required permission or consent.
Starting the free trial creates an anonymous Firebase Authentication session; no email or Google account is required for this session. Checking an existing trial may refresh its authentication tokens and contact the CodeCoach backend without sending code or a question. This authentication and quota traffic is separate from an AI request.
The guest backend stores the Firebase user ID, request counts, token and cost totals, recent request identifiers for duplicate protection, and timestamps in Firestore. It also stores daily request counters under a keyed hash derived from the request IP address, and aggregate daily budget counters. A hashed guest identifier is sent to OpenAI for abuse monitoring. These identifiers are pseudonymous, not a guarantee of anonymity.
Coaching questions, code, and responses are processed to complete the request and are not written to the guest quota documents. Firebase / Google infrastructure may retain HTTP request metadata, including IP addresses, and operational logs. The backend logs errors, which may include upstream diagnostic messages; therefore this policy does not promise zero server logging.
CodeCoach does not collect or store the following as developer-controlled data:
CodeCoach does not permanently store platform problem statements, examples, constraints, editorial content, contest content, assessment content, or page HTML in any developer-controlled database.
CodeCoach uses information only to provide and improve the extension's user-facing coding-practice features.
| Processing activity | Purpose | Legal basis / basis for processing |
|---|---|---|
| Local settings, notes, hint history, and weakness metadata | Provide local study notes, review history, personalization, and learning feedback | User request and consent through use of the extension; performance of requested service |
| Current code, typed question, selected text, visible problem context, run/test results | Generate user-requested AI hints, code analysis, debugging guidance, and notes | User request and consent; performance of requested AI feature |
| Google sign-in information | Authenticate the user and support account-based features | User consent and performance of optional account service |
| Optional Firebase cloud sync metadata | Sync learning metadata across sessions or devices where enabled | User consent and performance of optional sync service |
| Security, abuse prevention, and legal compliance data | Protect the extension, prevent abuse, troubleshoot errors, and comply with applicable law | Legitimate interest, legal obligation, or equivalent basis under applicable law |
For users in jurisdictions that require a specific lawful basis, including the European Economic Area, the United Kingdom, or similar jurisdictions, CodeCoach generally relies on consent, performance of a requested service, legitimate interests in providing and securing the extension, and legal obligations where applicable.
CodeCoach does not use collected or processed information to determine creditworthiness, does not use it for advertising, and does not transfer it to data brokers or information resellers.
CodeCoach shares information only as necessary to provide the extension's disclosed functionality.
CodeCoach does not sell user data. CodeCoach does not share user data with advertisers, advertising networks, data brokers, or information resellers.
Because CodeCoach uses third-party services such as OpenAI and Firebase / Google, certain information may be transferred, stored, or processed outside your country or region, including outside the Republic of Korea. For Korean users, this section provides additional notice regarding overseas transfer of personal information.
| Recipient | Country / region | Transferred items | Purpose | Timing and method | Retention and use period |
|---|---|---|---|---|---|
| OpenAI, L.L.C. and its affiliates or subprocessors | United States and other countries where OpenAI or its service providers process data | Typed question, current code, selected text, visible problem context, run/test results, request metadata, and selected model information | Provide user-requested AI hints, analysis, debugging guidance, notes, and chat responses | Transferred over HTTPS when the user requests an AI feature | Handled according to OpenAI's applicable API terms, privacy policy, and retention settings for the user's API account or plan |
| Google LLC, Google affiliates, and Firebase service providers | United States and other countries where Google or Firebase processes data | Firebase anonymous guest user ID, guest authentication tokens, hashed IP-derived quota identifiers, guest request and cost counters, Google sign-in information, Firebase user ID, email address, display name, profile image URL, authentication tokens, and optional cloud sync metadata | Provide guest mode, quota and abuse protection, optional Google sign-in, authentication, security, and optional Firebase cloud sync | Transferred over HTTPS when the user starts guest mode, requests guest AI coaching, signs in, refreshes authentication, or uses optional cloud sync | Retained while the account or sync feature is active, until the user deletes or requests deletion of the data, or as otherwise required by applicable law or provider policy |
Users may refuse or avoid certain international transfers by not using optional Google sign-in, not using guest mode, not enabling cloud sync, not saving an API key, or not using AI features that require OpenAI API. However, refusing transfers necessary for a feature may limit or disable that feature.
CodeCoach's use and transfer of information received from Google APIs adheres to the Chrome Web Store User Data Policy, including the Limited Use requirements.
CodeCoach uses Google user data only to provide and improve user-facing authentication and optional sync features. CodeCoach does not use Google user data for advertising, does not sell Google user data, and does not transfer Google user data to third parties except as necessary to provide the extension's disclosed functionality, comply with law, or protect against abuse.
CodeCoach does not access all websites. CodeCoach is designed to run only on supported coding-practice pages and required API endpoints.
Supported coding-practice pages may include LeetCode and Programmers problem-practice pages. CodeCoach uses site access to detect the current problem, read visible problem context, read your current editor code, detect selected text, and detect run or test-result messages for user-facing study features.
Required API endpoint access may include OpenAI API for user-requested BYOK AI features and Firebase / Google APIs for guest mode, optional authentication, and optional cloud sync.
CodeCoach requests Chrome extension permissions only to provide its stated features. Depending on the installed version, CodeCoach may request permissions such as:
CodeCoach transmits external API requests only over HTTPS, including requests to OpenAI API, the CodeCoach guest backend, and Firebase / Google APIs. CodeCoach does not send user data over unencrypted HTTP connections.
Locally saved data is stored using Chrome extension storage on the user's device. Chrome extension storage is tied to the user's browser profile. CodeCoach does not add a separate encryption layer to local Chrome storage in the current version, so users should protect their browser profile, operating-system account, and device.
Users should not save an OpenAI API key in CodeCoach on a shared or untrusted device. Users can remove the saved API key from the extension settings at any time.
| Data category | Retention period |
|---|---|
| Local settings, API key, guest-session tokens, local notes, hint history, weakness metadata, and review metadata | Until the user deletes the data, clears Chrome extension storage, or uninstalls the extension |
| Optional Firebase authentication information | While the account remains active, until the user signs out and requests deletion, or as required by provider policy or applicable law |
| Optional Firebase cloud sync learning metadata | Until deleted through supported controls or a deletion request. Disabling sync stops future synchronization but does not itself delete previously synchronized data. |
| OpenAI API request data and guest quota records | OpenAI request data is handled according to OpenAI's applicable policies. Guest quota records are retained for free-use limits, abuse protection, and cost controls; the current application does not implement automatic expiry of these records. Contact the developer to request deletion. Operational logs follow the configured Firebase / Google retention settings and applicable provider policies. |
You can delete locally stored extension data from the CodeCoach settings or options page where supported. You can also remove local extension data by uninstalling CodeCoach or clearing Chrome extension storage.
If you enabled cloud sync, you can disable sync and delete synced learning metadata from the extension settings where supported. You may also contact the developer using the contact information above for deletion assistance.
Clearing local guest-session data or uninstalling the extension does not delete the anonymous Firebase account or server-side quota records, and does not reset the free-use allowance. Contact the developer for assistance deleting server-side records; we may need information to locate and verify your session, but you should not send API keys or authentication tokens.
You may request access to, correction of, deletion of, or suspension of processing of developer-controlled data associated with your CodeCoach account by contacting the developer using the email address above.
Local-only data stored in your browser can be viewed, exported where supported, or deleted from the extension settings or by clearing Chrome extension storage.
Deleting certain data, such as settings, API keys, notes, or synced learning metadata, may limit or disable some CodeCoach features.
If you are located in the European Economic Area, the United Kingdom, or another jurisdiction with similar privacy rights, you may have rights to request access, correction, deletion, restriction, portability, objection to processing, and withdrawal of consent where applicable.
To exercise these rights, contact the developer using the email address above. If you believe your request has not been handled appropriately, you may have the right to contact your local data protection authority.
CodeCoach relies on third-party service providers, including OpenAI and Firebase / Google, to provide user-requested AI, authentication, and optional sync features. Where applicable, processing by those providers is governed by their published service terms, data processing terms, privacy policies, and subprocessor terms.
CodeCoach operates a Firebase backend for guest AI coaching. The guest backend validates structured coaching requests, enforces quota and cost limits, and forwards allowed requests to OpenAI. BYOK OpenAI requests continue to go directly from the extension to OpenAI. Guest quota records and operational logging are described in Section 3.6. If a future version adds analytics SDKs or additional processors, this policy will be updated before or at the time those changes are released.
Inline coaching prompts can appear automatically inside the editor on supported pages, without opening the side panel. The extension locally observes editor content, cursor position, editing activity, and visible run or submission results to position the prompt and decide when to offer help. Displaying an invitation to ask for a hint does not itself send the editor content to OpenAI. Hide collapses the inline coach to a Show coach control; reopening a saved hint does not make another AI request. Inline coaching can be disabled in the extension settings.
CodeCoach does not automatically send your data to OpenAI merely because you visit a page. AI-related data is sent when you use an AI feature, such as asking a question, requesting a hint, requesting code analysis, requesting debugging help, or generating a note.
When you use an AI feature, the information sent to OpenAI is limited to what is needed to provide the requested response, such as your prompt, current code, selected text, visible problem context, relevant conversation history, saved code attempts when needed for notes or comparisons, and relevant run or test-result messages. Inline coaching uses the same BYOK or guest request paths as side-panel coaching.
AI requests use store: false. This is not a promise of zero retention:
OpenAI may retain data for abuse monitoring or other purposes permitted by its applicable
API policies and account settings. Your own API key is stored locally and is not uploaded
to the CodeCoach guest backend; the guest service uses a server-managed key.
See OpenAI API data controls.
BYOK request path: CodeCoach extension → OpenAI. Guest request path: CodeCoach extension → CodeCoach Firebase backend → OpenAI.
CodeCoach is intended for coding-practice users and is not directed to children. CodeCoach does not knowingly collect personal information from children under 13.
For users in the Republic of Korea, CodeCoach is not intended for children under 14. If CodeCoach needs to process personal information of a child under 14 in a way that requires consent under applicable Korean law, consent from a legal guardian may be required.
CodeCoach is an independent learning tool. It is not affiliated with, endorsed by, sponsored by, or officially connected to LeetCode, Programmers, or their operators. Users are responsible for following the terms and rules of the coding-practice platforms they use.
This policy may be updated when CodeCoach changes its features, data handling, permissions, third-party services, international transfer practices, or applicable legal requirements. The updated version will be posted on this page with a new "Last updated" date.