Slash Command139 repo starsupdated 24d ago
export
The `/nemp:export` command exports all active project memories stored in `.nemp/memories.json` to a `CLAUDE.md` file. Use it without flags to append or update only the Nemp section, or with the `--replace` flag to overwrite the entire file with memory content only. This preserves project context across Claude conversations.
Install in Claude Code
Copymkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/SukinShetty/Nemp-memory/HEAD/commands/export.md -o ~/.claude/commands/export.mdThen start a new Claude Code session; the slash command loads automatically.
Definition
export.md
# /nemp:export
Export all project memories to `CLAUDE.md`. Use `--replace` to overwrite the entire file, or run without flags to append/update the Nemp section only.
## Usage
```
/nemp:export # Append or update Nemp section in CLAUDE.md
/nemp:export --replace # Replace entire CLAUDE.md with Nemp content only
```
## Arguments
- (no args): Append or update the Nemp section in `CLAUDE.md`
- `--replace`: Replace the entire `CLAUDE.md` instead of appending/updating
## Instructions
When the user invokes `/nemp:export`, follow these steps:
### Step 1: Parse Arguments
Identify which flag (if any) the user provided:
```
(no args) → Export to CLAUDE.md (append/update)
--replace → Export to CLAUDE.md (full replace)
```
If the argument is unrecognised, display the Usage block above and stop.
---
## Memory Loading (shared by all export paths)
Before generating any export file, perform these steps to load and prepare memories.
### Step 2: Read memories.json
Read `.nemp/memories.json`:
```bash
[ -f ".nemp/memories.json" ] && cat .nemp/memories.json
```
If the file does not exist, stop and show:
```
❌ No memories to export.
Save some memories first:
/nemp:save stack Next.js 15 with TypeScript
/nemp:init (auto-detect project stack)
```
### Step 3: Parse Format (with Backward Compatibility)
The file may use either format:
**New array format:**
```json
{
"memories": [
{
"key": "version",
"value": "0.3.0",
"created": "2026-02-26T16:00:00.000Z",
"updated": "2026-02-26T16:00:00.000Z",
"tags": ["auto-detected"],
"type": "fact",
"vitality": { "state": "active" }
}
]
}
```
**Legacy flat-object format:**
```json
{
"stack": { "value": "Next.js", "created": "...", "updated": "..." },
"auth": { "value": "NextAuth", "created": "...", "updated": "..." }
}
```
If the parsed JSON does not have a `memories` array, treat each top-level key as a memory entry with:
```
key = the JSON key name
value = entry.value
created = entry.created
updated = entry.updated
type = entry.type (if present, else undefined)
vitality = entry.vitality (if present, else undefined)
```
### Step 4: Filter Out Extinct Memories
Skip any memory where `vitality.state === "extinct"`. Absent `vitality` means the memory is active — do not skip it.
If `memories.json` cannot be parsed as valid JSON, stop and report:
```
❌ memories.json is not valid JSON. Check the file for syntax errors.
```
---
## /nemp:export (no args) and /nemp:export --replace
### Step 5a: Parse and Organize Memories for CLAUDE.md
Group memories by semantic key names:
- **Tech Stack**: keys containing `stack`, `framework`, `database`, `auth`, `styling`, `orm`, `testing`, `deployment`
- **Project Info**: keys containing `project`, `description`, `name`, `structure`, `version`, `type`, `subproject`
- **Global Preferences**: keys containing `prefer`, `style`, `convention`, `no-`, `favorite`, `team`, `workspace`
- **Other**: everything else
### Step 6a: Generate CLAUDE.md Section Content
Create a clean, professional markdown section.
Use the **table format** for short values (< 80 chars):
```markdown
## Project Context (via Nemp Memory)
> Auto-generated by Nemp Memory. Last updated: [YYYY-MM-DD HH:MM]
### Tech Stack
| Key | Value |
|-----|-------|
| **stack** | Next.js 15, TypeScript, Prisma, PostgreSQL |
| **auth** | NextAuth with JWT |
---
```
Use the **prose format** for longer values:
```markdown
**project-description:** A SaaS starter kit for building subscription-based applications.
**structure:**
- Commands defined in /commands/*.md
- Plugin config in .claude-plugin/
```
Use the table format for short values (< 80 chars) and the prose format for longer values. Emit a section heading (`### Tech Stack`, etc.) only for groups that have at least one memory.
### Step 7a: Check for Existing CLAUDE.md
```bash
[ -f "CLAUDE.md" ] && cat CLAUDE.md
```
### Step 8a: Handle CLAUDE.md Updates
**If `--replace` flag:** Write the Nemp section as the entire CLAUDE.md, replacing all existing content.
**If no flag (append/update mode):**
- **CLAUDE.md does not exist:** Create a new file with just the Nemp section.
- **CLAUDE.md exists with a Nemp section:** Find `## Project Context (via Nemp Memory)`, find where the section ends (next `## ` heading, a line containing only `---`, or end of file), and replace only that section. Preserve all other content.
- **CLAUDE.md exists without a Nemp section:** Append the Nemp section at the end with a blank line before it for clean separation.
### Step 9a: Write CLAUDE.md
Use the Write tool to save the updated content.
### Step 10a: Confirm to User
```
✅ Exported to CLAUDE.md
Memories exported: 5
File: ./CLAUDE.md
Exported keys:
• stack
• auth
• styling
• database
• project-description
💡 CLAUDE.md is automatically read by Claude Code at session start.
```
---
## Example
User: `/nemp:export`
Given `.nemp/memories.json` with 2 memories:
```json
{
"stack": { "value": "Next.js 15 with TypeScript, Prisma, PostgreSQL", "created": "2024-01-20T10:00:00Z", "updated": "2024-01-20T10:00:00Z" },
"auth": { "value": "NextAuth with JWT", "created": "2024-01-20T10:00:00Z", "updated": "2024-01-20T10:00:00Z" }
}
```
Creates/updates CLAUDE.md:
```markdown
## Project Context (via Nemp Memory)
> Auto-generated by Nemp Memory. Last updated: 2024-01-20 10:00
**stack:** Next.js 15 with TypeScript, Prisma, PostgreSQL
**auth:** NextAuth with JWT
---
```
Response:
```
✅ Exported to CLAUDE.md
Memories exported: 2
File: ./CLAUDE.md
Exported keys:
• stack
• auth
💡 CLAUDE.md is automatically read by Claude Code at session start.
```
---
## Section Detection Logic (CLAUDE.md update)
To find and replace an existing Nemp section:
1. Search for the line: `## Project Context (via Nemp Memory)`
2. Find where the section ends:
- Next heading starting with `## ` (but not the Nemp headingMore from this repository
activateSlash Command
Activate Nemp Pro with your license key
activitySlash Command
View captured activity log
auto-captureSlash Command
Enable or disable automatic activity capture
auto-exportSlash Command
Enable or disable automatic cross-provider memory export
auto-syncSlash Command
Enable or disable automatic syncing to CLAUDE.md
contextSlash Command
Search memories by keyword and show relevant context
cortexSlash Command
Nemp Cortex — memory intelligence layer (Pro)
decaySlash Command
Cortex decay engine — auto-archive stale memories (Pro)