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-cli; the CLI binary is `reskill`)
pip install reskill-cli

# 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_cli-0.2.2.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_cli-0.2.2-py3-none-any.whl (129.9 kB view details)

Uploaded Python 3

File details

Details for the file reskill_cli-0.2.2.tar.gz.

File metadata

  • Download URL: reskill_cli-0.2.2.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_cli-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d97dac3684ec350bf1c723d8ba682a50aa96cc51aa566a7234cb4e902d93bac2
MD5 ca2eb100712740d7341d9b7d4a3efefe
BLAKE2b-256 715af7724966092052c7f3f987b80ea9e2b774d351eb0e59678b075c8c7e9cd6

See more details on using hashes here.

File details

Details for the file reskill_cli-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: reskill_cli-0.2.2-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_cli-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bec2a9aeb1fceb7df473e3082ec0070244f6842e21f3bdbbfd0415626e06ac05
MD5 8677de2884f83a900c1fc394c5b51788
BLAKE2b-256 d3c4c59d8eaf1b422cf8e6ac85dfa13962c79d2382f774f653459186a8cfd7be

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