Installing
Two routes, and they end up in the same place. Pick either.
A. One command, from a terminal
npm install -g eklavya && eklavya installThat one line gives you both halves: the eklavya command on your PATH, and
the install it then runs. If you would rather not install anything globally,
npx eklavya install does the same setup — but leaves no eklavya command
behind, so eklavya doctor and eklavya dashboard will not exist afterwards.
That does the whole job, in this order:
-
Checks your Node version
Stops with upgrade instructions if it is older than 22, rather than half-installing and failing later. If you need to upgrade first:
macOS brew install nodeWindows winget install OpenJS.NodeJS.LTSLinux (nvm) nvm install 22 && nvm use 22 -
Installs the runtime
The server, the hooks and the SQLite driver go into
~/.eklavya/runtime. This is the step that downloads the ready-compiled database binary for your platform. It then loads it once to prove it actually works, instead of trusting thatnpmexiting cleanly meant a working binary. -
Installs and enables the plugin
Copies the plugin into Claude Code’s plugin directory and registers it, which is the same end state
/plugin installproduces. If you first added Eklavya with/plugin marketplace add, that directory is a git clone rather than a copy — so this fast-forwards it with a pull instead of overwriting it, and says which it did. A clone with uncommitted changes in it is left exactly as it is. -
Installs the chat skill
A single file at
~/.claude/skills/eklavya/SKILL.md. It is what lets you change Eklavya by asking in plain English instead of remembering a slash command — see below. It is installed for your user account, not for the plugin, so it keeps working in projects where the plugin is not enabled. If a skill of your own is already at that path, this step says so and leaves it alone. -
Creates the database
~/.eklavya/knowledge.db, migrated and seeded, soeklavya doctorworks before you have opened Claude Code even once.
Then restart Claude Code and run /eklavya:setup to choose a mode. Running eklavya install again is how you upgrade — every step is safe to repeat, and it will not disturb your other plugins or your learning history.
B. In Claude Code, through the plugin marketplace
If you would rather not touch a terminal:
-
Add the marketplace
/plugin marketplace add ProjectAJ14/eklavyaA marketplace is a list of plugins Claude Code is allowed to install from. This one points at the Eklavya GitHub repository. You should see a confirmation naming the marketplace
eklavya. -
Install the plugin
/plugin install eklavya@eklavyaThe part before the
@is the plugin, the part after is the marketplace it comes from — they happen to share a name. Claude Code downloads the plugin and registers its MCP server, its six hooks and its eight slash commands. -
Restart Claude Code
Hooks and MCP servers are wired up when a session starts, so the session you installed from will not have them. Quit and reopen.
-
Run first-time setup
/eklavya:setupThis checks your prerequisites, creates the database, and asks you two short questions. The next section walks through it.
Check that it worked
Run /plugin and confirm eklavya is listed with no errors. The first thing a healthy session prints is a one-line learner profile, like this:
[Eklavya] No learning history yet. Mode: ambient. Focus: concept. Cadence: interleaved. Level: easy (0/100 on this project).If you see that line, you are done. If you see nothing at all, jump to Troubleshooting.
C. From a checkout (contributors)
Use this when you are changing Eklavya itself and want your edits to take effect immediately.
git clone https://github.com/ProjectAJ14/eklavya.gitcd eklavya/mcpnpm install # approve the better-sqlite3 build script if npm asksnpm run buildcd ..claude --plugin-dir "$(pwd)"--plugin-dir tells Claude Code to load the plugin from a folder instead of a marketplace, and sets CLAUDE_PLUGIN_ROOT so the MCP server can find itself. Use it rather than relying on the repository’s .mcp.json as project config, which has no plugin root to expand. The launcher prefers your local mcp/dist/ build when one exists, so a rebuild is all it takes to see a change.
Uninstalling
npx eklavya uninstall # removes the plugin and skill, keeps your historynpx eklavya uninstall --purge # removes ~/.eklavya as wellWithout --purge your knowledge graph stays at ~/.eklavya/knowledge.db, so reinstalling picks up exactly where you left off. That is deliberate: months of spaced repetition should not disappear because you removed a plugin.
The eklavya command
Some things — checking your setup, serving the dashboard, editing config from a terminal — are done with a small CLI rather than a slash command. Route A above installs it. If you took route B, or used npx, add it whenever you want it:
npm install -g eklavya # then: eklavya doctorFull list of subcommands: The eklavya CLI.