Eve client installer and local tool integration CLI
Project description
Eve Memory Client
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).
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 searchandeve memory statuscommands 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 cleanupis 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-codeprompts 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.mdcompanion file- package-managed hooks
- importer support:
scan,preview,upload,resume
Primary auth path today:
- Eve API key
Gemini CLI
Supported today:
- MCP config
GEMINI.mdcompanion 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.
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:
- MCP URL:
https://mcp.evemem.com/mcp
- One source-agent header:
X-Source-Agent: your_client_name
- Choose one auth style:
- API key:
X-API-Key: eve_<tenant>_...
- OAuth bearer:
Authorization: Bearer <token>
- For OAuth-capable clients, use this resource identifier:
https://mcp.evemem.com/mcp
- 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 next release version prepared from this branch is 0.3.3.
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.3.
License
Apache-2.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eve_memory_client-0.3.3.tar.gz.
File metadata
- Download URL: eve_memory_client-0.3.3.tar.gz
- Upload date:
- Size: 94.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de5776cf1f850a71161044ab21a5b4927bf0fc2755b9a9e93a9d75dbe6891ad0
|
|
| MD5 |
256129f111a1ec6caa9291a056fd68ea
|
|
| BLAKE2b-256 |
4f7d98af0542ec9dd80ad8ec74a8e012edeb99334e025add99de4469c7ce40fb
|
File details
Details for the file eve_memory_client-0.3.3-py3-none-any.whl.
File metadata
- Download URL: eve_memory_client-0.3.3-py3-none-any.whl
- Upload date:
- Size: 119.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4729d48c0b7be6b1ba6a5e4c5874fd7236678517579d78fc4ba64d50955abeb4
|
|
| MD5 |
d634905132390edbf5052eb80b21fc4d
|
|
| BLAKE2b-256 |
b460a4650a94457db4c12bec562383f0d17a01e455d33db83bca1faace1181de
|