A terminal companion for Claude Code. While Claude thinks for 23 seconds, reSkill hands you a quiz about the exact code it's working on.
Project description
reSkill
A terminal companion for Claude Code. While Claude thinks for 23 seconds, reSkill hands you a quiz about the exact code it's working on.
Zero network. No Claude slowdown. Local state, single flag file. MIT, alpha. Landing: https://amitsubhash.github.io/reskill/.
Claude is thinking... reSkill Q1
╭── think about this ──╮
· Reading 3 files │ Most Pythonic way to │
· Analyzing scheduler.py │ read a UTF-8 JSON? │
│ │
Actioning... 16s │ 1) open(...) │
│ 2) Path(...).read_ │
│ text(utf-8) ✓ │
│ 3) codecs.open() │
│ 4) io.open() │
╰──────────────────────╯
Install
# 1. install the package (the PyPI name is reskill-claude; the CLI binary is `reskill`)
pip install reskill-claude
# 2. see it work, no settings touched
reskill demo
# 3. wire it into Claude Code (reversible; backs up your settings.json)
reskill install
reskill doctor
Prefer editable? git clone https://github.com/AmitSubhash/reskill.git && cd reskill && pip install -e .
Or install straight from GitHub: pip install git+https://github.com/AmitSubhash/reskill.git.
Use
Live during Claude sessions (the main one):
reskill claude # opens claude + a quiz pane alongside
If you have tmux: splits the current window. If not: pops a second
Terminal.app or iTerm2 window. Click the quiz pane (or Ctrl+B →) to
focus it, press 1 to 4 to answer.
Anytime, anywhere:
reskill next # one context-matched quiz, right now
reskill next --concept torch # target a specific topic
reskill session # commit-driven deck (last 7 days)
reskill review # drill your recently-missed questions
reskill topics # learning map: every concept + mastery
reskill doctor # diagnose anything that feels off
reskill status # one-liner: 0 mastered, 3/5 today, 5 streak
reskill stats # level, XP, per-concept mastery
reskill streak # 12-week heatmap of your answered days
How it works
- Hooks fire on
UserPromptSubmit,PreToolUse,PostToolUse,Stopto toggle a flag file at~/.reskill/state/thinking. - Quiz pane watches the flag (or falls back to transcript-mtime polling if hooks aren't installed) and serves a question whenever Claude is mid-thought.
- Scheduler picks questions matched to what Claude is writing. Tiers: live transcript > recent git commits > cumulative cache. Within a tier: SM-2 overdue > new > not-due. Across concepts: interleaved within confusable clusters (Rohrer & Taylor 2007). Within a concept: format diversity (Roediger & Karpicke 2006). Targets a 15% error rate per Wilson 2019.
- Pacing gate rate-limits with sensible defaults, tunable via
RESKILL_*env vars. - In-session re-queue pushes wrong answers back 3 items later (Butler & Roediger 2008).
- Hypercorrection cue: wrong answers given in under 5 seconds get a sticky flag. Research says these stick hardest.
Controls
| Key | Action |
|---|---|
1 to 4 |
Answer |
x, esc |
Skip this question |
b |
Later, requeue after 5 items |
B |
Bury, gone for today |
q |
Quit the pane (idle card only) |
Themes
export RESKILL_THEME=everforest # default on truecolor terminals
export RESKILL_THEME=mono # BOLD/DIM only
export NO_COLOR=1 # standard, also forces mono
Auto-falls-back to mono when COLORTERM is not truecolor or
24bit (Apple Terminal.app, many ssh contexts).
Tuning
export RESKILL_MIN_GAP=10 # seconds between quizzes
export RESKILL_MAX_PER_HOUR=20
export RESKILL_MAX_PER_DAY=60
export RESKILL_THINKING_DEBOUNCE=3 # skip first N seconds
export RESKILL_SAME_CONCEPT_COOLDOWN=90
What's inside
- 74 hand-written questions across 50 concepts
- Python (async, typing, numpy / pandas / torch, stdlib gotchas, packaging, testing) plus shell, git, SQL, React and TypeScript essentials
- 8 question formats: output, bug, tradeoff, scenario, why, gotcha, refactor, cloze
- LLM-generated questions from your live transcript or real commit
diffs via
reskill gen --live
Uninstall
reskill uninstall # removes hooks + statusline, keeps a backup
Your existing settings.json hooks and statusLine are preserved. We
only touch entries we own.
Status
Alpha. Data model stable, scheduler is evidence-based. The template bank is hand-written; LLM-generated questions from novel diffs are the next major milestone.
License
MIT. See LICENSE.
Credits
Built by Amit Subhash (@AmitSubhash). Scheduler grounded in the spaced-repetition literature: Bjork & Bjork 2011 (desirable difficulties), Rohrer & Taylor 2007 (interleaving), Butler & Roediger 2008 (delayed feedback), Wilson et al. 2019 (85% rule), Butterfield & Metcalfe 2001 (hypercorrection). Mistakes are mine.
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 reskill_claude-0.2.1.tar.gz.
File metadata
- Download URL: reskill_claude-0.2.1.tar.gz
- Upload date:
- Size: 131.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b696b813c2d8c2058e374011384c9dbd8fb4a6502bebc4b311fc4e98e7ff8d2
|
|
| MD5 |
9499c1ea7f0d2bf7774018fa4176849b
|
|
| BLAKE2b-256 |
f3ab920bfb85cf12ebde53ca904775d84be38e0d011d0f5fd84d99e4d5bec945
|
File details
Details for the file reskill_claude-0.2.1-py3-none-any.whl.
File metadata
- Download URL: reskill_claude-0.2.1-py3-none-any.whl
- Upload date:
- Size: 129.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d2ad5fddbdbae3fa59b98634b02f3f612d589f85cb441cbb0ecdc669423beb6
|
|
| MD5 |
a20d047351e348528cf166a06badbc7a
|
|
| BLAKE2b-256 |
800029e09c0beb15d26cea692bd2fda514bc2e24ae1bb26a31176096ae96e6b9
|