Skip to main content

Eve Memory Client

License: Apache 2.0 Python >= 3.11 MCP Compatible

eve-memory-client is the Python distribution for the local eve CLI. It connects supported AI tools to the hosted Eve memory service.

It detects local tools, configures MCP, installs Eve-managed prompt and hook files where supported, manages auth, and can verify, repair, or remove the integration later. It can also import local history from supported clients.

How Eve Works

When you run eve install, Eve configures four lifecycle hooks that run automatically — no commands needed during your sessions.

Moment What Eve does
Session opens Injects your saved preferences, learned rules, and recent session history directly into Claude
Every prompt Silently searches your memory and enriches each message with relevant context before Claude sees it
Before compaction Preserves critical facts before Claude's context window compresses
Session ends Reads the full transcript, extracts new learnings, and stores them for future sessions

Lifecycle hooks are available on Claude Code and Gemini CLI. Eve also connects to Codex CLI and other MCP-compatible clients using prompt seeding, so you get memory across all your tools.

Quick Start — 5 minutes

1. Get an Eve workspace

Request access at evemem.com. After provisioning, sign in and create an API key at evemem.com/app/overview.

2. Install the client

uv tool install eve-memory-client

No uv? Use:

pipx install eve-memory-client

Verify: eve version

Security note: install the PyPI package named eve-memory-client. Do not install eve-client; that PyPI name is owned by a third party.

3. Connect Claude Code (swap --tool gemini-cli for Gemini CLI)

eve connect --tool claude-code --api-key <your-eve-api-key>

This combines auth, install, and verify. For step-by-step, see API key flow below.

Expected output:

✓ MCP config written
✓ CLAUDE.md companion updated
✓ Lifecycle hooks configured — Eve auto-injects memory context on every session
✓ Eve memory is connected and responding

What just happened? Eve installed four lifecycle hooks. From this point forward, every Claude Code session starts with your memory context pre-loaded, and ends with new learnings captured. You never need to ask Claude to use Eve.

If eve connect fails: run eve doctor --tool claude-code and check the diagnostics output. Open an issue at github.com/evememory/eve-client.

4. Test memory across sessions

In Claude Code, tell Claude:

"Remember that I use PostgreSQL with a users table — email and created_at columns."

Start a new Claude Code session and ask:

"What database setup did I mention?"

Claude will recall it via Eve. ✓

See examples/ for manual MCP config snippets (no installer needed).

For distribution-channel status across Claude, Codex, ChatGPT, Gemini, Cursor, VS Code, and Windsurf, see CHANNELS.md.

Hermes CLI

Eve supports profile-scoped Hermes connections with Hermes 0.20.5 or newer. Hermes supports two separate Eve memory paths.

Native Eve memory provider

Install eve-memory-client into the same Python environment that runs Hermes:

<hermes-python> -m pip install eve-memory-client

The base client does not install or replace the host application's MCP Python SDK. The optional local eve-mcp-server bridge uses MCP SDK 2 through the server extra.

Configure the active named profile:

hermes --profile work memory setup

Select eve when prompted. Hermes stores EVE_API_KEY in that profile's secret environment. It stores other Eve values in that profile's eve.json. session_end_timeout_seconds defaults to 20 seconds and accepts values from 5 through 30. It is a behavioral setting in eve.json, not an environment variable. The native provider gives bounded automatic recall, pre-compaction memory processing, and end-of-session extraction. It exposes no model-callable Eve tools.

Existing Eve MCP connector

Connect or reauthenticate a named Hermes profile with the existing OAuth path:

eve connect --tool hermes --profile work

Verify that the profile points to the Eve MCP endpoint and that Hermes can reach it:

eve verify --tool hermes --profile work

This is the OAuth path for explicit Eve MCP tools. The native provider and MCP connector do not share credentials. Neither path replaces the other.

Purpose Setup Authentication Model tools
Native Eve memory provider hermes --profile work memory setup EVE_API_KEY in the profile secret environment None
Existing Eve MCP connector eve connect --tool hermes --profile work Hermes-managed OAuth session Explicit Eve MCP tools

Existing profiles use fresh reauthentication when you run eve connect again. To upgrade Hermes itself, use its official updater:

hermes update

To upgrade the Eve client:

uv tool upgrade eve-memory-client

If you installed with pipx, use pipx upgrade eve-memory-client instead.

Install

Before installing the client, get an Eve workspace:

  • Request access: https://evemem.com
  • After your workspace is provisioned, sign in to the Eve dashboard:
  • If you plan to use API-key auth, create or rotate a tenant key from the Eve admin/user setup flow before connecting your client.

