Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
3d00a93
feat: add MemPalace Claude Code plugin with hooks and instructions
tmuskal Apr 8, 2026
6b5e869
chore: sync plugin version to 3.0.0
github-actions[bot] Apr 8, 2026
94a4191
fix: update plugin source path in marketplace.json
tmuskal Apr 8, 2026
2f83518
refactor: simplify plugin.json by removing unused hooks and commands
tmuskal Apr 8, 2026
c9d3955
refactor: update skill names to include 'mempalace:' prefix for consi…
tmuskal Apr 8, 2026
94b39cb
refactor: rename workflow and improve version bumping process
tmuskal Apr 8, 2026
a788af8
feat: add command documentation for help, init, mine, search, and status
tmuskal Apr 8, 2026
d4d328a
chore: bump version to 3.0.1
github-actions[bot] Apr 8, 2026
aaa6f59
refactor: remove unused skills section from plugin.json
tmuskal Apr 8, 2026
61924ea
chore: bump version to 3.0.2
github-actions[bot] Apr 8, 2026
50c3db3
feat: add Codex plugin support with hooks, commands, and documentation
tmuskal Apr 8, 2026
b232108
chore: bump version to 3.0.3
github-actions[bot] Apr 8, 2026
8ac0026
fix: update command descriptions to specify 'generic mempalace skill'
tmuskal Apr 8, 2026
4de5229
chore: bump version to 3.0.4
github-actions[bot] Apr 8, 2026
34c8f8c
fix: update README for marketplace installation and improve hooks_cli…
tmuskal Apr 8, 2026
1e251cb
chore: bump version to 3.0.5
github-actions[bot] Apr 8, 2026
1888b56
chore: bump version to 3.0.4 in pyproject.toml
tmuskal Apr 8, 2026
b339925
Merge branch 'main' of https://github.com/tmuskal/mempalace
tmuskal Apr 8, 2026
019d852
chore: bump version to 3.0.6
github-actions[bot] Apr 8, 2026
0975b1d
fix: add syncing of pyproject.toml version during bump process
tmuskal Apr 8, 2026
350ce0b
Merge branch 'main' of https://github.com/tmuskal/mempalace
tmuskal Apr 8, 2026
4f14347
chore: bump version to 3.0.7
github-actions[bot] Apr 8, 2026
e47fa1b
refactor: consolidate hook scripts and fixed issue from review
tmuskal Apr 8, 2026
67e21c5
chore: bump version to 3.0.8
github-actions[bot] Apr 8, 2026
9de302f
feat: update README and CI configuration, add tests for hooks functio…
tmuskal Apr 8, 2026
43cf873
chore: bump version to 3.0.9
github-actions[bot] Apr 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "mempalace",
"interface": {
"displayName": "MemPalace"
},
"plugins": [
{
"name": "mempalace",
"source": {
"source": "local",
"path": "./.codex-plugin"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "NONE"
},
"category": "Coding"
}
]
}
9 changes: 9 additions & 0 deletions .claude-plugin/.mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"mempalace": {
"command": "python3",
"args": [
"-m",
"mempalace.mcp_server"
]
}
}
57 changes: 57 additions & 0 deletions .claude-plugin/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# MemPalace Claude Code Plugin

A Claude Code plugin that gives your AI a persistent memory system. Mine projects and conversations into a searchable palace backed by ChromaDB, with 19 MCP tools, auto-save hooks, and 5 guided skills.

## Prerequisites

- Python 3.9+

## Installation

### Claude Code Marketplace

```bash
claude plugin marketplace add milla-jovovich/mempalace
claude plugin install --scope user mempalace
```

### Local Clone

```bash
claude plugin add /path/to/mempalace
```

## Post-Install Setup

After installing the plugin, run the init command to complete setup (pip install, MCP configuration, etc.):

```
/mempalace:init
```

## Available Slash Commands

