Skip to content
/

Nemp Memory

nemp-memory · SukinShetty/Nemp-memory · ★ 101 · last commit 2026-03-02

Primitive shape 26 total
Commands 24 Skills 1 Hooks 1
00

Summary

Nemp Memory — Summary

Nemp Memory is a 100%-local, zero-dependency Claude Code plugin that persists AI agent context as plain JSON files, explicitly positioning itself against memory solutions requiring MCP servers, SQLite databases, vector stores, or cloud accounts. It ships as a claude-plugin (v0.3.0) with 24 slash commands and a PostToolUse hook that nudges Claude to save memories after edits. The /nemp:init command auto-detects project stack from package.json in a single bash scan, writing structured memories to .nemp/memories.json. An audit log at .nemp/access.log records every read/write/delete with timestamps and agent IDs (/nemp:log). As of v0.2.0, it supports multi-agent memory attribution — every memory records which agent wrote it — and token compression that shrinks stored values by ~70% while preserving technical terms.

Compared to seeds: closest to agent-os (markdown scaffold, zero external deps) and ccmemory (session persistence goal), but Nemp occupies a unique position — it has 24 slash commands and a hook layer (more automated than agent-os) but stores everything as human-readable JSON rather than Neo4j or SQLite (simpler than ccmemory). The "100% local, no cloud" positioning is the sharpest differentiator in this batch.

01

Overview

Nemp Memory — Origin & Philosophy

Origin

Created by Sukin Shetty. Published as a Claude Code plugin at v0.3.0 with an MIT license. Written primarily in PowerShell (GitHub language classification). Claims cross-platform compatibility with Claude Code, OpenClaw, and "any AgentSkills-compatible platform."

Philosophy

The README explicitly frames Nemp as a counter-positioning to "complicated" memory plugins:

"Other memory plugins exist, but they're complicated:

  • Require MCP servers, SQLite databases, or Ollama
  • Need cloud accounts and API keys
  • Send your code context to their servers
  • Need 10+ steps to set up"

"Nemp is stupidly simple: Zero dependencies. No cloud. No API keys. Plain JSON files. Just works."

Core Design Principles

  1. 100% Local — all data stays on the machine, never leaves
  2. Zero dependencies — no MCP server, no database, no embeddings engine
  3. Plain JSON — human-readable, human-editable storage
  4. Privacy-first — no telemetry, no cloud sync
  5. Agent identity tracking — multi-agent environments where each agent's contributions are attributed

Version History (selected)

  • v0.2.0: Added agent ID tracking, access logs, /nemp:log command, token compression (~70% value reduction), optimized /nemp:init, auto-generated MEMORY.md index
  • v0.3.0: Current version — added OpenClaw support, multi-platform description

Comparison Table (from README)

Feature Other Plugins Nemp
Setup 10+ steps 2 commands
Dependencies SQLite, Ollama, web servers None
Cloud Required Often yes No
API Key Required Often yes No
Data Storage Binary databases, cloud Plain JSON
Auto-detect Stack No Yes
Proactive Suggestions No Yes
Auto-sync to CLAUDE.md No Yes
Two-way CLAUDE.md sync No Yes
Conflict detection No Yes
Cost Free to $19/month Free Forever
02

Architecture

Nemp Memory — Architecture

Distribution

  • Type: Claude Code plugin (.claude-plugin/ structure)
  • Version: 0.3.0
  • License: MIT

Install Methods

/plugin marketplace add https://github.com/SukinShetty/Nemp-memory
/plugin install nemp

Required Runtime

None — zero external dependencies. All operations use Claude Code's built-in file I/O tools.

Plugin Structure

Nemp-memory/
├── .claude-plugin/
│   ├── plugin.json           # Plugin manifest
│   ├── hooks/
│   │   ├── hooks.json        # PostToolUse hook definition
│   │   └── post-tool.md      # Hook instruction file
│   └── nemp-memory/          # (unknown contents)
├── commands/                 # 24 slash command .md files
│   ├── init.md
│   ├── save.md
│   ├── recall.md
│   ├── forget.md
│   ├── context.md
│   ├── suggest.md
│   ├── sync.md
│   ├── log.md
│   └── ... (16 more)
├── skills/
│   └── nemp-memory/          # Skill definitions
├── CLAUDE.md                 # Usage instructions for Claude
├── SKILL.md                  # Skill documentation
└── sync-plugin.ps1           # PowerShell sync utility

Data Storage

All data is plain JSON on local disk:

File Contents
.nemp/memories.json Project-specific memories (key-value)
~/.nemp/memories.json Global cross-project memories
.nemp/access.log Audit trail: every read/write/delete with timestamps + agent names
.nemp/MEMORY.md Auto-generated index with agent attribution

Target AI Tools

  • Claude Code (primary)
  • OpenClaw
  • Any AgentSkills-compatible platform
03

Components

Nemp Memory — Components

Slash Commands (24)

Command Purpose
/nemp:init Auto-detect project stack (framework, language, DB, auth, styling) and save as memories
/nemp:save <key> <value> Save a key-value memory entry with token compression
/nemp:recall <key> Retrieve a specific memory by key
/nemp:forget <key> Delete a memory entry
/nemp:context <query> Semantic keyword expansion search across memories
/nemp:suggest Proactive memory suggestions based on recent activity patterns
/nemp:sync Two-way sync between .nemp/memories.json and CLAUDE.md
/nemp:log View audit trail, filter by agent, tail recent entries, clear log
/nemp:list List all project memories
/nemp:list-global List all global memories
/nemp:recall-global <key> Retrieve a global memory
/nemp:save-global <key> <value> Save to global (cross-project) storage
/nemp:export Export memories to file
/nemp:import Import memories from file
/nemp:activate Activate Nemp in a project
/nemp:activity View recent memory activity
/nemp:auto-capture Configure automatic memory capture
/nemp:auto-export Configure automatic memory export
/nemp:auto-sync Configure automatic CLAUDE.md sync
/nemp:cortex Advanced memory cortex view
/nemp:decay Configure memory decay/expiration
/nemp:foresight Predictive memory suggestions
/nemp:health Memory system health check
/nemp:nemp-pro-export Pro export format

Hooks (1)

Event Matcher File Purpose
PostToolUse Edit|Write|Bash hooks/post-tool.md Nudge Claude to save relevant memories after file changes

Skills

Skill Purpose
nemp-memory Core memory skill for autonomous agent use

Plugin Manifest (plugin.json)

{
  "name": "nemp",
  "version": "0.3.0",
  "commands": "./commands/",
  "skills": "./skills/"
}

Scripts

Script Purpose
sync-plugin.ps1 PowerShell script to sync plugin files between environments
tests/ Test suite (contents unknown)
05

Prompts

Nemp Memory — Prompt Files (Verbatim Excerpts)

Excerpt 1: /nemp:init Command — Project Stack Detection

Source: commands/init.md

Prompting technique: Tool-constrained automation with explicit token budget rules. The command instructs Claude to perform the entire detection in a single bash call and read only package.json, preventing the common anti-pattern of reading many files.

# /nemp:init

Intelligently scan your project and auto-save context as memories.

## Instructions

You are an intelligent project analyzer. Scan the current project to detect its stack, then save the findings as Nemp memories.

### Step 1: Lightweight Scan (Token Optimized)

**IMPORTANT: Use minimal token consumption. Only read essential files. Run ONE combined check.**
```bash
echo "=== FILES ===" && ls package.json tsconfig.json next.config.* vite.config.* nuxt.config.* astro.config.* svelte.config.* angular.json requirements.txt pyproject.toml Cargo.toml go.mod Gemfile docker-compose.* Dockerfile .env .env.local .env.example 2>/dev/null && echo "=== LOCKFILE ===" && ls package-lock.json yarn.lock pnpm-lock.yaml bun.lockb 2>/dev/null && echo "=== DIRS ===" && ls -d app pages src/app components/ui 2>/dev/null

DO NOT run multiple separate file-existence checks. One command, all checks.

Step 2: Read package.json ONLY (if exists)

IMPORTANT: This is the ONLY file you need to read for detection. DO NOT read README.md, .env files, or scan directories.

[ -f "package.json" ] && cat package.json

## Excerpt 2: `/nemp:save` Command — Token Compression Rules

Source: `commands/save.md`

**Prompting technique**: Compression contract — the LLM must compress stored values before writing, with explicit examples of before/after. This reduces stored token footprint by ~70% while preserving technical terms.

```markdown
### 2. Compress Value (Token Optimization)

**IMPORTANT: Always compress the value before storing to minimize token usage.**

Apply these compression rules:
- Remove filler words: "basically", "essentially", "the thing is", "it's worth noting"
- Remove redundant phrases: "in order to" → "to", "due to the fact that" → "because"
- Collapse whitespace and trim
- Keep under 200 characters when possible — summarize longer values to their essential facts
- Preserve all technical terms, file paths, package names, and version numbers exactly

