Dokicode Privacy Policy

Effective October 4, 2026

Dokicode is a study game for LeetCode practice. It has two parts: the web game at dokicode.com and the Dokicode Chrome extension, which runs on LeetCode problem pages. This page explains what each part collects, where it goes, how long we keep it, and how to get it deleted.

Short version: the extension never reads or sends your source code. It sends the outcome of your LeetCode runs and submissions so the game can react to them. The first three hint steps send only the problem's URL name and your language. Only if you press "Read it with me" does it send the failing test case and your own AI key so the hint can be written for you.

1. The Chrome extension

Where it runs

The extension runs on leetcode.com/problems/*, and on the Dokicode game site so the game and the extension can talk to each other. It does not run on any other site.

What it reads on LeetCode

It watches the responses LeetCode sends back when you press Run Code or Submit. From those responses it keeps only the result. It does not read your code, the editor contents, or which keys you press. It notes the time of a key press to know whether you are still working, and that time stays in the page. It also reads the difficulty label LeetCode shows on the problem (Easy, Medium, or Hard).

What it sends to Dokicode after a run or submission

Each event contains exactly these fields and nothing else:

Events go to dokicode.com/v1/events/batch with your Dokicode sign-in token. If you are offline, they wait in the extension's local storage and are sent later. You can pause tracking from the companion panel; while paused, nothing is sent.

Hints

Hints come in up to four steps (Direction, Key idea, Outline when available, and Edge cases), and you choose when to unlock the next one. You need to be signed in to Dokicode for the server-backed steps.

When a Run Code or a submission fails, the extension keeps the latest failing test case in the page's memory. That is the test input, your program's output, and the expected output, or LeetCode's first-line error message. For a compile error it keeps only the words "Compile Error", because compiler messages can quote your code. Each field is cut to 600 characters. Nothing is sent at this point, and it is forgotten when you leave the page or move to another problem.

The test case leaves your browser only when you press "Read it with me" in the Edge cases tab, which uses an AI key you supply (Google Gemini, DeepSeek, OpenAI, or Anthropic). You enter the key in the game's Settings, and the game passes it to the extension. That request goes to dokicode.com/v1/coach/hint and contains:

Our server builds a short prompt from that data and sends it, with your key, to the AI provider you chose. The provider's reply comes back as the hint. Our server does not save your key, the test case, or the prompt. The AI provider handles the prompt under its own privacy policy and your account with it. Without a linked key, "Read it with me" is not offered.

Unlocking step 2 (Key idea), step 3 (Outline), or "Read it with me" marks that problem as hinted, so your next run and submission events for it say a hint was used. The mark and any saved hint tabs for that problem are cleared when the problem is accepted.

While tracking is paused, no hint request is sent.

Review reminder

To show how many of your reviews are due today, the extension asks dokicode.com/v1/review/state with your Dokicode sign-in token. It keeps only the count and the date, shows the count on the extension icon, and the heroine may mention it once a day. Nothing is asked while tracking is paused, and signing out clears the count.

Picking up the problem you are on

The extension reads only the URL names (slugs, such as two-sum) of leetcode.com problem tabs you have open. It does not read the URLs of any other site. When the game asks, the extension tells it which open problem you looked at most recently and when you first opened it, so the game can offer to continue with it. To answer that, it keeps up to 20 recently opened problems, with those two times, for 12 hours. When the extension opens dokicode.com for you (after install, from the toolbar icon, or from the setup note on a LeetCode page), the problem's slug travels in the dokicode.com URL. While tracking is paused, nothing is recorded and the game is told nothing.

What it stores in your browser

The extension uses chrome.storage.local, which stays on your computer, for:

The AI key is kept by the extension's background worker and is not given to the scripts running on LeetCode pages. Signing out of the game clears your sign-in tokens, the AI key, the hint marks and unlocked hint steps, the review count, the interview limit, and the recently opened problems. The setup note choice belongs to this browser, not to your account, so it stays. Removing the extension deletes all of this.

Pairing with the game

When the game is open on dokicode.com, it hands the extension your Dokicode sign-in token so events count toward your account. The extension accepts this only from the Dokicode site.

2. The web game

Google sign-in

You sign in with Google. Google sends us a signed token, and from it we keep your Google account ID, your email address, and your language. We do not get your Google password, contacts, or any other Google data. We then issue our own sign-in tokens.

What our server stores for your account

What the game stores in your browser

The game uses your browser's local and session storage for your settings (including any AI keys you enter), a copy of your save slots, a cache of your study route, and your sign-in tokens. When you talk with a heroine and have an AI key linked, the game sends the key with that request so our server can ask your AI provider for her reply. As with hints, the server does not save the key.

3. Who else handles data

We do not sell your data, show ads, or share data with anyone else, except where the law requires it.

4. How long we keep data

Our hosting providers keep standard request logs (time, address, path) for a short period for security and debugging.

5. Deleting your data

Email [email protected] from the address you sign in with and ask us to delete your account. We will delete your account and everything linked to it within 30 days and confirm by email. To remove local data, uninstall the extension and clear site data for dokicode.com in your browser.

6. Children

Dokicode is not meant for children under 13, and we do not knowingly collect their data.

7. Changes

If we change what we collect, we will update this page and its date before the change ships.

8. Contact

Questions: [email protected]