| Command | Description |
|---------|-------------|
| `/mempalace:help` | Show available tools, skills, and architecture |
| `/mempalace:init` | Set up MemPalace -- install, configure MCP, onboard |
| `/mempalace:search` | Search your memories across the palace |
| `/mempalace:mine` | Mine projects and conversations into the palace |
| `/mempalace:status` | Show palace overview -- wings, rooms, drawer counts |

## Hooks

MemPalace registers two hooks that run automatically:

- **Stop** -- Saves conversation context every 15 messages.
- **PreCompact** -- Preserves important memories before context compaction.

Set the `MEMPAL_DIR` environment variable to a directory path to automatically run `mempalace mine` on that directory during each save trigger.

## MCP Server

The plugin automatically configures a local MCP server with 19 tools for storing, searching, and managing memories. No manual MCP setup is required -- `/mempalace:init` handles everything.

## Full Documentation

See the main [README](../README.md) for complete documentation, architecture details, and advanced usage.
6 changes: 6 additions & 0 deletions .claude-plugin/commands/help.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: Show comprehensive MemPalace help — available skills, MCP tools, CLI commands, hooks, and architecture.
allowed-tools: Bash, Read
---

Invoke the generic mempalace skill (using the Skill tool) with the `help` command, then follow its instructions.
6 changes: 6 additions & 0 deletions .claude-plugin/commands/init.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: Set up MemPalace — install the package, initialize a palace, configure MCP server, and verify everything works.
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
---

Invoke the generic mempalace skill (using the Skill tool) with the `init` command, then follow its instructions.
7 changes: 7 additions & 0 deletions .claude-plugin/commands/mine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
description: Mine projects and conversations into the MemPalace. Supports project files, conversation exports, and auto-classification.
argument-hint: Path to project or conversation export to mine.
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
---

Invoke the generic mempalace skill (using the Skill tool) with the `mine` command, then follow its instructions.
7 changes: 7 additions & 0 deletions .claude-plugin/commands/search.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
description: Search your memories across the MemPalace using semantic search with wing/room filtering.
argument-hint: Search query, optionally with wing/room filters.
allowed-tools: Bash, Read
---

Invoke the generic mempalace skill (using the Skill tool) with the `search` command, then follow its instructions.
6 changes: 6 additions & 0 deletions .claude-plugin/commands/status.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: Show the current state of your memory palace — wings, rooms, drawer counts, and suggestions.
allowed-tools: Bash, Read
---

Invoke the generic mempalace skill (using the Skill tool) with the `status` command, then follow its instructions.
25 changes: 25 additions & 0 deletions .claude-plugin/hooks/hooks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"description": "MemPalace auto-save and pre-compact hooks",
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/mempal-stop-hook.sh"
}
]
}
],
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/mempal-precompact-hook.sh"
}
]
}
]
}
}
5 changes: 5 additions & 0 deletions .claude-plugin/hooks/mempal-precompact-hook.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash
# MemPalace PreCompact Hook — thin wrapper calling Python CLI
# All logic lives in mempalace.hooks_cli for cross-harness extensibility
INPUT=$(cat)
echo "$INPUT" | python3 -m mempalace hook run --hook precompact --harness claude-code
5 changes: 5 additions & 0 deletions .claude-plugin/hooks/mempal-stop-hook.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash
# MemPalace Stop Hook — thin wrapper calling Python CLI
# All logic lives in mempalace.hooks_cli for cross-harness extensibility
INPUT=$(cat)
echo "$INPUT" | python3 -m mempalace hook run --hook stop --harness claude-code
18 changes: 18 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "mempalace",
"owner": {
"name": "milla-jovovich",
"url": "https://github.com/milla-jovovich"
},
"plugins": [
{
"name": "mempalace",
"source": "./.claude-plugin",
"description": "AI memory system — mine projects and conversations into a searchable palace. 19 MCP tools, auto-save hooks, guided setup.",
"version": "3.0.9",
"author": {
"name": "milla-jovovich"
}
}
]
}
29 changes: 29 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"name": "mempalace",
"version": "3.0.9",
"description": "Give your AI a memory — mine projects and conversations into a searchable palace. 19 MCP tools, auto-save hooks, and guided setup.",
"author": {
"name": "milla-jovovich"
},
"license": "MIT",
"commands": [],
"mcpServers": {
"mempalace": {
"command": "python3",
"args": [
"-m",
"mempalace.mcp_server"
]
}
},
"keywords": [
"memory",
"ai",
"rag",
"mcp",
"chromadb",
"palace",
"search"
],
"repository": "https://github.com/milla-jovovich/mempalace"
}
35 changes: 35 additions & 0 deletions .claude-plugin/skills/mempalace/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: mempalace
description: MemPalace — mine projects and conversations into a searchable memory palace. Use when asked about mempalace, memory palace, mining memories, searching memories, or palace setup.
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
---

