Mneme runs on your own machine — the client starts it, so there is no endpoint to ping. 225 installs a week from npm. Last commit 25 Jun 2026.
Memory layer for AI coding assistants. Indexes git history + code, exposes via MCP.
We read the source, 4 d ago · rules 995398eba69f
A value the model can set ends up inside a file or shell call. That is not a flaw by itself — for a terminal server it is the job — but it is where things go wrong when it is not.
if (!diff.trim()) { const base = String(args["base"] ?? "HEAD"); try { diff = cp.spawnSync("git", ["diff", "--unified=0", base.includes("...") || base === "HEAD" ? base : `${base}...HEAD`], { cwd, encoding: "utf8", maxBuffer: 32 * 1024 * 1024 }).stdout || ""; } catch { /* */ } }
Things with no honest explanation: a promise that contradicts the code, code that runs at install time while hiding what it does, data leaving the machine.
.description("🏰 SIEGE — the Adversarial Self-Bounty. Fire Mneme's attack corpus (rm -rf, pipe-to-shell, base64/hex-decode, find -delete, $IFS, var-indirection, fork-bomb, DROP TABLE, /dev/tcp exfil, …) at a command-gate → a SIGNED, public, EVER-RISING bypass-resistan…
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
postinstall: node bin/postinstall-mneme-lite.cjs
const sub = (p) => path.join(mnemeRoot, "node_modules", p);
const child = spawn(process.execPath, [here, "daemon", "start"], {
const r = await httpsJson("api.telegram.org", `/bot${cfg.token}/sendMessage`, {}, { chat_id: cfg.chatId, text: title(spec), reply_markup: kb });
import { existsSync, mkdirSync, readFileSync, writeFileSync, readdirSync, rmSync, chmodSync, renameSync, appendFileSync } from "node:fs";
Found in continuous integration, deployment or infrastructure files, or in a neighbouring package of the same monorepo. None of this is installed when you add the server: it describes how the project is built and released. We list it because a leaked key in a build pipeline is still a real problem, but it is not something this server does on your machine.
const wrap = stage.match(/^(?:sudo|doas|env(?:\s+[A-Za-z_][A-Za-z0-9_]*=\S*)*|nohup|setsid|stdbuf(?:\s+-\S+)*|nice(?:\s+-n\s+\S+)?|ionice(?:\s+\S+)*|timeout\s+\S+|watch(?:\s+-\S+)*|time)\s+(.*)$/i);
curl -fsSL https://deb.nodesource.com/setup_22.x | bash >/dev/null
const good = tally.coherent + tally.legitimateUpdate + tally.selfReported;
const SENSITIVE = /(\.env\b|\.aws|\.ssh|id_rsa|id_ed25519|\bcredentials?\b|\bsecret|\.pem\b|\.key\b|\.p12\b|\.netrc|\btoken\b|\bpassword\b|\bapi[_-]?key\b|\/etc\/shadow|\/etc\/passwd|private[_-]?key)/i;
const PRIV_ESC = /(\bsudo\b|\bdoas\b|chmod\s+\+?[0-7]*[sx]|chmod\s+777|setuid|\brunas\b|--privileged|\bsetcap\b)/i;
document.getElementById("out").innerHTML = window.MnemeXRay.xrayCardHTML(signed, { share: true });
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
That is not a flaw by itself — but it is where things go wrong when it is not the job. We re-read this code on every release. Watch it and you hear from us the day another one appears.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add mneme-ai -- npx -y mneme-ai
{
"mcpServers": {
"mneme-ai": {
"command": "npx",
"args": [
"-y",
"mneme-ai"
]
}
}
}
[mcp_servers.mneme-ai]
command = "npx"
args = ["-y", "mneme-ai"]
{
"mcpServers": {
"mneme-ai": {
"command": "npx",
"args": [
"-y",
"mneme-ai"
]
}
}
}
{
"servers": {
"mneme-ai": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mneme-ai"
]
}
}
}
Local-first memory for AI coding agents: shell history with exit codes, git diffs, docs, MCP.
Semantic code graph for AI-assisted code understanding via tree-sitter and MCP.
Local-first codebase intelligence for coding agents: indexes code and Git history into SQLite.
Team-aware memory: intent, decisions, real-time conflicts for AI coding assistants.
Local code graph and solution memory for coding agents via CLI and MCP.
MCP server for Instagit — AI-powered Git repository analysis for coding agents
Persistent local memory for MCP-compatible AI coding agents, stored per repository in SQLite.
Persistent code indexing for AI assistants. 50x less context than grep. 11 languages.
Answers built from our own checks of this server.