Skip to main content

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

reSkill, while Claude thinks you learn

tests license: MIT Python 3.10+

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, Stop to 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reskill_claude-0.2.1.tar.gz (131.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reskill_claude-0.2.1-py3-none-any.whl (129.9 kB view details)

Uploaded Python 3

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

Hashes for reskill_claude-0.2.1.tar.gz
Algorithm Hash digest
SHA256 1b696b813c2d8c2058e374011384c9dbd8fb4a6502bebc4b311fc4e98e7ff8d2
MD5 9499c1ea7f0d2bf7774018fa4176849b
BLAKE2b-256 f3ab920bfb85cf12ebde53ca904775d84be38e0d011d0f5fd84d99e4d5bec945

See more details on using hashes here.

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

Hashes for reskill_claude-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9d2ad5fddbdbae3fa59b98634b02f3f612d589f85cb441cbb0ecdc669423beb6
MD5 a20d047351e348528cf166a06badbc7a
BLAKE2b-256 800029e09c0beb15d26cea692bd2fda514bc2e24ae1bb26a31176096ae96e6b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page