A sleek, minimal, and fully offline competitive programming companion. Powered by the local VibeThinker-3B model, this dashboard provides sub-second optimal solution streaming, space/time complexity analysis, and robust edge-case unit test generation without ever hitting the web.
- Frontend/UI: Streamlit (Minimalist & responsive dark-mode dashboard)
- Local Engine: Ollama (High-performance GGUF runtime)
- Model:
VibeThinker-3B.Q4_0.gguf(Tailored 3B parameter model for coding and algorithmic design) - Language: Python 3.10+
app.py: A Streamlit application that handles prompt streaming and basic system checks.Modelfile: The configuration recipe that builds the localvibethinkermodel in Ollama.README.md: This guide.
These steps assume you have Python 3.10+ installed. Run these commands sequentially in Windows PowerShell:
Download and run the installer from the official page: https://ollama.com/download/windows (Ensure the Ollama application is running in your taskbar before proceeding).
Download the VibeThinker-3B.Q4_0.gguf model weight file from the official Hugging Face repository:
- VibeThinker-3B-GGUF on Hugging Face
- Place the downloaded GGUF file in the root directory of this project (named exactly
VibeThinker-3B.Q4_0.gguf).
Install Streamlit and the Ollama helper library:
pip install streamlit ollamaBuild the customized local model inside Ollama using the provided Modelfile:
ollama create vibethinker -f ModelfileHere is a sample LeetCode problem description you can use to test the dashboard. Copy and paste this text into the input field:
LeetCode 42. Trapping Rain Water (Hard)
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining.
Example 1:
Input: height = [0,1,0,2,1,0,1,3,2,1,2,1]
Output: 6
Explanation: The above elevation map (black section) is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped.
Start the Streamlit application from your PowerShell terminal:
streamlit run app.pyYou can verify that your local environment and Ollama service are fully functional with these commands:
Check if the local Ollama API is active and accepting requests:
Invoke-RestMethod -Uri "http://localhost:11434"(Expected Output: Ollama is running)
Check if the compiled vibethinker model is listed in Ollama's local registry:
ollama list(Expected Output: A table containing vibethinker:latest)
Run a quick test prompt to confirm model execution:
ollama run vibethinker:latest "Write binary search in Python in 5 lines or less."- 💻 Distraction-Free Practice: Solve problems in a completely offline environment (flights, commutes, remote work) with no notifications or browsing distractions.
- 🔒 Complete Data Privacy: Your code, problems, and thoughts never leave your local machine—zero external APIs, zero tracking.
- ⏱️ Sub-Second Streaming Solutions: Instant optimal code and analysis streamed line-by-line using Ollama's local chat API.
- 🤖 Deterministic Coding Mode: Configured with a temperature of
0.1to ensure highly structured, reliable, and mathematically sound solutions. - 🧪 Edge-Case Test Generation: Automatically generates comprehensive test suites (empty, single, extreme bounds) to harden your code before submission.
- 📊 Offline SQL Analytics: Integrate a local SQLite database to log solved problems, timestamps, and difficulty distribution.
- 🧪 Automated Local Code Sandbox: Run generated solutions against custom input test suites directly inside the Streamlit UI.
- 💡 Multi-Level Hint System: Add an interactive slider to reveal hints (Algorithm intuition -> Pseudocode -> Final Solution) to avoid spoiling code.
- 🔄 Multi-Language Generator: Introduce a language selector dropdown to output solutions in C++, Java, Rust, or Go.
- 🧠 Complexity Graph Visualizer: Plot execution time graphs (
$O(1)$ vs$O(N)$ vs $O(N^2)$) based on input size boundaries.
vibethinker vibethinker-3b ollama local-ai offline-coding leetcode-offline gguf streamlit-dashboard ai-coding-assistant offline-llm private-ai competitive-programming