97 lines
2.0 KiB
Markdown
97 lines
2.0 KiB
Markdown
|
|
# Gemini CLI
|
||
|
|
|
||
|
|
MemPalace works natively with [Gemini CLI](https://github.com/google/gemini-cli), which handles the MCP server and save hooks automatically.
|
||
|
|
|
||
|
|
## Prerequisites
|
||
|
|
|
||
|
|
- Python 3.9+
|
||
|
|
- Gemini CLI installed and configured
|
||
|
|
|
||
|
|
## Installation
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Clone the repository
|
||
|
|
git clone https://github.com/milla-jovovich/mempalace.git
|
||
|
|
cd mempalace
|
||
|
|
|
||
|
|
# Create a virtual environment
|
||
|
|
python3 -m venv .venv
|
||
|
|
|
||
|
|
# Install dependencies
|
||
|
|
.venv/bin/pip install -e .
|
||
|
|
```
|
||
|
|
|
||
|
|
## Initialize the Palace
|
||
|
|
|
||
|
|
```bash
|
||
|
|
.venv/bin/python3 -m mempalace init .
|
||
|
|
```
|
||
|
|
|
||
|
|
### Identity and Project Configuration (Optional)
|
||
|
|
|
||
|
|
You can optionally create or edit:
|
||
|
|
|
||
|
|
- **`~/.mempalace/identity.txt`** — plain text describing your role and focus
|
||
|
|
- **`./mempalace.yaml`** — per-project MemPalace configuration created by `mempalace init`
|
||
|
|
- **`./entities.json`** — per-project entity mappings used by AAAK compression
|
||
|
|
|
||
|
|
## Connect to Gemini CLI
|
||
|
|
|
||
|
|
Register MemPalace as an MCP server:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
gemini mcp add mempalace /absolute/path/to/mempalace/.venv/bin/python3 \
|
||
|
|
-m mempalace.mcp_server --scope user
|
||
|
|
```
|
||
|
|
|
||
|
|
::: warning
|
||
|
|
Use the **absolute path** to the Python binary to ensure it works from any directory.
|
||
|
|
:::
|
||
|
|
|
||
|
|
## Enable Auto-Saving
|
||
|
|
|
||
|
|
Add a `PreCompress` hook to `~/.gemini/settings.json`:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"hooks": {
|
||
|
|
"PreCompress": [
|
||
|
|
{
|
||
|
|
"matcher": "*",
|
||
|
|
"hooks": [
|
||
|
|
{
|
||
|
|
"type": "command",
|
||
|
|
"command": "/absolute/path/to/mempalace/hooks/mempal_precompact_hook.sh"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
Make sure the hook scripts are executable:
|
||
|
|
```bash
|
||
|
|
chmod +x hooks/*.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
## Usage
|
||
|
|
|
||
|
|
Once connected, Gemini CLI will automatically:
|
||
|
|
- Start the MemPalace server on launch
|
||
|
|
- Use `mempalace_search` to find relevant past discussions
|
||
|
|
- Use the `PreCompress` hook to save memories before context compression
|
||
|
|
|
||
|
|
### Manual Mining
|
||
|
|
|
||
|
|
Mine existing code or docs:
|
||
|
|
```bash
|
||
|
|
.venv/bin/python3 -m mempalace mine /path/to/your/project
|
||
|
|
```
|
||
|
|
|
||
|
|
### Verification
|
||
|
|
|
||
|
|
In a Gemini CLI session:
|
||
|
|
- `/mcp list` — verify `mempalace` is `CONNECTED`
|
||
|
|
- `/hooks panel` — verify the `PreCompress` hook is active
|