Guides

Troubleshooting

Symptoms, the likely cause, and what to do. Start with "Is it connected?" if nothing seems to happen.

Is it connected?

  1. Does the server answer?
    printf '{"jsonrpc":"2.0","id":1,"method":"tools/list"}\n' | python3 mcp_server.py
    You should get one line of JSON that lists eight tools. If not, the problem is Python or the path, not your client.
  2. Does the client see it? claude mcp list (Claude Code) or copilot mcp list (Copilot CLI). The entry should say connected.
  3. Did the agent call it? Look for a get_rules tool call in the chat. The agent calls Lore because its instructions say to; that is a request, not enforcement.

The agent and the tools

SymptomCause and fix
The agent never calls get_rulesThe instructions are not loaded. Start a new session after installing. For Copilot CLI check the marked block in ~/.copilot/copilot-instructions.md; for VS Code add the instruction file by hand and use agent mode. Ask the agent which tools it has.
"No lore project matches these paths"The files are not in a git repository Lore can register, or the agent passed relative paths from another folder. Use absolute paths, or register the folder with memorize.py --path <project>. For a repository, check auto_register is not false in ~/.lore/config.json.
The project did not register itselfIt needs a .git entry in the folder or above it. Your home folder, /, system folders and ~/.lore are never registered.
The server entry is missing in Copilot CLIWrong file or key. The CLI uses ~/.copilot/mcp-config.json with mcpServers and "type": "local"; VS Code uses servers and "type": "stdio".
I changed Lore's code and nothing changedThe running server is the old process. Start a new agent session or reconnect the server. Rules, in contrast, are read from disk on every call.
The agent says it already has the rules but seems to have forgotten themIts context was reset or compacted. It should pass refresh=true; ask it to call get_rules again with that.

Rules that do not behave

SymptomCause and fix
A rule was saved but is not appliedIt is probably pending. review.py list --status pending, then approve. In a repository that is not yours, or in manual mode, rules always wait.
"Not saved" with hidden characters, an HTML comment, or "keep a rule under 500"The text failed the hygiene checks. Remove the invisible characters or shorten it. See hygiene.
A rule is shown with <U+XXXX>It was stored with hidden characters. It is never served or exported. Edit it (review.py edit) or reject it.
Rules the agent proposed keep waiting for meLook at the reason in its reply: manual mode, a risky pattern, a possible contradiction, a repository that is not yours (review.py trust if it is), a project the agent is not working on, or the per-session limit.
"not your repository" in the UI, but it is mineLore could not confirm you can push (no gh, logged out, or a non-GitHub host). Fix gh auth login, or settle it: review.py --name myapp trust.
A rule I need was not sent for a taskMatching is by keywords. Look at the title list in the reply and ask for it with include; or review.py pin <id>; or ask the agent to organise the rules so the triggers include your vocabulary. Check with review.py resolve <file> --task "…".
A rule is sent every time and I don't want thatIt is marked always. review.py unpin <id>.
The agent keeps being told to tag rulesSome rules covering the files have no tags. The note appears once per session; ask the agent to "organise my Lore rules" once. review.py list says how many are untagged.
Something was activated that I don't wantreview.py list --auto, then review.py reject <id>. For tighter control: python3 install.py --approval manual.

The scripts

SymptomCause and fix
discover.py proposes nothingFewer than 5 files of evidence, or no convention reaches 90%. Try --min-ratio 0.8 --min-files 3.
learn.py: "gh is not installed" or "gh auth login"Install the GitHub CLI and log in. Lore uses your existing session.
learn.py finds comments but proposes nothingNothing actionable (praise, questions, already-proposed comments), or the comments are from people outside the repository's team. Try a longer --since, --include-seen, --include-external, or --repo owner/name if the git remote is not the repository you review.
A proposal I rejected came backOnly with --include-seen, or after deleting the project's review-ledger.json.
The agent is reminded to read review feedback but it failsA failed attempt is recorded and stops the reminder for 14 days. Fix gh and run learn.py once to clear it.
review.py approve --all says "nothing approved"You answered no, or there was no input. Add --yes, or answer y.
A section rule is missing from sync outputThe section is not in the map. Re-run memorize.py.
install.py: "not a JSON object"~/.copilot/mcp-config.json is malformed. Fix or remove it, then run again.
install.py: "claude mcp add failed"Run the printed command yourself to see Claude Code's own message. You can also add the server by hand (Claude Code).

The web UI

SymptomCause and fix
"Open the address printed by serve.py"You opened the bare address. Use the full link with ?t=<token> from the terminal. The token changes every run.
"bad Host header" or the page refuses to loadYou used localhost. Use 127.0.0.1, exactly as printed.
"cannot listen on 127.0.0.1:8765"The port is taken. serve.py --port 9000.
A change to the Python code has no effectRestart serve.py. Changes to web/index.html show on a reload.

Still stuck?

Run the whole test suite from the Lore folder (python3 -m unittest discover -s tests); failures there point at the environment. Then open an issue with the command you ran, the exact message, your Python version (python3 --version) and the agent you use. For a security problem, follow the private route instead.