Terminal-based NeetCode/LeetCode practice environment with Claude Code integration.
- Interactive problem browser with fzf
- 3-pane tmux layout: solution editor, Claude assistant, problem description
- Automatic file tracking - Claude sees your code without manual copying
- Progress tracking by category and difficulty
- 150 NeetCode problems with descriptions and examples
git clone https://github.com/ryanmachancock/shpleetcode.git
cd shpleetcode
./install.shThe installer will:
- Check for required dependencies (fzf, tmux, nvim, claude, node)
- Install MCP server dependencies
- Scrape NeetCode problems
- Configure Claude Code to use the MCP server
Start the environment:
./start-leetcodeThis launches a tmux session with:
- Left: Neovim with your solution file
- Top-right: Claude Code with MCP server
- Bottom-right: Neovim displaying the problem description
Files auto-save after 1 second of inactivity, so Claude always sees your latest code.
- fzf - Fuzzy finder
- tmux - Terminal multiplexer
- Neovim - Text editor
- Claude Code - AI assistant
- Node.js - JavaScript runtime
Claude has access to these tools:
get_current_problem()- Get your current file contentslist_problems()- Browse all problems with filtersget_problem(id)- Get problem detailsmark_solved(id)- Mark problem completeget_progress()- View your statssearch_problems(query)- Search by title or tags
shpleetcode/
├── start-leetcode # Main launcher
├── install.sh # Setup script
└── leetcode-mcp-server/
├── index.js # MCP server
├── scraper.js # Problem fetcher
└── package.json
~/.leetcode/
├── problems.json # Problem database
├── progress.json # Your progress
└── workspace/ # Your solutions
├── arrays-hashing/
├── two-pointers/
└── ...
- Filter by difficulty:
./start-leetcode Easy - Problems marked
[B75]are from the Blind 75 list - Ask Claude for hints, not solutions
- Use
Ctrl-h/lto navigate between panes
MIT