# MemStack for Claude Code: 131 Skills, a License Gate and a Separate MCP Loader

> MemStack installs in two halves, a Claude Code plugin marketplace of skills and a PyPI skill loader, and the split is where most setup failures come from. Here is what it does, how the pieces connect, and who should skip it.

**cwinvestments/memstack** — Structured skill framework for Claude Code. 130 skills, persistent memory, TokenStack compression, localhost dashboard with 3-agent runner, real-time streaming, MCP tools.

- Repository: https://github.com/cwinvestments/memstack
- Website: https://memstack.pro
- Stars: 422 · Forks: 45
- Language: Python
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/cwinvestments-memstack

## The problem MemStack solves inside Claude Code

Claude Code gives you a general assistant with no built-in notion of what a Railway deployment, a database migration or a Next.js convention file should look like. MemStack's answer is a catalog of 131 named skills that activate on demand. The README's own example is the clearest statement of intent: say "deploy this to Railway" and the matching skill loads rather than you pasting a checklist into the prompt. The audience is developers already living in Claude Code who want repeatable task knowledge without maintaining their own prompt library. It is not a general agent framework and it is not a memory product for other editors; the whole design assumes Claude Code as the host.

## Two halves: a marketplace plugin and an MCP skill loader

The architecture is split, and the split is deliberate. Skills ship as a Claude Code plugin from the marketplace at cwinvestments/memstack. The engine is a separate Python package, memstack-skill-loader, registered as an MCP server. The loader is what reads skill files out of the installed marketplace plugin, so neither half is useful alone. That is why the README labels every command as either (in Claude Code) or (in terminal); running one in the wrong place is, in its words, the most common setup mistake.

The second architectural decision is the license gate. Free users get 87 skills. The remaining 44 are Pro-exclusive, and the README lists them by name, from advanced-security and multi-agent through to web-scraper. On activation the loader downloads those skills from the vendor's server into ~/.memstack/pro-skills. The stated reason is a single source codebase with no separate repos or branches for paid content. That is a real engineering benefit, but it also means the Pro catalog is not present on disk until a network call succeeds. The repository also documents a tiering rule: new skills default to Pro-exclusive and drop to free after 90 days unless marked permanent-Pro.

## Installing MemStack: marketplace first, engine second

Step 1 installs the free skills from inside Claude Code. Both commands are required, and the README states this unlocks the 87 free skills right away.

```bash
/plugin marketplace add cwinvestments/memstack
/plugin install memstack@cwinvestments-memstack
```

If the clone fails with "Host key verification failed" on a server that has never used GitHub over SSH, the README's default fix rewrites GitHub to HTTPS before you retry Step 1.

```bash
git config --global url."https://github.com/".insteadOf "git@github.com:"
```

Step 2 installs the engine in the terminal. On Windows the package name is enough.

```bash
pip install memstack-skill-loader
```

On Linux and macOS the README insists on the explicit interpreter, and says the same interpreter must be registered in Step 3. Find yours with which python3 and substitute it if it is not /usr/bin/python3.

```bash
/usr/bin/python3 -m pip install memstack-skill-loader --break-system-packages
```

Step 3 registers the MCP server against that same interpreter. The Windows form uses bare python.

```bash
claude mcp add --scope user memstack-skills -- python -m memstack_skill_loader
```

The Linux and macOS form repeats the explicit path, and the README warns that if it does not match Step 2's interpreter the server will not launch.

```bash
claude mcp add --scope user memstack-skills -- /usr/bin/python3 -m memstack_skill_loader
```

Step 4 runs after a full restart of Claude Code, so the new MCP server is picked up. This unlocks the 44 Pro-exclusive skills; free-tier users can skip it and type list skills to confirm the 87 free skills loaded.

```
activate_license(key="your-key", email="you@example.com")
```

## The Python interpreter mismatch that breaks the MCP server

If activate_license is missing or the MCP server reports "failed to reconnect (-32000)", the README points at one cause: the loader was installed onto a different Python interpreter than the one Claude Code launches. On Linux and macOS the bare python command is often not the interpreter you installed onto. The check the README gives is a single import, run against an explicit path.

```bash
/usr/bin/python3 -c "import memstack_skill_loader; print('ok')"
```

If it prints ok, make sure Step 3 registered that exact path and fully restart Claude Code. If it raises ModuleNotFoundError, reinstall onto the explicit interpreter and re-register against the same path.

```bash
/usr/bin/python3 -m pip install memstack-skill-loader --break-system-packages
claude mcp add --scope user memstack-skills -- /usr/bin/python3 -m memstack_skill_loader
```

The README's rule of thumb is blunt: whatever interpreter you import-check as ok is the path that must appear in your claude mcp add command. A related failure is "No module named pip" during Step 2 on minimal Debian or Ubuntu images, which the README resolves before retrying the install.

```bash
sudo apt install python3-pip
```

## Where MemStack is the wrong tool