From PyPI

Preferred:

uv tool install eve-memory-client

Alternative:

pipx install eve-memory-client

The PyPI distribution is eve-memory-client; eve-client is not used as the PyPI name because that namespace is occupied by a third party. Official PyPI page: pypi.org/project/eve-memory-client.

Development install from GitHub

Use this only when testing unreleased client changes:

uv tool install git+https://github.com/evememory/eve-client.git

Or via the standalone bash installer. Save it first; do not pipe remote shell directly into sh:

curl -fsSL https://raw.githubusercontent.com/evememory/eve-client/main/install.sh -o install-eve.sh
sh install-eve.sh

Then confirm:

eve version
eve --help

Manual config (no installer)

See examples/ for ready-to-paste MCP config snippets for Claude Code, Gemini CLI, and Codex CLI.

What Eve Client Does

  • detects supported local AI clients
  • shows an install plan before changing files
  • writes Eve-managed MCP config
  • installs prompt/companion files where supported
  • installs four lifecycle hooks that auto-inject memory context on every session (SessionStart, UserPromptSubmit, PreCompact, Stop)
  • stores auth locally using file-based credential storage
  • provides eve memory search and eve memory status commands for direct memory access
  • verifies, repairs, rolls back, and uninstalls Eve-managed changes
  • imports local conversation history into Eve from supported clients

Importing Local History

Supported importer sources today:

  • Claude Code
  • Codex CLI
  • Gemini CLI

Core commands:

eve import scan --source claude-code
eve import preview --source claude-code --path <session_file>
eve import jobs                              # list scan jobs
eve auth login --tool claude-code
eve import upload --job <scan_job_id> --use-auth-from claude-code
eve import runs                              # list upload runs
eve import resume --run <run_id>
eve import cleanup --days 30
eve import cleanup --days 30 --apply

How it works:

  • parses local history on your machine
  • uploads normalized batches to the managed Eve service
  • keeps a local SQLite ledger for scan jobs, upload runs, replay, and resume
  • supports dry-run cleanup of old completed local importer runs by default

Importer maintenance:

  • eve import cleanup is a generic local ledger maintenance command, not a client-specific import source feature

Auth note:

  • avoid passing secrets directly on the command line when possible
  • prefer eve auth login ... first, then run importer commands without repeating the API key
  • in an interactive shell, eve auth login --tool claude-code prompts for the key securely

Current rollout note:

  • correctness and resume are solid
  • very large imports, especially Claude-heavy ones, may still be slower than ideal while batching defaults continue to be tuned

Supported Clients

Claude Code

Supported today:

  • MCP config
  • CLAUDE.md companion file
  • package-managed hooks
  • importer support: scan, preview, upload, resume

Primary auth path today:

  • Eve API key

Gemini CLI

Supported today:

  • MCP config
  • GEMINI.md companion file
  • package-managed hooks
  • importer support: scan, preview, upload, resume

Primary auth path today:

  • Eve API key

Codex CLI

Supported today:

  • MCP config
  • Eve-owned OAuth login
  • runtime bearer token injection
  • importer support: scan, preview, upload, resume

Primary auth path today:

  • Eve OAuth

Important:

  • native Codex MCP login is not the supported Eve path

Claude Desktop

Not auto-configured locally for hosted Eve.

For the hosted remote MCP connector path, see connectors/claude-desktop/.

ChatGPT

ChatGPT uses Eve's hosted MCP endpoint through a custom MCP app or connector flow. It is not installed by the local CLI.

For validation and submission notes, see connectors/chatgpt/.

Authentication Requirements

You need an Eve workspace and either:

  • an Eve API key, or
  • Eve OAuth access for supported flows

Current auth expectations:

  • Claude Code: API key
  • Gemini CLI: API key
  • Codex CLI: Eve OAuth

OAuth browser flow exists for more clients, but it is still experimental outside the Codex path and should not be treated as the default production installer flow yet.

Basic Usage

First run

eve quickstart
eve connect --tool claude-code
eve verify --tool claude-code

API key flow

eve auth login --tool claude-code --api-key <eve-key>
eve install --tool claude-code --apply --yes  # --apply writes config, --yes skips confirmation
eve verify --tool claude-code

Codex OAuth flow

eve auth login --tool codex-cli --auth-mode oauth
eve install --tool codex-cli --auth-mode oauth --apply --yes
eve verify --tool codex-cli --auth-mode oauth

Memory commands

