Your first session
Nothing below requires you to type an Eklavya command. This is the plugin working on its own while you do ordinary work.
The loop, start to finish
-
You open Claude Code
The SessionStart hook prints one line: your learner profile, the current mode, focus, cadence and level. Claude reads that line too, so it is calibrated from your very first message.
quiet: trueturns the banner off. -
You ask for something
For example: “Add JWT auth to the Express API.” Claude starts working.
-
Claude logs what the work touches
As it implements, Claude calls the
log_session_conceptstool with three to eight concepts — sayjwt-structure,httponly-cookies,middleware-order-auth— each with one line naming the real code it wrote. This is what everything else is grounded in: no logging, nothing to ask about. -
A question lands at the seam
That logging call fires the PostToolUse checkpoint hook. If the cadence is
interleaved(the default), you get one question right there, while the code is still on your screen:Checkpoint Why is httpOnly set on the refresh cookie here but not on the access token?Four options arrive through Claude Code’s own question UI, under an Eklavya header so you can see who is asking. Picking one is a keystroke.
Nothing else is printed with the question. The dials that pitched it — mode, focus, cadence and the level you are on — live in your status bar instead, if you set it up:
[EKLAVYA ambient · concept · interleaved · easy]. They are true for the whole session, so a bar is the honest place for them; earlier versions restated them above every stem, which put four settings between you and the question. -
Claude grades it and goes straight back to work
The answer is graded on a 0–5 scale and stored, along with the next review date. No summary, no re-plan, no second question — the interruption is meant to cost you seconds.
-
The task finishes and sweeps up the rest
The Stop hook checks whether anything worth asking is left, and if so asks one more question on the default cadence — never a row of them, unless the session is gated and the gate still needs answers. Because
max_questions_per_taskis a session budget and not a batch size, a session that answered its whole budget while you worked ends in silence. -
Tomorrow
Concepts you got right are scheduled further out. Concepts you fumbled come back sooner, as a different question, sometimes a tier lower. Concepts you mastered are retired unless spaced repetition brings them back.