Your AI pair programmer for LeetCode — a senior engineer in your terminal.
Quickstart · Modes · Playbook · Under the Hood · FAQ
Stop grinding alone. LeetVibe puts a senior engineer in your terminal who can teach, coach, or interview you — depending on how much help you want today.
🧠 Three AI Modes
| 🎓 Learn | 🤝 Pair Programming | 🎤 Interview | |
|---|---|---|---|
| Who codes first | Vibe | You | — (verbal only) |
| What happens | Vibe solves it live in a strict 7-step workflow — reasoning out loud, running real code, measuring complexity | Vibe tests your attempt, diagnoses exact lines, and coaches you with Socratic hints | Alex, a senior engineer, runs a realistic mock interview — with voice via ElevenLabs |
| Reveals optimal | ✅ always | ✅ after coaching | ❌ never |
Every session is a live conversation: ask follow-up questions, push back, or go deeper at any point. The AI executes your code against real test cases, measures Big-O complexity from the AST, and explains algorithm patterns step by step.
No API Key? No problem. A fourth mode, Practice, drops the agent — browse, code, test, and read built-in solutions on your own. Skip the Mistral key during onboarding and Practice is all you'll see, until you add one later from AI Settings.
📖 Playbook
An in-terminal algorithm reference covering 52 patterns — from Arrays and Binary Search to Network Flow, Segment Tree, and Digit DP. Every topic page breaks down:
- 🧠 The intuition behind the technique, and how to recognise when to use it
- 📐 Annotated code templates and their variants
- ⚠️ Pitfalls, edge cases, and the pattern it's most often confused with
- 🎤 The follow-up questions an interviewer would ask next
Ask AI about any pattern without leaving the guide, keep per-topic notes, and export it all to DOCX.
✨ More Features
- 📚 Problem browser — filter by difficulty, topic, or solved status; free-text search across 2,800+ LeetCode problems
- 💡 Built-in solutions — 1,900+ problems ship with a written solution and explanation; a "Has Solution" filter surfaces them
- ✏️ Inline code editor — write Python in the terminal and run it against the problem's test cases without leaving the app
- 📋 Live test results — pass/fail output per test case, run in an isolated subprocess with a timeout so an infinite loop can't hang the session
- 📊 Statistics screen — session counts, solved problem tracking, progress over time
- ☁️ Cloud sync — optional account to persist progress across machines
- 🧙 Onboarding wizard — first-run setup collects API keys interactively; nothing to configure by hand
🚀 Getting Started
Requires Python 3.11+.
# with uv (recommended)
uv tool install leetvibe
# with pip
pip install leetvibe
leetvibe
The onboarding wizard opens automatically on first launch. It will ask for your Mistral API key and your ElevenLabs key for voice narration. Keys are saved to ~/.leetvibe/.env.
- 🔑 Get a Mistral key: https://console.mistral.ai
- 🔊 Get an ElevenLabs key: https://elevenlabs.io (optional)
📚 Full Documentation
Architecture diagrams, the agent loop, keyboard shortcuts, and the full mode walkthroughs live in the GitHub README. Contributions are welcome — see the Contribution Guide.
💬 Feedback
Found a wrong solution, an unclear explanation, or have a feature idea? Sign in and hit the Feedback button on any problem screen — it arrives tagged with the problem you were on. Or open an issue on GitHub.
📄 License
MIT © 2026 Hiba Chaabnia — see LICENSE for the full text.
Metadata
Release files for leetvibe 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| leetvibe-0.2.3.tar.gz | 2.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| leetvibe-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.9 MB
Release files / leetvibe-0.2.3.tar.gz
| Download URL | leetvibe-0.2.3.tar.gz |
|---|---|
| Size | 2.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a044b89b4cfd2b642145c750ae6730c2adcf41a5876b63bcecd23112e53de7a1
|
|
BLAKE2b-256 checksum How to use checksums |
0ad31dcfe9acc99f41e82867d0aa9baea765f27ed1b513375b4cefb52be28078
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / leetvibe-0.2.3-py3-none-any.whl
| Download URL | leetvibe-0.2.3-py3-none-any.whl |
|---|---|
| Size | 4.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
03007a192dc04086782ec8221ec98b9228bfc717e0655e39b20dd8118d612988
|
|
BLAKE2b-256 checksum How to use checksums |
6bb657b0dd95bce5843de5935982624e9414018b8e740298e2ba2693417363d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|