The four dials
Eklavya’s behaviour is four independent settings. Conflating them is the most common confusion, so learn them as four separate questions. All four can sit in your status bar — see eklavya statusline:
| Dial | Question it answers | Values |
|---|---|---|
mode | How hard does Eklavya push? | ambient (default), enforced, off |
focus | What does it teach? | concept (default), project, learn |
cadence | When does it ask? | interleaved (default), end |
difficulty | How hard may the questions get? | auto (default), easy, medium, hard |
They combine freely. enforced + learn is an intern who must pass a gate on a topic they chose. ambient + project is a gentle nudge grounded in today’s diff. The one interaction is off: it wins outright and focus is never read.
mode — how hard it pushes
| Value | Behaviour | Reach for it when |
|---|---|---|
ambient default | Questions are offered as you work and at the end of a task. Always skippable, never nagging. | You are learning a new stack on your own terms. |
enforced | The session quiz must be passed before git commit succeeds — inside Claude Code automatically, and from a bare terminal once you install the git hook. | Onboarding, interns, a codebase where shipping unread code is expensive. |
off | Installed but dormant. No questions, no gate, no banner. | A demo, a deadline, a repo you are only passing through. |
focus — what it teaches
| Value | Asks about | Good for |
|---|---|---|
concept default | The idea behind the code, phrased so the answer transfers to any codebase. Your diff is the motivation, not the subject. | Learning a stack. |
project | The code just written — the file, the line, the decision. | Learning a codebase. |
learn | A topic you name, taught in prerequisite order, using your real code as the worked example wherever the work touches it. | Learning something on purpose. |
cadence — when it asks
| Value | Behaviour | Good for |
|---|---|---|
interleaved default | One question at a time, the moment a concept is logged. A quiz Eklavya offers is capped at one question under this cadence, the end-of-task sweep included — never a batch. exceptions enforced mode plans the full remaining budget, because the commit gate needs enough passing answers to open; so does a quiz you asked for by name, or one aimed at a topic or concept you named. | Learning while the agent works — the thing the tool is for. |
end | Nothing until the task is finished, then whatever the budget has left, asked one question at a time. | Pairing, demos, deep focus. |
interleaved does not mean more questions. It moves the same budget earlier, and caps every quiz it offers at one question — a budget it never reaches is simply not spent, and those concepts come back as review in a later session. If being interrupted is the problem rather than the timing, raise min_minutes_between_checkpoints before switching to end.
difficulty — how hard it may get
This is the one dial you normally earn rather than set. On auto, every project starts at easy and climbs on evidence. Setting a literal value pins the band and stops progression. See Levels and tiers.
Changing a dial
Two ways, both equivalent:
/eklavya:mode # show all four, then change any of them/eklavya:mode project # set focus to project/eklavya:level medium # pin this project's difficulty bandeklavya config set mode enforced # for you, everywhereeklavya config set mode enforced --repo # for this project onlyeklavya config set focus learn --topic cachingeklavya config set cadence end