The install path is the constraint, not the skill catalog. On Linux and macOS the documented engine install is /usr/bin/python3 -m pip install memstack-skill-loader --break-system-packages, and the README notes the flag is required on newer externally-managed Python. If you cannot install into the system interpreter, or your policy forbids --break-system-packages, you are outside the documented path. Minimal Debian and Ubuntu images ship without pip for that interpreter and need sudo apt install python3-pip first.

The plugin clone can also fail on a fresh server that has never talked to GitHub over SSH, with "Host key verification failed". The README offers two fixes: rewriting git@github.com: to HTTPS globally, or adding GitHub's host key with ssh-keyscan. The first rewrites a global git config, which is a broad change to make for one plugin install.

Finally, Pro skills are fetched from the vendor's server at activation. In an air-gapped or egress-restricted environment, the free 87 skills will load and the Pro 44 will not. The README does not document an offline activation path, and it does not document rollback for a failed Pro download.

## How this differs from plain skills or a hosted memory service

The related searches turn up Headroom, Headroom-ai and AutoMem alongside MemStack, which reflects a real category question: skills versus memory. A plain Claude Code skill directory gives you the same on-demand activation with no Python package, no MCP server and no license gate, but no catalog, no tiering rule and no loader that resolves which skill applies. A hosted memory service takes the opposite approach, keeping state on someone else's infrastructure. MemStack keeps the skills local and the memory in SQLite, with db/schema.sql and db/memstack-db.py in the repository, while putting only the Pro skill download behind a server call. If your objection is the network dependency, a plain skill directory removes it and also removes everything MemStack adds on top.

## Licence, versions and what an upgrade costs you

The repository is MIT licensed and package.json carries the same MIT identifier, so the code you receive is permissively licensed. That does not automatically cover the Pro skill files downloaded from the vendor's server; the README describes them as license-gated but does not state their terms, and the LICENSE file in the repository is the only licence text available here. Treat the Pro content as governed by whatever the activation flow presents, and read it rather than assuming MIT covers it. Nothing here is legal advice.

Version drift is visible in the repository files. The README badge reads 3.9.12, package.json reads 3.2.3, and the most recent release is v4.1.0 from 2026-05-23, which added a plugin manager, git workflow, branch selector and agent execution mode. The last push to the repository was on 2026-09-07. Three different version numbers across three files means you should check the plugin version Claude Code reports after installation rather than trusting the badge. Upgrading the engine is a pip install of memstack-skill-loader; upgrading the skills is a marketplace operation, so the two can move independently and you may end up with a loader newer than the skill files it reads.

## Conclusion

Adopt MemStack if you already work inside Claude Code and want task skills that load on demand rather than a folder of prompts you paste by hand, and if you are comfortable that 44 of the 131 skills stay behind a license key fetched from the vendor's server. Do not adopt it if you need a framework that works outside Claude Code, if you cannot install packages onto a specific system Python with --break-system-packages, or if your environment forbids a plugin pulling content from a remote host at activation time. Before you commit, run the import check /usr/bin/python3 -c "import memstack_skill_loader; print('ok')" and confirm the interpreter that prints ok is the exact path in your claude mcp add command, because that single mismatch is the failure the README documents most heavily.

## FAQ

### How many skills does MemStack include, and how many are free?

The README states there are 131 skills in total, with 87 available on the free tier and 44 Pro-exclusive skills unlocked by a license key. Newly added skills default to Pro-exclusive and drop to the free tier after 90 days unless marked permanent-Pro.

### Does MemStack work with editors other than Claude Code?

The README describes MemStack only as a framework for Claude Code, installed through the Claude Code plugin marketplace with an MCP server registered via claude mcp add. No other host is documented.

### What does the MemStack MCP loader do?

The engine is the MCP skill loader, installed from PyPI as memstack-skill-loader and registered as an MCP server named memstack-skills. The README states the loader reads skill files from the installed marketplace plugin, which is why both halves are needed.

### Why does activate_license not appear after installing MemStack?

The README attributes this to the loader being installed onto a different Python interpreter than the one Claude Code launches, which also produces an MCP "failed to reconnect (-32000)" error. The recommended check is running /usr/bin/python3 -c "import memstack_skill_loader; print('ok')" and making sure the path that prints ok is the exact path registered in the claude mcp add command.

### Where do MemStack Pro skills get stored after activation?

The README states that Pro skills are downloaded from the vendor's server to ~/.memstack/pro-skills when a valid key is activated, and that there is no separate marketplace step for Pro content. The key can alternatively be supplied through the MEMSTACK_PRO_LICENSE_KEY environment variable.

## Sources

- [cwinvestments/memstack on GitHub](https://github.com/cwinvestments/memstack)
- [License: MIT](https://github.com/cwinvestments/memstack/blob/master/LICENSE)
- [Project website](https://memstack.pro)
- [README](https://github.com/cwinvestments/memstack/blob/master/README.md)
- [Releases](https://github.com/cwinvestments/memstack/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/cwinvestments-memstack
