Quick install
Use the installer to start Lore with Docker or connect clients to an existing Lore server.
Use the installer when you want the shortest path to a working Lore server and local agent integrations.
Prerequisites
- Docker with the Compose plugin (
docker compose). On macOS, Docker Desktop includes both. On Linux, install Docker Engine and thedocker composeplugin. - At least one supported agent runtime (Claude Code, Codex, Pi, OpenClaw, Hermes, or OpenCode) that you want to connect. The OpenCode prerelease is tested with OpenCode 1.18.3.
- An OpenAI-compatible API key for embeddings (e.g. OpenAI, DeepSeek, or a local service). You will configure this in
/setupafter the installer finishes. Without it, semantic recall and Dream will not work.
Run the installer
The default install starts Lore with Docker Compose, writes local client config, and sets up supported agent channels on this machine.
Chinese-language installer:
What the installer does
- Downloads
docker-compose.ymland a.envtemplate from the Lore repo. - Starts the Lore server, PostgreSQL, and Redis containers.
- Waits for the server to become healthy.
- Creates
~/.lore/config.jsonwith server URL and token. - Installs MCP configuration and hooks where the selected runtime uses them.
- For OpenCode, downloads
lore-opencode.zipand atomically installs the managed native plugin at~/.config/opencode/plugins/lore-memory.js. - Installs thin lifecycle forwarders; boot guidance and recall formatting are returned by the Lore server.
The standard OpenCode installation does not configure MCP. OpenCode receives the exact native lore_* tools, so generic /api/mcp is only a manual fallback.
The native plugin suppresses duplicate Lore MCP imports at runtime. The installer also handles an earlier lifecycle-hook duplication path used by Claude compatibility layers: if an existing user-level oh-my-openagent.json[c] or legacy oh-my-opencode.json[c] is present and can be parsed safely, it sets claude_code.plugins_override["lore@lore"] = false. It preserves all unrelated fields and JSONC comments, records the previous value under ~/.lore/, and restores the previous value during OpenCode uninstall.
Lore does not modify Claude Code files. The installer never creates an oh-my-openagent configuration file; if the existing third-party file is unsafe or unparseable, it warns and skips the compatibility edit. Run the installer with LORE_OPENCODE_ALLOW_MCP=1 and use the same variable when starting OpenCode only when you explicitly need the legacy MCP fallback alongside the native plugin; reinstalling with the escape hatch restores any value previously changed by Lore.
You can inspect ~/.lore/ after the installer finishes to see what was written.
Common options
| Option | Use it when |
|---|---|
--channels claudecode,codex | You only want selected integrations. Use opencode for OpenCode. |
--base-url http://host:18901 | Lore is already running somewhere else. This skips server startup. |
--api-token TOKEN | The server is protected by API_TOKEN. |
--skip-docker | You only want local client integrations. |
--pre | You want the pre-latest release channel. |
--dev | You want the dev-latest release channel. |
--force | You want to reinstall even if the version looks current. |
Examples
Install only the OpenCode prerelease v1.3.15-pre.4:
This installs lore-opencode.zip for OpenCode 1.18.3 or newer. If the opencode CLI is not installed, the channel reports a successful skip instead of failing the whole installer.
Install only Codex and Claude Code integrations:
Point this machine's agents at an existing Lore server:
After the installer finishes
- Open
http://127.0.0.1:18901/setupunless you connected to an existing server. - Complete embedding, View LLM, and boot memory setup.
- Restart the agent runtimes you installed.
- For Codex, run
codex mcp listto confirm Lore is registered. Then open a Codex session and type/hooks— trust the Lore hooks if prompted. - For OpenCode, confirm
~/.config/opencode/plugins/lore-memory.jsexists, restart OpenCode, and ask it to calllore_status. Boot usesexperimental.chat.system.transform; prompt Recall useschat.messageand remains available when system injection is unavailable. - Send a realistic prompt and confirm a recall block appears.
If you do not want the installer to manage the server or clients, use Manual configuration.