Hello Codeforces!
TLDR; Chcek the AI Coach Chrome Extension Here: Repovive Competitive Programming, And get your Gemini API Keys Here: Google AI Studio
I’m excited to share a project I've been working on at Repovive, with the Great Shayan.
We all know the struggle: you're stuck on a problem, the editorial is confusing (or non-existent), and you just need a small hint to nudge you in the right direction—not the full solution. That's exactly what this tool is built for.
What is it?
The new addition to the Repovive Chorme Extension, an AI Agent, that embeds a context-aware AI chat directly into Codeforces (and AtCoder/LeetCode) problem pages.
It isn't just a wrapper around ChatGPT, nor is it a proprietary "Black Box" model trained from scratch.
Powered by Gemini: It leverages the Google Gemini API (
gemini-pro/flash) for reasoning.Your Own Keys: You use your own free API key from Google AI Studio. This means no subscription fees and total control over your usage.
Context Aware: It specifically understands competitive programming contexts:
- It reads the problem statement, constraints, and test cases automatically.
- It fetches Accepted solutions from top rankers (Red Coders) to understand the optimal approach.
- It simulates a "Socratic Coach": it refuses to give you the code initially. Instead, it asks you guiding questions to help you derive the solution yourself.

Platform Deep Dive: Under the Hood
Each platform requires a unique engineering approach. Here is how we handle the "Big Three":
1. Codeforces

- How it works:
- Parsing: We use the official
codeforces.com/apito fetch problem metadata. - Solution Mining: We identify the contest "Winners" via the API, find their submission IDs, and then get their source code.
- Anti-Cheat: We detect the specific
.countdowntimer element used in active rounds.
- Parsing: We use the official
- Tradeoffs & Limitations:
- API Rate Limits: Codeforces has a strict 5 req/sec limit. If the site is under load (e.g., right after a contest), the "Solution Mining" might fail or be slow.
- Old Contests: Some very old problems ($$$ \lt 2015$$$) might have missing metadata or different DOM structures that break parsing.
2. AtCoder
- How it works:
- Parsing: Since AtCoder has no official API, we built a robust HTML parser that reads the DOM directly to extract inputs/outputs.
- Solution Mining: The agent navigates to the submissions page, filters for "Accepted" + "C++" + "Fastest", and gets the code from the top result.
- Tradeoffs & Limitations:
- Login Wall: For some contests, you must be logged in to view submissions. The agent might show a "Cookie Error" if it can't access the submission page (it tries to inherit your session, but browser security can block this).
- Fragility: If AtCoder changes their website UI (class names), the geter will break until we update the extension.
3. LeetCode

- How it works:
- Parsing: We reverse-engineered LeetCode's GraphQL API to fetch clean problem questions without parsing messy HTML.
- Knowledge Source:
- Old Problems (ID < 3200): Since these are in the LLM's training data, we rely on the model's internal knowledge for faster responses.
- New Problems: We fetch the top-voted "Community Solution" via GraphQL to give the model context on brand new questions.
- Anti-Cheat: We strictly disable the agent on any URL containing
/contest/.
- Tradeoffs & Limitations:
- SPA Navigation: LeetCode is a Single Page Application (React). Sometimes the button might disappear when navigating between problems; a page refresh fixes this.
- Community Quality: For new problems, (ID > 3200), it is unlikely to get a solution, because the only way is to use leetcode GraphQL API, there is no official documentation, so we are still working on the best way to get a solution to feed the AI.
Customizing Your Experience

The extension also includes deep theming support to match your system style!
Legal & Ethical Notices (Anti-Cheat)
Crucial Point: We take fair play seriously.
- Strict Anti-Cheat: The agent is programmed to automatically disable itself during live contests.
- Codeforces: It detects the server-side countdown timer for active rounds.
- AtCoder: It checks the contest timer element.
- LeetCode: It hard-blocks any URL containing
/contest/.
- Purpose: This tool is strictly for upsolving and practice. Using AI assistance during a rated contest is cheating and will get you banned. Don't do it.
Privacy & Security
- No Data Collection: Repovive DOES NOT collect, store, or transmit your data to its servers. We do not access your cookies or personal information.
- Local Storage Only: Your API keys, settings, and chat history are stored exclusively in your browser's local storage. Nothing leaves your machine except the API request to Gemini.
How to Get Started
- Install Repovive: Repovive Competitive Programming
Get a Gemini API Key:
- Go to Google AI Studio and sign in with your Google account.
- Click on the blue "Get API key" button in the top-left sidebar.
- Click "Create API key". You might need to select "Create API key in new project" if you don't have one.

- Copy the key that starts with
AIza....

- Open a Problem: Navigate to any Codeforces problem.
- Click the Sparkle: You'll see the floating AI button. Click it, paste your API key once, and start upsolving!
Known Issues & Roadmap
Since this is an early beta, you might encounter:
Rate Limits: If too many people use it at once, Codeforces API might slow down context fetching.
Parsing Errors: Extremely old contests (10+ years ago) might have broken HTML structures.
LeetCode Spa: On LeetCode, if the button disappears after navigating, just refresh the page.
Gemini Free Limits: The Google Gemini Free Tier has usage limits (RPM/TPM).
- If you see
ResourceExhaustedor429errors, it means you've hit the limit.
- Auto-Downgrade Feature: To keep you coding, the agent will automatically downgrade from
Gemini ProtoGemini Flash, then downgrade toGemini Flash-Lightif it detects quota issues. It automatically tries to upgrade back after 6 hours.
- If you see
What's Next?
- Better support for LeetCode new problems (ID > 3200).
- More robust cookie handling for AtCoder login walls.
- Integrating a "Hint Mode" that blurs the code mining output initially.
Feedback & Support
We need your help to make this better!
Found a bug? Please report it to me on Codeforces: Hmzaawy.
Have a suggestion? Message me directly on Codeforces: Hmzaawy.
Wanna contribute? Message me directly on Codeforces: Hmzaawy. with your idea you want to contribute!
Features Requested And will be added Soon:
___ After I submit my correct code, it can take my code and create a step by step solution or hint in plain English, highlighting the key areas and how i solved it. this will be useful when we revisit the problem. ___
We hope to see the extension working on the private groups & private gyms too!
Can we add Online Judge (UVa) support?
btw can u add so we can use Chatgpt / Deepseek too?



