Merge pull request #106 from JayadityaGit/docs/gemini-cli-integration
docs: add Gemini CLI setup guide
This commit is contained in:
@@ -112,7 +112,7 @@ Three mining modes: **projects** (code and docs), **convos** (conversation expor
|
|||||||
|
|
||||||
After the one-time setup (install → init → mine), you don't run MemPalace commands manually. Your AI uses it for you. There are two ways, depending on which AI you use.
|
After the one-time setup (install → init → mine), you don't run MemPalace commands manually. Your AI uses it for you. There are two ways, depending on which AI you use.
|
||||||
|
|
||||||
### With Claude, ChatGPT, Cursor (MCP-compatible tools)
|
### With Claude, ChatGPT, Cursor, Gemini (MCP-compatible tools)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Connect MemPalace once
|
# Connect MemPalace once
|
||||||
@@ -125,6 +125,8 @@ Now your AI has 19 tools available through MCP. Ask it anything:
|
|||||||
|
|
||||||
Claude calls `mempalace_search` automatically, gets verbatim results, and answers you. You never type `mempalace search` again. The AI handles it.
|
Claude calls `mempalace_search` automatically, gets verbatim results, and answers you. You never type `mempalace search` again. The AI handles it.
|
||||||
|
|
||||||
|
MemPalace also works natively with **Gemini CLI** (which handles the server and save hooks automatically) — see the [Gemini CLI Integration Guide](examples/gemini_cli_setup.md).
|
||||||
|
|
||||||
### With local models (Llama, Mistral, or any offline LLM)
|
### With local models (Llama, Mistral, or any offline LLM)
|
||||||
|
|
||||||
Local models generally don't speak MCP yet. Two approaches:
|
Local models generally don't speak MCP yet. Two approaches:
|
||||||
|
|||||||
@@ -0,0 +1,95 @@
|
|||||||
|
# Gemini CLI Integration Guide
|
||||||
|
|
||||||
|
This guide explains how to set up MemPalace as a permanent memory for the [Gemini CLI](https://github.com/google/gemini-cli).
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Python 3.9+
|
||||||
|
- Gemini CLI installed and configured
|
||||||
|
|
||||||
|
## 1. Installation
|
||||||
|
|
||||||
|
On many Linux systems, installing Python packages globally is restricted. We recommend using a local virtual environment within the MemPalace directory.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Clone the repository (if you haven't already)
|
||||||
|
git clone https://github.com/milla-jovovich/mempalace.git
|
||||||
|
cd mempalace
|
||||||
|
|
||||||
|
# Create a virtual environment
|
||||||
|
python3 -m venv .venv
|
||||||
|
|
||||||
|
# Install dependencies and MemPalace in editable mode
|
||||||
|
.venv/bin/pip install -e .
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2. Initialization
|
||||||
|
|
||||||
|
Set up your "Palace" (the database) and configure your identity.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Initialize the palace in the current directory
|
||||||
|
.venv/bin/python3 -m mempalace init .
|
||||||
|
```
|
||||||
|
|
||||||
|
### Identity and Wings (Optional but Recommended)
|
||||||
|
You can manually define who you are and what projects you work on by creating/editing these files in `~/.mempalace/`:
|
||||||
|
|
||||||
|
- **`~/.mempalace/identity.txt`**: A plain text file describing your role and focus.
|
||||||
|
- **`~/.mempalace/wing_config.json`**: A JSON file mapping projects and name variants to "Wings".
|
||||||
|
|
||||||
|
## 3. Connect to Gemini CLI (MCP)
|
||||||
|
|
||||||
|
Register MemPalace as an MCP server so Gemini CLI can use its tools.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gemini mcp add mempalace /absolute/path/to/mempalace/.venv/bin/python3 -m mempalace.mcp_server --scope user
|
||||||
|
```
|
||||||
|
*Note: Use the absolute path to ensure it works from any directory.*
|
||||||
|
|
||||||
|
## 4. Enable Auto-Saving (Hooks)
|
||||||
|
|
||||||
|
To ensure the AI saves memories automatically when conversation history becomes too long, add a `PreCompress` hook to your Gemini CLI settings.
|
||||||
|
|
||||||
|
Edit your `~/.gemini/settings.json` and add the following:
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
## 5. 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 new memories before they are lost.
|
||||||
|
|
||||||
|
### Manual Mining
|
||||||
|
If you want the AI to learn from your existing code or docs immediately, run the "mine" command:
|
||||||
|
```bash
|
||||||
|
.venv/bin/python3 -m mempalace mine /path/to/your/project
|
||||||
|
```
|
||||||
|
|
||||||
|
### Verification
|
||||||
|
In a Gemini CLI session, you can run:
|
||||||
|
- `/mcp list`: Verify `mempalace` is `CONNECTED`.
|
||||||
|
- `/hooks panel`: Verify the `PreCompress` hook is active.
|
||||||
Reference in New Issue
Block a user