FAQ
How do I install Node.js?
The recommended Eklavya install requires Node.js 22 or newer and npm.
The Node.js installer includes npm.
If Node is already installed, check it with node --version and npm with
npm --version.
You can also use your package manager:
brew install nodewinget install OpenJS.NodeJS.LTSnvm install 22 && nvm use 22What does the installer set up?
npm install -g eklavya && eklavya install installs the terminal command,
Claude Code plugin, managed runtime, local database and two chat skills for
plain-English controls and saved explanations. It also adds Eklavya’s status
line when you do not already have one.
No settings questions appear. A fresh install has skippable questions on,
concept focus, as-you-go cadence, automatic difficulty, the side panel, memory
and prompt feedback. claude-sonnet-5 writes memory summaries and reviews
prompts through your Claude Code login. The dials and
Configuration explain how to change these later.
You can open the optional walkthrough with eklavya install --settings.
Reinstalling keeps saved choices. Older configs keep the previous defaults for these settings: no observer model and feedback off, unless explicitly set. If a first install finds Claude Mem, it keeps Claude Mem recording and disables Eklavya memory. To switch, follow Moving from Claude Mem.
Git lets Eklavya identify projects. Ordinary questions and memory need no
jq or sqlite3 command. The optional terminal commit gate
needs both, a POSIX shell and a separate Git hook.
For another host or a source checkout, use Installation options. For automatic updates, backups and removal, use Updates and removal.
Does it work in Claude Desktop?
The Code tab uses your Claude Code installation. Cowork needs a separate plugin install. Ordinary chat does not load Eklavya. See Installation options.
The experimental quiz side panel is enabled on the Code tab too, though it has not yet been verified on a real Desktop build; if Desktop cannot show it, questions use the card.
The Code tab does not draw the greeting a terminal session opens with (“Eklavya
active · v… · memory on · questions off”), so the same first line is shown there
as a short toast once per session. It comes from the panel mod, so it needs the
plugin’s mod to load (it shows even when quiz.panel is off), and it is not yet
verified on a real Desktop build. quiet on or memory off skips it. The terminal
is unchanged.
Is Cowork different?
Questions refer to the documents and analysis you produce. The commit gate has
nothing to block, and delegated subagents are not instructed to log concepts.
Questions carry [Eklavya] in the card because there is no terminal header or
status bar. A hook refuses a card question headed “Eklavya” that omits the line, and Claude asks again with it.
Does anything leave my machine?
Eklavya stores data and runs its search index locally. New installs use
claude-sonnet-5 through your Claude Code login to write memory summaries and
review prompts, so captured session evidence goes to that model. It has no
separate account. It does send anonymous daily usage
counts, never paths, names or text; eklavya telemetry off stops them, and
Usage analytics lists every field. Recalled memories are
provided to Claude as session context, alongside the work you already do
with Claude.
Automatic updates contact npm without sending your learning or memory data;
auto_update: false disables those checks. The local dashboard keeps running in
the background on 127.0.0.1 only and makes no outbound requests;
dashboard_autostart: false stops it being started. Saved explainer pages opened in their own tab can request
Google Fonts, with system font fallbacks when offline; in the dashboard’s viewer they use system fonts.
Prompt feedback sends up to eight of your prompts from one finished session
to the observer model. Set providers.observer to null for local summaries
and no prompt review. Existing installs keep their settings; older configs
keep the previous defaults for these settings: no observer model and feedback
off, unless explicitly set.
Notifications can send wrap-ups to a destination you choose, and sync writes memory to a directory you choose. Both are off by default. See Memory and Configuration for the controls.
Does feedback on my prompts change my score?
No. Feedback is stored in its own tables, which refer to no answer, score or level, and nothing in a coding session can write to them. Only an answered question changes mastery. New installs have feedback on; feedback.enabled controls it. See the Feedback page and how it is made.
How do I report a problem with Eklavya?
Tell Claude, in plain words: “That question about retries was wrong. File feedback for Eklavya.” Claude drafts a GitHub issue on ProjectAJ14/eklavya in a fixed format (category, what happened, what you expected, the concept or question slug if one is shown, the Eklavya version, your host and OS), removes absolute paths, project and repository names, anything that looks like a secret and any code from your project, shows you the exact title and body, and files it with the gh command (or a GitHub tool, if Claude has one) only after you say yes. With neither, it shows the draft and a prefilled link and posts nothing. Nothing from ~/.eklavya/ is ever attached. You can also open the form yourself.
Does it remember my code?
It records prompts, Claude’s final message for each turn and tool-call evidence, including arguments, paths, errors and an excerpt of each result, then turns them into observations. File reads and edits keep no result, so your repository is not stored as a second copy, but arguments and command output can contain code. Privacy filters exclude common secret paths and redact recognized secret patterns; review what memory captures before working with sensitive material.
Will it slow down my work?
Questions interrupt briefly; local hooks read the database directly. Change the cadence or question budget if the default pace is too frequent. A configured memory model also uses your Claude subscription. See The dials.
Does the quiz side panel use my Claude usage?
Only for answers you type under Other. Each one is graded by a single short model call from the panel, using the same rubric as a card answer. Picking an option or skipping calls no model: the grade comes from what the asking model wrote with the question. See the quiz side panel.
Can I skip a question?
Yes. A skip is recorded as a decline with grade 0 and excluded from accuracy. A question that was itself at fault is different: it is set aside as invalid and grades nothing at all. A clean decline without tutor feedback is not retried by the gate; a decline with an explanation can return. With enforcement enabled, skipping does not remove the requirement to pass enough concepts before committing.
Can I pause questions for one session?
Say “turn Eklavya off for this session.” It hides questions, checkpoints, the banner and status bar without changing saved settings. Memory continues. The installed git commit gate still follows the project’s enforcement setting.
For persistent changes, set quiz.enabled or memory.enabled separately.
There is no session-only memory switch.
Why did it ask about something I already know?
The concept may not yet meet the mastery threshold, your last answer on it may have been declined, blank or wrong, or today’s work may have touched it while its spaced review was due. A concept whose last answer was right is not brought back from an earlier session. Questions should vary as you progress through the tiers. See Levels and tiers.
Can my team share settings?
Each developer keeps personal settings under ~/.eklavya/, including
project-specific overrides. Share a concept pack in the repository
to teach the same project concepts without imposing one learner’s preferences
on everyone. Legacy .eklavya.json files are migrated out of the checkout;
unsafe repository-supplied provider and notification settings are not trusted.
Can two Claude Code sessions share one quiz?
Yes. Give both sessions the same EKLAVYA_SESSION_ID to use one for building
and one for tutoring. Follow the
parallel tutoring guide.
I work in two repositories at once. Will they mix?
No. In Claude Code each session’s tools use the session ID the host gives them, so two windows stay separate even in the same checkout or when one edits a sibling worktree. Hosts that do not provide that ID fall back to a pointer per checkout, which two sessions in one checkout share. The database itself is shared across projects.
How do I upgrade?
Updates run automatically. Use eklavya update to update now, then start a new
session. See Updates and removal.
How do I uninstall?
Run npx eklavya uninstall to remove the Claude Code plugin and user skills
while keeping history. Git hooks, project-scoped plugin installs and Cowork
may need separate removal. Follow the
uninstall guide for those steps or to delete data.
How is Eklavya tested?
Every pull request runs the whole test suite under coverage, including the hooks and CLI commands the tests start as separate processes, and fails unless 100% of lines, branches and functions run. Code that only runs on another operating system or in a timing race is excluded line by line, with the reason beside it. The suite runs on Linux; CONTRIBUTING.md has the details.
Still stuck?
Start with Troubleshooting. If the tool and the manual disagree, report the discrepancy with the command, expected result and actual result. Do not include private project data or secrets.