Skip to main content

ChatLore

All your AI conversations, one graph, one chat.

CI License: MIT Python 3.12+

Status: pre-alpha. Importing and search work today: ChatGPT, Claude, Gemini, and Markdown exports land in a local library and a SQLite graph store you can search from the terminal by words, by meaning, or both. A language model turns them into a knowledge graph of entities, relationships, and topics that you can browse and search, and you can ask questions and get answers with sources, in the terminal, over a REST API, or in a web interface with a graph explorer. AI assistants such as Claude and Cursor can search it too, through an MCP server. A library moves between machines as one archive file. The roadmap below shows what comes next.

Try it

With uv installed, one command downloads ChatLore and opens it on a made-up library:

uvx chatlore demo

The demo holds 32 invented conversations with their knowledge graph already built, so search, topics, and the graph explorer work at once, with no export and no API key. It lives in ~/.chatlore-demo, apart from your own library. Asking questions also needs a model key; see docs/models.md.

Use it on your own conversations

uv tool install chatlore                             # or: pipx install chatlore
chatlore import path/to/chatgpt-export.zip
chatlore search "postgres index"
chatlore process                                     # chunk and embed, local model
chatlore search "why was my query slow" --semantic
chatlore search "slow postgres query" --hybrid       # words and meaning together
chatlore extract --limit 50                          # entities, needs a model key
chatlore topics                                      # what the conversations are about
chatlore entity "postgres"                           # one entity and where it came up
chatlore ask "why was my query slow?"                # an answer with sources
chatlore serve                                       # web UI and API on http://127.0.0.1:8000
chatlore mcp                                         # tools for Claude, Cursor, and other MCP clients
chatlore export chatlore.zip                         # the whole library in one file
chatlore stats

The library is kept in ~/.chatlore; --home <folder> or CHATLORE_HOME picks another.

The source is detected from the file. Importing is idempotent, so re-running it after a fresh export only adds what changed. How to get each export, what is kept, and the known limits are in docs/importers.md. Extraction and chat use any OpenAI-compatible model, OpenRouter by default; see docs/models.md. The knowledge graph is described in docs/extraction.md, chat and the API in docs/chat.md, the web interface in docs/web.md, setting up assistants over MCP in docs/mcp.md, and archives and Markdown export in docs/export.md.

What ChatLore will do

ChatLore is a local-first, open-source graph knowledge base built from your own conversations and documents.

  • Import your history from ChatGPT, Claude, and Gemini exports, plus Markdown folders, notes, and later local coding-agent sessions.
  • Link everything into one graph of conversations, entities, topics, and facts, with every extracted fact pointing back to the message it came from.
  • Search across all of it with full-text, vector, and graph retrieval combined.
  • Chat in one place with citations, using any model provider you like: OpenAI-compatible endpoints (including Ollama, vLLM, and Qwen), Anthropic, or Gemini.
  • Integrate with the tools you already use through an MCP server, a REST API, and a CLI.

Your data stays in a folder you own. Import and search work without any LLM; extraction is an optional enrichment you can re-run with a better model later.

Roadmap

Milestone Deliverable Status
M0 Repository skeleton and CI done
M1 Core data model and embedded SQLite graph store done
M2 Importers: ChatGPT, Claude, Gemini, Markdown, notes done
M3 Chunking, embeddings, hybrid search done
M4 Entity, topic, and fact extraction with provenance entities and topics done; facts later
M5 REST API with streaming chat done
M6 Web UI: conversations, graph explorer, chat basic version done
M7 MCP server for Claude Desktop, Claude Code, Cursor, ChatGPT done for local assistants; ChatGPT with the hosted demo
M8 Easy to try: PyPI package, demo library, export and import done, v0.1.0
M9 Hosted demo planned
M10 FalkorDB backend planned

Development setup

Requirements: uv and Git. uv installs the pinned Python version for you.

git clone https://github.com/cl0ver012/chatlore.git
cd chatlore
uv sync
uv run chatlore --help

Checks that CI runs on every pull request:

uv run ruff check .
uv run ruff format --check .
uv run mypy
uv run pytest

Contributing

See CONTRIBUTING.md for branch naming, commit conventions, and the pull request checklist.

License

MIT

Release files for chatlore 0.1.0

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

Source distribution (sdist)

Source distribution for chatlore 0.1.0
File Size Uploaded
chatlore-0.1.0.tar.gz 503.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chatlore 0.1.0
File Interpreter ABI Platform
chatlore-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 826.8 kB

Release files / chatlore-0.1.0.tar.gz

Download URL chatlore-0.1.0.tar.gz
Size 503.9 kB
Tags Source
SHA-256 checksum
How to use checksums
827dbe6c11d49e2e0655fd8726910f319d9d42ab4f4bb8f3d1caacd9aa956b12
BLAKE2b-256 checksum
How to use checksums
f2736379c3ece5a83be3deb04dffaac44ab9a83018e81dfb49dc4be2cfed5500
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / chatlore-0.1.0-py3-none-any.whl

Download URL chatlore-0.1.0-py3-none-any.whl
Size 322.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
66fd5804e7d5a8ada634fccd9beb598f7f80e37bb29de5ecf372c6f8c69be0da
BLAKE2b-256 checksum
How to use checksums
ba6f3c62047c73b8e7ef975f844a816caaa07a3b4d19e39d3d27334400507e90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

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