Skip to main content

everychat

Search every AI conversation you've ever had. ChatGPT, Claude, Gemini, Claude Code and Codex, in one local index. Free, offline, and your coding agent can query it over MCP.

$ everychat search "sourdough starter"

[412] chatgpt · 2024-07-01 · Sourdough starter help
      assistant: …Not dead, just hungry. Feed it twice a day for three days. [sourdough starter] that smells like acetone…

[88] claude-code · 2026-03-02 · Bakery timer app
      user: …wire the [sourdough starter] schedule into the notification…

You have asked an AI the same question three times across three products. everychat makes the first answer findable.

Why

  • Chat history is split across vendors, and the built-in search in each one is weak or missing.
  • Coding agents (Claude Code, Codex) keep sessions on disk in formats nobody reads.
  • Your next conversation would be better if the model could see what you decided last month.

What you get

  • One command to index local agent sessions. everychat sync finds Claude Code and Codex logs on your machine.
  • Import vendor exports. Drop in the zip or JSON from ChatGPT, Claude.ai, or Google Takeout (Gemini).
  • Fast substring search in any language. SQLite FTS5 with trigram tokens, so Chinese, Japanese and code identifiers work without a word segmenter.
  • MCP server. Add it to Claude Code, Codex, Cursor or any MCP client. Ask "did I already solve this?" and the agent looks it up.
  • Optional semantic search, fully local, no API key.
  • No cloud. One SQLite file in ~/.everychat. Nothing is uploaded anywhere.

Install

uv tool install git+https://github.com/WayneLY-Chen/everychat
# or: pipx install git+https://github.com/WayneLY-Chen/everychat

Python 3.10 or newer. Nothing else. A PyPI release (uv tool install everychat) is coming.

Use

everychat sync                                  # index Claude Code + Codex sessions on this machine
everychat import ~/Downloads/chatgpt-export.zip # ChatGPT data export (zip or conversations.json)
everychat import ~/Downloads/claude-export.zip  # Claude.ai data export
everychat import ~/Takeout/My\ Activity/Gemini\ Apps/MyActivity.json

everychat search "rate limiter"                 # search everything
everychat search "寫一個" --source claude-code  # filter by source
everychat show 412                              # print one conversation
everychat recent --limit 10
everychat stats

Run everychat sync again any time. Unchanged files are skipped.

Give your coding agent a memory

claude mcp add everychat -- everychat mcp        # Claude Code

For Codex, Cursor or any other MCP client, register a stdio server with the command everychat mcp. The server exposes four tools: search_chats, get_chat, recent_chats, list_sources.

Then, in a new session:

"I set up a Postgres connection pool for this project a few weeks ago. Find how I configured it."

The agent calls search_chats, reads the old conversation with get_chat, and continues from there.

Semantic search (optional)

uv tool install "everychat[semantic] @ git+https://github.com/WayneLY-Chen/everychat"
everychat embed                      # one-off, runs a small multilingual model on CPU
everychat search --semantic "that time the deploy broke because of timezones"

The model is paraphrase-multilingual-MiniLM-L12-v2 via fastembed. It is downloaded once (about 120 MB) and never phones home.

Where to get your exports

Source How
ChatGPT Settings → Data controls → Export data. You get a zip with conversations.json.
Claude.ai Settings → Privacy → Export data. You get a zip with conversations.json.
Gemini Google Takeout → My Activity → choose JSON format → Gemini Apps → MyActivity.json.
Claude Code Nothing to do. everychat sync reads ~/.claude/projects.
Codex Nothing to do. everychat sync reads ~/.codex/sessions.

Gemini's Takeout does not group turns into conversations, so each prompt and its reply become a two-message conversation.

How it works

exports / session logs  →  importers  →  SQLite (conversations, messages, FTS5 trigram index)
                                               ↑                      ↓
                                      everychat embed          everychat search / mcp
  • Importers normalise each format to Conversation(source, external_id, title, messages[]). Re-importing the same conversation replaces it; nothing is duplicated.
  • For ChatGPT, only the branch you last viewed is kept (the export stores every regenerated branch).
  • For Claude Code and Codex, only human and assistant text is indexed. Tool calls, tool output, thinking blocks, subagent threads and injected context (<system-reminder>, <app-context>, AGENTS.md instructions) are stripped.
  • Search collapses to the best hit per conversation. Queries under three characters use LIKE because the trigram tokenizer needs three.

Set EVERYCHAT_HOME to move the database. CLAUDE_CONFIG_DIR and CODEX_HOME are honoured.

Roadmap

  • Cursor, Gemini CLI, OpenCode, Aider session importers
  • Watch mode: re-index when a session file changes
  • Tiny local web UI
  • Export search results as Markdown for pasting into a new chat

Contributions for new importers are very welcome. An importer is one file with detect() and parse(); see src/everychat/importers/claude_web.py for the shortest example.

Privacy

Everything stays on your machine. The database is a plain SQLite file; delete it and it's gone. The MCP server only answers the client you attach it to.

License

MIT


中文說明

把你所有 AI 對話變成可搜尋的記憶。 ChatGPT、Claude、Gemini、Claude Code、Codex 全部進同一個本地索引,免費、離線,而且你的 coding agent 可以透過 MCP 查詢它。

uv tool install git+https://github.com/WayneLY-Chen/everychat
everychat sync                        # 自動索引本機的 Claude Code 與 Codex 對話
everychat import chatgpt-export.zip   # 匯入 ChatGPT / Claude.ai 匯出檔
everychat search "上次那個 timezone 的 bug"
claude mcp add everychat -- everychat mcp   # 讓 Claude Code 能查你的歷史

中文搜尋直接可用,不需要斷詞。所有資料都留在 ~/.everychat,不會上傳到任何地方。

Metadata

Release files for everychat 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 everychat 0.1.0
File Size Uploaded
everychat-0.1.0.tar.gz 176.3 kB Details

Built distribution (wheel)

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

Total release size: 201.3 kB

Release files / everychat-0.1.0.tar.gz

Download URL everychat-0.1.0.tar.gz
Size 176.3 kB
Tags Source
SHA-256 checksum
How to use checksums
68d2fbe08a2968c9fcb6b4f709602efc12e44aa4ec84bdb92e755eb762ebfa35
BLAKE2b-256 checksum
How to use checksums
1049cd651ba4ee1720cce04282d700f77673d7b89d16213a3a0e73c6b29bdfec
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 Oct 8, 2026.

Transparency log

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

Download URL everychat-0.1.0-py3-none-any.whl
Size 25.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b76947b8555b4281d753b854e5e52722da3f5a05e02ac96176c8891988d096dc
BLAKE2b-256 checksum
How to use checksums
edc855d39cecff672f0d45532c7e7a5133e6542e01857fcdab9a00c7f318eb17
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 Oct 8, 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