# MemPalace

A searchable memory palace for AI — mine projects and conversations, then search them semantically.

## Prerequisites

Ensure `mempalace` is installed:

```bash
mempalace --version
```

If not installed:

```bash
pip install mempalace
```

## Usage

MemPalace provides dynamic instructions via the CLI. To get instructions for any operation:

```bash
mempalace instructions <command>
```

Where `<command>` is one of: `help`, `init`, `mine`, `search`, `status`.

Run the appropriate instructions command, then follow the returned instructions step by step.
75 changes: 75 additions & 0 deletions .codex-plugin/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# MemPalace - Codex CLI Plugin

Give your AI a persistent memory -- mine projects and conversations into a searchable palace backed by ChromaDB, with 19 MCP tools, auto-save hooks, and guided skills.

## Prerequisites

- Python 3.9+
- Codex CLI installed and configured
- `pip install mempalace`

## Installation

### Local Install

1. Copy or symlink the `.codex-plugin` directory into your project root:

```bash
cp -r .codex-plugin /path/to/your/project/.codex-plugin
```

2. Verify the plugin is detected:

```bash
codex --plugins
```

3. Initialize your palace:

```bash
codex /init
```

### Git Install

1. Clone the MemPalace repository:

```bash
git clone https://github.com/milla-jovovich/mempalace.git
cd mempalace
```

2. Install the Python package:

```bash
pip install -e .
```

3. The `.codex-plugin` directory is already in the repo root. Codex CLI will detect it automatically when you run Codex from inside the repository.

4. Initialize your palace:

```bash
codex /init
```

## Available Skills

| Skill | Description |
|-------|-------------|
| `/help` | Show available commands and usage tips |
| `/init` | Initialize a new memory palace |
| `/search` | Semantic search across all mined memories |
| `/mine` | Mine a project or conversation into your palace |
| `/status` | Show palace status, room counts, and health |

## Hooks

The plugin includes auto-save hooks that run on session stop (every 15 messages) and before context compaction, automatically preserving conversation context into your palace.

Set the `MEMPAL_DIR` environment variable to a directory path to automatically run `mempalace mine` on that directory during each save trigger.

## Support

- Repository: https://github.com/milla-jovovich/mempalace
- Issues: https://github.com/milla-jovovich/mempalace/issues
37 changes: 37 additions & 0 deletions .codex-plugin/hooks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"hooks": {
"SessionStart": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "${CODEX_PLUGIN_ROOT}/hooks/mempal-hook.sh session-start"
}
]
}
],
"Stop": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "${CODEX_PLUGIN_ROOT}/hooks/mempal-hook.sh stop"
}
]
}
],
"PreCompact": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "${CODEX_PLUGIN_ROOT}/hooks/mempal-hook.sh precompact"
}
]
}
]
}
}
9 changes: 9 additions & 0 deletions .codex-plugin/hooks/mempal-hook.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
HOOK_NAME="${1:?Usage: mempal-hook.sh <hook-name>}"
INPUT_FILE=$(mktemp) || { echo "Failed to create temp file" >&2; exit 1; }
cat > "$INPUT_FILE"
cat "$INPUT_FILE" | python3 -m mempalace hook run --hook "$HOOK_NAME" --harness codex
EXIT_CODE=$?
rm -f "$INPUT_FILE" 2>/dev/null
exit $EXIT_CODE
Loading