eve memory search "what database do we use" --context naya
eve memory search "auth patterns" --limit 5 --json
eve memory status
eve memory status --json

Common commands

eve quickstart
eve connect
eve install --dry-run
eve install --apply --yes --tool claude-code
eve status
eve doctor
eve verify
eve repair --tool gemini-cli --apply --yes
eve uninstall --tool claude-code --yes
eve run --tool codex-cli -- exec "Use Eve memory to search for my latest preference."

Manual MCP Configuration

If you do not want the installer to edit client config for you, add the hosted Eve MCP server manually.

Shared hosted MCP endpoint

https://mcp.evemem.com/mcp

Claude Code / Gemini CLI (API key)

Use a tenant API key from the Eve admin panel.

{
  "eve-memory": {
    "type": "http",
    "url": "https://mcp.evemem.com/mcp",
    "headers": {
      "X-API-Key": "eve_<tenant>_...",
      "X-Source-Agent": "claude_code"
    }
  }
}

For Gemini, keep the same shape and change:

X-Source-Agent = gemini_cli

Codex CLI (OAuth)

Codex should use an Eve-owned bearer token, not native codex mcp login.

[mcp_servers.eve-memory]
url = "https://mcp.evemem.com/mcp"
bearer_token_env_var = "EVE_CODEX_BEARER_TOKEN"
startup_timeout_sec = 60

[mcp_servers.eve-memory.headers]
X-Source-Agent = "codex_cli"

OAuth resource:

https://mcp.evemem.com/mcp

Codex prompt seeding belongs in the active project AGENTS.md. Eve manages its own marked block inside that file rather than creating a parallel sidecar file.

Other MCP clients

For other remote MCP clients, the minimum working setup is:

  1. MCP URL:
https://mcp.evemem.com/mcp
  1. One source-agent header:
X-Source-Agent: your_client_name
  1. Choose one auth style:
  • API key:
X-API-Key: eve_<tenant>_...
  • OAuth bearer:
Authorization: Bearer <token>
  1. For OAuth-capable clients, use this resource identifier:
https://mcp.evemem.com/mcp
  1. Required scopes:
memory.read
memory.write

If the client supports a companion instruction file, point it at the active instruction file for that tool rather than inventing a second parallel file.

Which auth path to use

  • Claude Code: API key
  • Gemini CLI: API key
  • Codex CLI: Eve OAuth

If you want Eve to manage the config, prompts, hooks, and verification for you, use eve connect instead of editing files manually.

Safety Model

  • no silent shell profile mutation
  • no undocumented hooks
  • no overwrite of user-authored instruction files
  • backup and manifest tracking before mutation
  • explicit rollback and uninstall support
  • uninstall removes Eve-managed credentials and tool entries, and warns when a user-modified Eve-owned file requires manual review

Development

Run tests:

uv run pytest --cov=eve_client --cov-report=term-missing -q tests

Build Python artifacts:

uv build .

The current release is eve-memory-client 0.3.9. See CHANGELOG.md for release details.

Check build artifacts:

uvx twine check dist/*

Build standalone release artifacts:

bash scripts/build-eve-client-release.sh

Release tags for the PyPI distribution use eve-memory-client@<version>, for example eve-memory-client@0.3.9.

License

Apache-2.0. See LICENSE.

Metadata

Release files for eve-memory-client 0.3.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eve-memory-client 0.3.9
File Size Uploaded
eve_memory_client-0.3.9.tar.gz 106.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eve-memory-client 0.3.9
File Interpreter ABI Platform
eve_memory_client-0.3.9-py3-none-any.whl Python 3 none any Details

Total release size: 238.6 kB

Release files / eve_memory_client-0.3.9.tar.gz

Download URL eve_memory_client-0.3.9.tar.gz
Size 106.9 kB
Tags Source
SHA-256 checksum
How to use checksums
bf28b074d4c9a57fdcde84c35df392d475d28643132103d7f0bd7f59e675c88f
BLAKE2b-256 checksum
How to use checksums
e661825857a8dbec007c0906c06e366086d5cdce0608f780573204f74f1b9876
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / eve_memory_client-0.3.9-py3-none-any.whl

Download URL eve_memory_client-0.3.9-py3-none-any.whl
Size 131.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b87b6cce9da2cf0c08bc733d7951ab23e7ddeed263fcc9027b44eb36d283697f
BLAKE2b-256 checksum
How to use checksums
a867d3407e72b9a496bfb928a821442f26f5acbe21e04ab8f0d0eadd28e4b2a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.3.9 This release

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page