pi-dedumbify
v0.1.0
Published
Pi extension for executable spaced repetition with FSRS scheduling
Maintainers
Readme
pi-dedumbify
Pi extension for executable spaced repetition with FSRS scheduling.
Write real TypeScript or Python code, run tests in an isolated temp workspace, then rate the review to schedule the next interval.
Install in pi
From npm:
pi install npm:pi-dedumbifyFrom GitHub:
pi install git:github.com/lukaskawerau/pi-dedumbifyThen restart pi or run /reload.
What it does
- centered review overlay inside pi
- user-authored global card deck
- TypeScript cards graded via Vitest
- Python cards graded via
uv+ Pytest - FSRS scheduling via
ts-fsrs - automatic review persistence in SQLite
Commands
/sr— auto-sync cards, then open review modal/sr-sync— force a card rescan + DB sync/sr-stats— sync cards, then show DB-backed deck stats/sr-validate— structural validation + run solution tests without writing reviews
Keyboard shortcuts in the modal
tab/shift+tab— switch panesctrl+r— run testsctrl+s— toggle starter/solution1/2/3/4— Again / Hard / Good / Easyesc— close
Card location
Cards live under:
~/.pi/agent/spaced-rep/cards/DB lives at:
~/.pi/agent/spaced-rep/fsrs.dbCard format
Each card lives in its own directory.
TypeScript example:
sum-array-ts/
card.yaml
prompt.md
starter.ts
solution.ts
tests.tsPython example:
factorial-py/
card.yaml
prompt.md
starter.py
solution.py
tests.pyMinimal card.yaml:
id: sum-array-ts
title: Sum an array of numbers
language: typescript
tags:
- arrays
- iteration
timeboxSec: 180
files:
prompt: prompt.md
starter: starter.ts
solution: solution.ts
tests: tests.ts
runner:
entry: answer.tsLocal development
cd ~/coding/apps/dedumbify
npm install
npm run check
piThe repo exposes a project-local extension shim at .pi/extensions/dedumbify.ts, so pi auto-discovers it when started from the repo root.
Status
MVP works.
Implemented:
- card discovery + validation
- SQLite deck state + review log
- grading runners for TS and Python
- FSRS scheduling
- review modal with answer buffer and autosave on rating
Still rough:
- result rendering polish
- richer session stats
- nicer reveal-solution flow