**Example compressions:**
BEFORE: "We decided to use NextAuth.js for authentication because it integrates well with Next.js and supports multiple providers including Google and GitHub OAuth"
AFTER:  "NextAuth.js auth with Google + GitHub OAuth providers"
BEFORE: "The database is PostgreSQL and we access it through the Prisma ORM which handles all our migrations and schema management"
AFTER:  "PostgreSQL via Prisma ORM (migrations + schema)"

Excerpt 3: /nemp:save — Agent Identity Detection

Source: commands/save.md

Prompting technique: Runtime identity injection — the command instructs Claude to read its own agent name from an environment variable, enabling multi-agent attribution in memory records.

### 5. Detect Agent Identity

Determine who is saving this memory:
```bash
echo "${CLAUDE_AGENT_NAME:-main}"

09

Uniqueness

Nemp Memory — Uniqueness & Positioning

differs_from_seeds

Nemp is closest to agent-os (markdown scaffold, zero deps) and ccmemory (session persistence for Claude Code) but occupies a distinct niche. Unlike agent-os which ships 5 commands that write markdown files for agent passive reading, Nemp ships 24 active commands for explicit memory CRUD. Unlike ccmemory which requires Neo4j and Docker, Nemp uses plain JSON with no runtime dependencies. Unlike RLM which adds a PreCompact gate and hybrid search, Nemp relies on manual/hook-nudged capture without blocking compaction. The multi-agent attribution system (tracking which agent wrote each memory via ${CLAUDE_AGENT_NAME}) and token compression built into the save command are unique in this batch — not present in any seed framework.

Positioning

Nemp's primary market is "frustrated memory plugin users" who tried more complex solutions and found them too heavy. The README's explicit comparison table against unnamed "other plugins" and its repeated "zero dependencies" message signals this positioning clearly. At 101 GitHub stars with a single contributor, it has modest but real adoption.

Observable Failure Modes

  • No pre-compact gate: Unlike RLM, Nemp has no hook that blocks compaction. If a session ends without manual /nemp:save calls, new context is lost.
  • No semantic search: The /nemp:context expansion is hardcoded synonym lists, not embeddings. Searches outside the keyword expansion tables miss results.
  • Single-file JSON: Large projects may accumulate hundreds of memories in one JSON file with no indexing; retrieval performance degrades as the file grows.
  • No versioning: Memory updates overwrite previous values; no history for a given key.
  • PowerShell-primary: The repo's main language is PowerShell, suggesting the developer's environment is Windows. Cross-platform behavior on Mac/Linux is asserted but less tested.

Cross-References

  • Competes with: ccmemory, RLM (same problem space, different complexity tier)
  • Inspired by: The "10+ step" complex memory tools it explicitly rejects (unnamed in README)
04

Workflow

Nemp Memory — Workflow

Phase 1: Install

/plugin marketplace add https://github.com/SukinShetty/Nemp-memory
/plugin install nemp

Artifact: Plugin registered in Claude Code

Phase 2: Project Initialization

/nemp:init

One bash scan reads package.json only, detects framework/language/database/auth/styling/package manager, writes all memories in a single operation.

Artifact: .nemp/memories.json populated with stack detection results; MEMORY.md index generated

Phase 3: Active Development — Memory Capture

During coding sessions:

  • PostToolUse hook fires after Edit/Write/Bash operations — nudges Claude to save relevant memories
  • /nemp:save <key> <value> — manual memory capture with token compression
  • /nemp:suggest — proactive suggestions based on activity patterns
  • /nemp:recall <key> or /nemp:context <query> — retrieve context

Artifact: Growing .nemp/memories.json with timestamped entries; .nemp/access.log records all operations

Phase 4: Cross-Session Recall

At session start or when context is lost:

  • Claude reads .nemp/memories.json via CLAUDE.md instructions or explicit /nemp:recall
  • /nemp:context auth → expands to related terms, finds matching memories
  • /nemp:sync → two-way sync ensures CLAUDE.md reflects current memory state with conflict detection

Artifact: Agent has project context without re-explanation

Phase 5: Maintenance

  • /nemp:log — review audit trail
  • /nemp:decay — configure memory expiration
  • /nemp:health — system health check
  • /nemp:export / /nemp:import — backup and restore

Approval Gates

Gate Type
None explicit

PostToolUse hook is a nudge (suggestion), not a blocking gate.

Artifacts Summary

Artifact Path
Project memories .nemp/memories.json
Global memories ~/.nemp/memories.json
Audit log .nemp/access.log
Memory index .nemp/MEMORY.md
06

Memory Context

Nemp Memory — Memory & Context

Storage Model

100% file-based, 100% local, zero external dependencies.

Store Path Scope
Project memories .nemp/memories.json Per-project (git repo)
Global memories ~/.nemp/memories.json Cross-project
Audit log .nemp/access.log Per-project, append-only
Memory index .nemp/MEMORY.md Auto-generated markdown

Memory Format

Plain JSON key-value pairs with metadata:

  • Each entry has a key, compressed value, timestamp, agent ID
  • Agent ID from ${CLAUDE_AGENT_NAME:-main} environment variable
  • Values are compressed on write (~70% size reduction)

Search / Retrieval

/nemp:context <query> performs keyword expansion search:

  • "auth" expands to: authentication, login, session, jwt, oauth, nextauth, clerk, token, passport, credentials...
  • No vector embeddings — pure string matching with synonym expansion built into the command prompt

Cross-Session Handoff

Mechanism: CLAUDE.md sync via /nemp:sync. Two-way sync with conflict detection ensures the CLAUDE.md in the project root reflects the current memory state. New sessions load CLAUDE.md automatically.

No compaction hook — unlike RLM, Nemp does not intercept PreCompact. Memory continuity relies on having populated memories before the session starts.

Multi-Agent Attribution

Every memory write records ${CLAUDE_AGENT_NAME:-main}. The access log tracks:

  • Which agent read a memory
  • Which agent wrote/updated a memory
  • Which agent deleted a memory
  • Timestamps for all operations

/nemp:log can filter by agent name to audit multi-agent session behavior.

Context Compaction Handling

No dedicated mechanism. Nemp relies on pre-populated JSON memory files surviving compaction. The PostToolUse hook nudges Claude to save during active work, but there is no pre-compact gate.

07

Orchestration

Nemp Memory — Orchestration

Multi-Agent

Partially — Nemp tracks multi-agent attribution (agent IDs on memory writes/reads) but does not orchestrate or spawn subagents itself. It is infrastructure that multi-agent systems can use.

Orchestration Pattern

none — Nemp is a memory substrate, not an orchestrator.

Subagent Definition Format

none

Isolation Mechanism

none — all operations are in-place file reads/writes.

Multi-Model

No — not applicable; Nemp is a plugin, not a model router.

Execution Mode

event-driven — the PostToolUse hook fires on Edit/Write/Bash tool completions. All other operations are on-demand slash commands.

Consensus Mechanism

None.

Crash Recovery

No — JSON files are written atomically by Claude Code's built-in Write tool.

Cross-Tool Portability

Medium — works with Claude Code and OpenClaw. The platform-rules/ pattern (from Nex) is not replicated here; Claude Code is the primary target.

08

Ui Cli Surface

Nemp Memory — UI & CLI Surface

Dedicated CLI Binary

None. Install is two /plugin commands. No standalone binary.

Local Web Dashboard

None. All interaction through Claude Code chat.

Slash Commands

24 commands accessible via /nemp:<command>. See 03-components.md for full list.

IDE Integration

  • Claude Code (primary, full support)
  • OpenClaw (stated in v0.3.0)
  • Any AgentSkills-compatible platform (stated)

Observability

  • /nemp:log — view audit trail at .nemp/access.log, filter by agent name, tail recent entries
  • /nemp:health — system health check
  • /nemp:activity — recent memory activity
  • .nemp/MEMORY.md — auto-generated index with all memories and agent attribution, human-readable at any time

Audit Trail

.nemp/access.log is an append-only file logging:

  • Operation type (read/write/delete)
  • Memory key
  • Agent name (${CLAUDE_AGENT_NAME:-main})
  • Timestamp

This gives Nemp the most complete audit trail in this batch for a "no-infra" memory plugin.

Related frameworks

same archetype · same primary tool · same memory type

Context Mode ★ 16k

Keeps raw tool output data out of the context window via sandbox execution and SQLite+FTS5 session indexing, reducing context…

lean-ctx ★ 2.2k

A full-session context runtime that compresses file reads (10 modes), shell output (60+ patterns), and session memory (CCP) to…

CogniLayer v4 ★ 28

Provides AI coding agents with typed semantic memory, tree-sitter code intelligence, and a multi-agent coordination protocol to…

cursor-coding-agent-os (Mugiwara555343) ★ 3

Lean/Verbose dual-mode Agent OS fork for solo developers on token budgets.

rtk (Real Token Killer) ★ 55k

Intercepts Claude Code's Bash tool calls at the PreToolUse hook and compresses verbose CLI output (git status, test runners,…

Code-Mode Library ★ 1.5k

Replaces traditional tool-calling with TypeScript code execution in a sandbox, collapsing N sequential tool calls into 1 code…