Automate login, solving, and scraping on LeetCode so you can focus on learning — not busywork.
Leetcoder is actively maintained. If something breaks after a LeetCode UI change, or you hit a rough edge on Windows, speak up — that helps everyone.
- Bug or regression? Open a GitHub issue with steps to reproduce and your environment (Windows version, Chrome path, what you expected vs. what happened).
- Feature idea or question? Open an issue — questions are welcome too.
- Want to reach out directly? Message me on GitHub (@chanpreet3000) or use the contact options on my profile.
Stars and PRs are welcome. Even a short issue with a screenshot often saves hours for the next person.
- Works on LeetCode’s newer dynamic layout only.
- Windows only for now. PRs that add solid macOS support are very welcome.
- Use responsibly and in line with LeetCode’s terms.
- Privacy: no data is sent anywhere outside your machine by this tool (see your own Chrome/network setup as usual).
Verified working: 15 July 2026 — if you’re reading this months later, check the “Last commit” badge above; regular commits usually mean the layout selectors are still being kept in sync.
Leetcoder is built to make problem-solving and scraping more efficient. With its automated flow, Leetcoder can solve on the order of ~200 problems in about an hour (network and UI permitting).
-
Automates solving LeetCode questions from your saved solutions, in any language LeetCode supports (C++, Java, Python, Go, Rust, and more).
-
Handles authentication via a persistent Chrome profile.
-
Scrapes and organizes accepted solutions into a local archive.
-
Remembers solved problem names so runs can continue after interruption.
Leetcoder is for educational use. Do not use it to misrepresent your progress or break LeetCode’s rules. Always follow LeetCode’s terms of service and community guidelines.
- Clone the repo.
git clone https://github.com/chanpreet3000/Leetcoder
- Open the project in your editor.
- In the terminal:
yarn install - Create a
.envin the project root:; Used only for the local Chrome profile folder name. USER_EMAIL=your_email_here ; Chrome → chrome://version/ → Executable Path GOOGLE_CHROME_EXECUTABLE_PATH=C:/Program Files/Google/Chrome/Application/chrome.exe - Run:
yarn run start, then pick a mode:[L] Login to LeetCode ← run this first [1] Start Leetcode Bot. [2] Scrape Solved Leetcode Problems.
Pick L on the first run. A Chrome window opens on the LeetCode login page — log in, then close the window. Your session is saved to the local Chrome profile, so run yarn run start again and pick 1 or 2 to start.
Log in again with
Lwhenever your session expires. The login window and the bot can't run at the same time, so it's a separate step.
| Kind | Path |
|---|---|
| Scraped solutions | ./UserData/your_email/LeetcoderData/ScrapedSolutions |
| Solved problem list (resume) | ./UserData/your_email/LeetcoderData/SolvedProblems.json |
| Chrome profile (stay logged in) | ./UserData/your_email/ProfileData |
Leetcoder targets Windows. Behavior on macOS is not supported today — contributions to fix that are welcome.
Issues and pull requests are welcome on GitHub. See This project is maintained above if you’re unsure how to report something.
Open source under the MIT License. Free to use and modify for fun or learning; no warranty. If you build on it, a star or mention is appreciated but not required.