Files
wehub-resource-sync c3749daf48
Tests / test-linux (3.13) (push) Failing after 0s
Tests / test-linux (3.11) (push) Failing after 1s
Tests / lint (push) Failing after 0s
Tests / test-linux (3.9) (push) Failing after 1s
Docker / build (push) Failing after 1s
Docker / build-gpu (push) Failing after 2s
Tests / test-windows (push) Has been cancelled
Tests / test-macos (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:03:03 +08:00

107 lines
2.4 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
We recommend [`uv`](https://docs.astral.sh/uv/) — it creates and manages the
virtual environment for you:
```bash
# Clone the repository
git clone https://github.com/MemPalace/mempalace.git
cd mempalace
# Create the venv and install MemPalace + dependencies
uv sync
```
This produces a `.venv/` directory with the project installed in editable
mode. If you prefer plain pip, the equivalent is:
```bash
python3 -m venv .venv
.venv/bin/pip install -e .
```
## Initialize the Palace
```bash
uv run python -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 --scope user mempalace \
-- /absolute/path/to/mempalace/.venv/bin/python -m mempalace.mcp_server
```
::: warning
Use the **absolute path** to the Python binary so the server starts from any
working directory. The `--` separator prevents Gemini from parsing
`-m mempalace.mcp_server` as its own flags.
:::
## 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
uv run python -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