A spaced-repetition CLI for LeetCode practice problems
Project description
Jobbernaut Sensei ๐ฅ
Your LeetCode practice, but you actually remember what you solved.
Sensei is a spaced-repetition CLI that stops you from grinding LeetCode into the void. Every command outputs clean JSON โ it's built for humans but designed for AI agents.
pip install jobbernaut-sensei
sensei init
๐ฅ Why This Exists
You solve 200 LeetCode problems. Three months later you can't solve FizzBuzz.
Sensei tracks when you solved a problem and how well you understood it. Then it tells you exactly what to review โ before your brain evicts it from cache.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Your brain has a cache. This is the invalidation policy. โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Zero config. Zero cloud. Zero bullshit. Your solutions are just .py files in a folder โ git-friendly, portable, no lock-in.
โก What It Does
| Command | Vibe |
|---|---|
sensei revisit |
"Here's what you're forgetting" โ color-coded review queue |
sensei status |
JSON snapshot for you or your AI agent |
sensei hint <problem> |
Get the problem URL + deets without the answer (for quizzing) |
sensei show <problem> |
Full problem + your saved solution (for review) |
sensei mark <problem> --rating e |
"Easy" โ next review in 90 days (or 135, if you've aced it before) |
sensei new <num> <slug> <cat> |
Scaffold a fresh problem in 0.3 seconds |
sensei open <problem> |
Jump into the code + LeetCode page |
sensei revisit --export |
Dump everything to CSV or Markdown |
๐ Daily Loop
# 1. What's rotting in my brain today?
sensei revisit
# 2. Quiz me on this one (agent, don't spoil it)
sensei hint 217
# 3. Let me code, then compare
sensei show 217
# 4. How'd I do?
sensei mark 217 --rating g # good โ 30 days
That's it. Four commands. Whole loop takes 2 seconds of typing.
๐ง Spaced Repetition โ The Smart Part
Rate yourself after each solve. Sensei learns from your history:
| Rating | Flag | Next Review | If you keep acing it |
|---|---|---|---|
| Easy ๐ข | --rating e |
90 days | Grows 1.5ร per session (90 โ 135 โ 180 max) |
| Good ๐ต | --rating g |
30 days | Stays 30 days |
| Hard ๐ก | --rating h |
7 days | 14 days if you've seen it before |
| Struggled ๐ด | --rating s |
3 days | Stays 3 days (agent: flag as leech) |
First time rating "easy"? โ 90 days.
Fourth time rating "easy"? โ 135 days (you clearly know this).
Keep struggling? โ 3 days forever (time to study the pattern, not the problem).
๐ค AI-Agent Native
Every command returns clean JSON. Plug it into Cline, Claude Code, ChatGPT, or your own agent:
sensei status # โ {"total":22,"overdue":0,...}
sensei revisit --json # โ Full review data with dates
sensei hint 217 # โ Problem URL + status, no solution
sensei show 217 # โ Metadata + saved solution
sensei mark 217 --rating e # โ Update schedule, no prompts
See AGENTS.md for the complete agent integration guide.
๐ฆ Setup
pip install jobbernaut-sensei
sensei init # Creates problems/ directory
sensei new 217 contains-duplicate 1-arrays-and-hashing -d easy -t arrays hash-set
code problems/ # Start solving
Dependencies
- Python โฅ 3.10
- That's it. No npm. No Docker. No cloud.
๐ Commands
sensei revisit โ what to review
sensei revisit # Overdue + due today + upcoming 7 days
sensei revisit --all # Everything
sensei revisit --topic trees # Filter by topic
sensei revisit --json # Agent-friendly JSON
sensei revisit --export # โ export.csv
sensei revisit --export-md # โ export.md
Colored terminal output:
๐
Jobbernaut Sensei Revisit โ Tuesday, May 26 2026
๐ข UPCOMING (7 days)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
in 3d [hard ] 124. Binary Tree Maximum Path Sum (trees)
in 4d [medium] 853. Car Fleet (stack, monotonic-stack)
sensei show <problem> โ inspect + solution
sensei show 217
sensei show contains-duplicate
Returns JSON: label, number, title, filepath, metadata (last_solved, revisit_in_days, difficulty, topic_tags, due_date), and your saved solution code.
sensei hint <problem> โ inspect, NO solution
sensei hint 217
sensei hint contains-duplicate
Same as show but no solution field. Perfect for agents that want to quiz without spoiling.
sensei mark <problem> โ rate your session
sensei mark 217 # Interactive prompt
sensei mark 217 --rating e # Non-interactive (agent-friendly)
sensei new <num> <slug> <cat> โ scaffold
sensei new 217 contains-duplicate 1-arrays-and-hashing -d easy -t arrays hash-set
sensei open <problem> โ jump in
sensei open 217 # Editor + browser
sensei open 217 --no-browser # Editor only
sensei status โ quick pulse
sensei status
Returns {total, overdue, due_today, upcoming, problems[]} โ one-liner for agents.
๐ง Fuzzy Matching
Every command that takes a problem accepts:
sensei show 217 # Problem number
sensei show contains-duplicate # URL slug
sensei show "valid anagram" # Title words
It matches the first unique result. No tab-complete needed (but we have it anyway โ see completions).
๐ Zsh Completions
fpath=(/path/to/jobbernaut-sensei/src/completions $fpath)
autoload -Uz compinit && compinit
๐ License
PolyForm Noncommercial License 1.0.0 โ free for personal and non-commercial use.
Full license in LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jobbernaut_sensei-0.3.3.tar.gz.
File metadata
- Download URL: jobbernaut_sensei-0.3.3.tar.gz
- Upload date:
- Size: 26.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b150f34d591513cb77035c164453dcc5990b899495c532ace21f9ede4a93585
|
|
| MD5 |
245f7fff0b1cc66ab3cb7e08b2eb6cd0
|
|
| BLAKE2b-256 |
6b47ab2cda3438567c8470194c4ac3632b14427657ea3fb1f42b76829b4f6bde
|
File details
Details for the file jobbernaut_sensei-0.3.3-py3-none-any.whl.
File metadata
- Download URL: jobbernaut_sensei-0.3.3-py3-none-any.whl
- Upload date:
- Size: 21.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6719268cd25e4cdb8b527a75de8638ad6e3396cf84190c4c2479b3701c2e880f
|
|
| MD5 |
212cdd4d924dd0b93d25edf31ddfe2c1
|
|
| BLAKE2b-256 |
13a56284fbf325e329240a733a66fa315a64314589064fd3048ae59cdcf2d5d2
|