Run one command, choose your coding agents, and let Lore set up their integrations and shared memory. You do not need to install Copilot to use another client.
Run the installer
You need Node.js 24.0.0 or later with built-in SQLite/FTS5 and at least one supported CLI installed on PATH. macOS is the primary platform; Linux is best effort and Windows is unsupported.
git clone https://github.com/matt-riley/lore.git ~/dev/lore
cd ~/dev/lore
npm run setup
If you already have a Lore checkout, run npm run setup there. No npm dependency installation or runtime build is needed.
The installer lists detected clients: Copilot (copilot), Pi (pi), Codex (codex), Claude Code (claude), and Antigravity CLI (antigravity). Enter names or numbers separated by commas, or all. Review the installation paths and confirm with y. An empty selection or declining confirmation cancels without changes.
Detection means the executable is available, not that the client is authenticated or its version is compatible. Codex, Claude Code, and Antigravity integrations remain experimental. Claude Desktop and the Antigravity IDE integration are not targets.
What setup handles
- Installs globally for only your selected clients: extension directory copies for Copilot/Pi, native command-hook configuration for Codex/Claude/Antigravity. No MCP server is installed.
- Enables Lore in the resolved shared config, preserving other settings. New configs enable only Lore; no experimental rollout flags are opted into.
- Preserves existing memory paths, including legacy fallback. It does not migrate or delete your database.
- Backs up changed configs and replaced Lore extension directories under
<Lore home>/install-backups/<run-id>/, outside extension discovery paths. - Checks planned configs before writing, refuses unrelated extension directories and symlink targets, and restores completed changes if installation fails.
- Verifies written configuration and extension entrypoints. This is an installation check, not a live authenticated model test.
Keep the source checkout in place: native hook commands reference its absolute path. Existing modified Antigravity groups named lore require manual review rather than being overwritten. Avoid installing both global and project hooks for the same client.
Native hooks also bake in an absolute Node path. If you use a version manager (mise, asdf, fnm, volta, or nvm), setup prefers a stable, version-independent alternative — a major-version symlink, a latest symlink, a default alias, or a shim — over the exact binary currently running setup, so pruning an old Node install doesn’t silently break every hook. Setup prints the path it chose and its source. Override the choice with npm run setup -- --node /path/to/node or by setting LORE_NODE. Run lore doctor at any time to check installed hooks for a missing Node binary, a missing lore-cli.mjs entry, or a still-pinned version-manager path.
Local memories can become context for your client’s configured model. Read Privacy before using sensitive material.
Finish in your client
Some steps are controlled by the host and cannot be bypassed by an installer:
| Client | After setup |
|---|---|
| Copilot CLI | Restart for extension discovery; check memory_status. |
| Pi | /reload or restart; look for lore: memory ready, then run /lore status. |
| Codex CLI | Restart, then review and trust Lore’s definitions in /hooks. Managed settings can still disable hooks. |
| Claude Code | Restart and approve hooks if prompted. |
| Antigravity CLI | Restart with agy --add-dir /absolute/project; /hooks should list lore. |
For daily use and verification, see Pi, Copilot CLI, or Codex, Claude & Antigravity.
Preview or automate
npm run setup -- --clients all --dry-run
npm run setup -- --clients codex,claude --yes
npm run setup -- --help
--dry-run never writes. --yes skips confirmation but requires an explicit --clients selection. all selects all detected supported clients. Add --remove to preview or apply removal for the selected clients; removal preserves memories, configuration, unrelated hooks, and modified installs. --node /path/to/node overrides the Node binary baked into hooks and the PATH shim. An unavailable or unknown client causes an error; setup does not install the CLI itself.
Existing and custom installations
Setup honors LORE_HOME, LORE_CONFIG, LORE_COPILOT_HOME, and absolute XDG_CONFIG_HOME through the shared path resolver. Native client settings also honor CODEX_HOME and CLAUDE_CONFIG_DIR; Pi’s extension destination honors PI_CODING_AGENT_DIR. LORE_NODE overrides the Node binary setup bakes into hooks and the PATH shim (equivalent to --node). Use the same environment when launching your clients. If LORE_ENABLED disables Lore, unset it or set it to true first.
Malformed JSON, overlapping destinations, and unrelated existing directories stop setup before installation. Review the reported file; do not replace it wholesale. Backups preserve the previous contents if you need to recover a replaced install or config; each run’s manifest.json maps numbered backups to their original paths. Treat backups as sensitive data.
If a CLI is missing from the list, put its executable on PATH and rerun. Shell aliases alone are not detected. Pi’s worker also needs Node on PATH, or an explicit LORE_NODE.
Update
Pull your source checkout and rerun the same installer:
git -C ~/dev/lore pull
cd ~/dev/lore
npm run setup
Repeated setup refreshes selected extension copies and merges exact hook definitions without duplicating them. Restart or reload the clients afterwards. Before moving the checkout or changing Node installations, remove old native hook definitions using the advanced removal instructions, then rerun setup from the new location.
Install backups preserve modified files and settings. They are separate from database recovery snapshots; use node scripts/recover.mjs status, backup, or restore --from <snapshot> for the latter. A restore preview never writes; a write restore requires --clients-stopped and lsof for open-handle detection, and refuses to write when that detection is unavailable.