Skip to content

Turn your AI conversations into documents anyone can read.

NetCodex finds the chats that Codex, Claude Code, Copilot, Cursor and other AI tools keep on your computer, and exports them as Markdown, PDF or a web page. Nothing leaves your machine.

  • Free and open source
  • Windows, macOS and Linux
  • No account needed
rollout-2026-04-18.jsonl
You

Why does the invoice search take several seconds? Can you fix it?

exec_command{"cmd": "psql -c \"EXPLAIN ANALYZE SELECT * FROM invoices WHERE customer_id = 42\""}Seq Scan on invoices (cost=0.00..48211.40) time=3104.882 ms
Codex

The query reads the whole table. I will add an index: CREATE INDEX idx_invoices_customer_date ON invoices (customer_id, issued_at);

Index Scan using idx_invoices_customer_date time=41.207 mspytest: 212 passed in 18.4s

The original transcript: every message, tool call and output, exactly as the tool saved it.

AI tools it can read
14
export formats
4
files uploaded anywhere
0
languages, Spanish and English
2

Download, open, export. No folders to find.

The app scans this computer for the AI tools you use and lists their conversations right away. Export everything with one click, or pick the chats you want.

Desktop app

NetCodex for Windows

Install it, open it, and it finds the AI tools on your computer and their chats by itself. Pick conversations and export them. Everything stays on your machine.

The Windows installer is on its way

Meanwhile, install with pipx or uv and run netcodex desktop. It is the same app.

See the full install guide

Three steps from chat to document

No setup and no configuration files. NetCodex reads each tool's history where it already is.

  1. Open NetCodex

    It looks for Codex, Claude Code, Copilot, Cursor, Gemini CLI and the rest, and shows how many conversations each one has.

  2. Pick conversations and a look

    Keep the conversation as it looks, or switch to the readable view. Choose a template for PDF and web pages.

  3. Export to a folder

    Markdown, PDF, HTML or Quarkdown files land in a folder you choose, with an index. Next time, only new chats are added.

Two ways to read the same conversation

Sometimes you need the exact record. Sometimes you need something a colleague can read in two minutes. NetCodex gives you both from the same chat.

As it looks (original)

Every message, command and tool output in order. Best for audits, debugging and keeping a faithful record.

Plain language (readable)

The same conversation retold as clear prose: what was asked, what was done and what came out of it. Best for sharing.

Templates for documents worth sending

PDF and web exports come with layouts for different readers. Pick one when you export; you can change it any time.

  • Chat

    A clean chat: one bubble per speaker, the assistant's actions folded away.

  • Transcript

    Interview style with the time of every line: who said what, and when.

  • Report

    Summary and key facts first, then the dialogue, then every action.

  • Book

    Serif typography, one chapter per working day and a table of contents.

  • Minimal

    Plain and compact text, ready to read or paste somewhere else.

Private by design

  • Reads in place

    Chats are read from the folders where each tool keeps them. Nothing is copied to a server.

  • No account

    There is nothing to sign up for. NetCodex has no cloud, no tracking and no history of its own.

  • You choose what to share

    Local file paths are left out by default, so exports are safe to send.

Your conversations are already on disk.

Each tool keeps its chats in its own folder. Here is where, on Windows, macOS and Linux. Once installed, netcodex where lists the ones on your machine.

ToolStatusWindowsmacOSLinuxWhat to import
Codex CLI / VS Code / DesktopCODEX_HOMEsupported
  • %USERPROFILE%\.codex\sessions\YYYY\MM\DD\rollout-*.jsonl
  • %USERPROFILE%\.codex\archived_sessions\rollout-*.jsonl
  • %USERPROFILE%\.codex\state_*.sqlite
  • %USERPROFILE%\.codex\session_index.jsonl
  • ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl
  • ~/.codex/archived_sessions/rollout-*.jsonl
  • ~/.codex/state_*.sqlite
  • ~/.codex/session_index.jsonl
  • ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl
  • ~/.codex/archived_sessions/rollout-*.jsonl
  • ~/.codex/state_*.sqlite
  • ~/.codex/session_index.jsonl
rollout-*.jsonl, state_*.sqlite, session_index.jsonl
Claude Code CLI / VS CodeCLAUDE_CONFIG_DIRsupported
  • %USERPROFILE%\.claude\projects\<project>\<session>.jsonl
  • ~/.claude/projects/<project>/<session>.jsonl
  • ~/.claude/projects/<project>/<session>.jsonl
<session>.jsonl, <session>/subagents/agent-*.jsonl
Claude Desktop (Code tab)CLAUDE_CONFIG_DIRsupported
  • %APPDATA%\Claude\claude-code-sessions\**\local_*.json
  • %USERPROFILE%\.claude\projects\<project>\<session>.jsonl
  • ~/Library/Application Support/Claude/claude-code-sessions/**/local_*.json
  • ~/.claude/projects/<project>/<session>.jsonl
  • ~/.config/Claude/claude-code-sessions/**/local_*.json
  • ~/.claude/projects/<project>/<session>.jsonl
local_*.json (titles), <session>.jsonl (transcripts)
Claude Coworksupported
  • %APPDATA%\Claude\local-agent-mode-sessions\**\local_<id>.json
  • %APPDATA%\Claude\local-agent-mode-sessions\**\local_<id>\.claude\projects\**\*.jsonl
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/**/local_<id>.json
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/**/local_<id>/.claude/projects/**/*.jsonl
  • ~/.config/Claude/local-agent-mode-sessions/**/local_<id>.json
  • ~/.config/Claude/local-agent-mode-sessions/**/local_<id>/.claude/projects/**/*.jsonl
local_<id>.json, local_<id>/.claude/projects/**/*.jsonl
Claude.ai (official data export)NETCODEX_CLAUDE_AI_EXPORTsupported
  • %USERPROFILE%\Downloads\data-*.zip
  • %USERPROFILE%\Downloads\<folder>\conversations.json
  • ~/Downloads/data-*.zip
  • ~/Downloads/<folder>/conversations.json
  • ~/Downloads/data-*.zip
  • ~/Downloads/<folder>/conversations.json
data-*.zip, conversations.json
GitHub Copilot Chatsupported
  • %APPDATA%\<editor>\User\workspaceStorage\<hash>\chatSessions\*.jsonl
  • %APPDATA%\<editor>\User\workspaceStorage\<hash>\chatSessions\*.json
  • %APPDATA%\<editor>\User\globalStorage\emptyWindowChatSessions\*.json
  • ~/Library/Application Support/<editor>/User/workspaceStorage/<hash>/chatSessions/*.jsonl
  • ~/Library/Application Support/<editor>/User/workspaceStorage/<hash>/chatSessions/*.json
  • ~/Library/Application Support/<editor>/User/globalStorage/emptyWindowChatSessions/*.json
  • ~/.config/<editor>/User/workspaceStorage/<hash>/chatSessions/*.jsonl
  • ~/.config/<editor>/User/workspaceStorage/<hash>/chatSessions/*.json
  • ~/.config/<editor>/User/globalStorage/emptyWindowChatSessions/*.json
chatSessions/*.jsonl, chatSessions/*.json
GitHub Copilot CLIsupported
  • %USERPROFILE%\.copilot\session-state\<id>\events.jsonl
  • ~/.copilot/session-state/<id>/events.jsonl
  • ~/.copilot/session-state/<id>/events.jsonl
events.jsonl
Cline / Roo Code / Kilo Codesupported
  • %APPDATA%\<editor>\User\globalStorage\saoudrizwan.claude-dev\tasks\<id>\api_conversation_history.json
  • %APPDATA%\<editor>\User\globalStorage\rooveterinaryinc.roo-cline\tasks\<id>\api_conversation_history.json
  • %APPDATA%\<editor>\User\globalStorage\kilocode.kilo-code\tasks\<id>\api_conversation_history.json
  • ~/Library/Application Support/<editor>/User/globalStorage/saoudrizwan.claude-dev/tasks/<id>/api_conversation_history.json
  • ~/Library/Application Support/<editor>/User/globalStorage/rooveterinaryinc.roo-cline/tasks/<id>/api_conversation_history.json
  • ~/Library/Application Support/<editor>/User/globalStorage/kilocode.kilo-code/tasks/<id>/api_conversation_history.json
  • ~/.config/<editor>/User/globalStorage/saoudrizwan.claude-dev/tasks/<id>/api_conversation_history.json
  • ~/.config/<editor>/User/globalStorage/rooveterinaryinc.roo-cline/tasks/<id>/api_conversation_history.json
  • ~/.config/<editor>/User/globalStorage/kilocode.kilo-code/tasks/<id>/api_conversation_history.json
api_conversation_history.json, ui_messages.json
Cursorsupported
  • %APPDATA%\Cursor\User\globalStorage\state.vscdb
  • ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb
  • ~/.config/Cursor/User/globalStorage/state.vscdb
state.vscdb
Gemini CLIsupported
  • %USERPROFILE%\.gemini\tmp\<hash>\chats\session-*.json
  • %USERPROFILE%\.gemini\tmp\<hash>\logs.json
  • ~/.gemini/tmp/<hash>/chats/session-*.json
  • ~/.gemini/tmp/<hash>/logs.json
  • ~/.gemini/tmp/<hash>/chats/session-*.json
  • ~/.gemini/tmp/<hash>/logs.json
session-*.json, logs.json
Continuesupported
  • %USERPROFILE%\.continue\sessions\*.json
  • ~/.continue/sessions/*.json
  • ~/.continue/sessions/*.json
<session>.json
AiderNETCODEX_AIDER_PATHSsupported
  • <repo>\.aider.chat.history.md
  • <repo>/.aider.chat.history.md
  • <repo>/.aider.chat.history.md
.aider.chat.history.md
OpenCodeOPENCODE_DATA_DIR, XDG_DATA_HOMEsupported
  • %USERPROFILE%\.local\share\opencode\opencode.db
  • %USERPROFILE%\.local\share\opencode\storage\session\<projectID>\<sessionID>.json
  • ~/.local/share/opencode/opencode.db
  • ~/.local/share/opencode/storage/session/<projectID>/<sessionID>.json
  • ~/.local/share/opencode/opencode.db
  • ~/.local/share/opencode/storage/session/<projectID>/<sessionID>.json
opencode.db, storage/session|message|part/*.json
Google Antigravitybest effort
  • %USERPROFILE%\.gemini\antigravity\conversation_summaries.db
  • %USERPROFILE%\.gemini\antigravity\conversations\*.db
  • ~/.gemini/antigravity/conversation_summaries.db
  • ~/.gemini/antigravity/conversations/*.db
  • ~/.gemini/antigravity/conversation_summaries.db
  • ~/.gemini/antigravity/conversations/*.db
conversation_summaries.db, conversations/*.db
Traeencrypted, not supported
  • %APPDATA%\Trae\ModularData\ai-agent\database.db
  • %APPDATA%\Trae CN\ModularData\ai-agent\database.db
  • ~/Library/Application Support/Trae/ModularData/ai-agent/database.db
  • ~/Library/Application Support/Trae CN/ModularData/ai-agent/database.db
  • ~/.config/Trae/ModularData/ai-agent/database.db
  • ~/.config/Trae CN/ModularData/ai-agent/database.db
Encrypted: cannot be exported.
Windsurfencrypted, not supported
  • %USERPROFILE%\.codeium\windsurf\cascade\*.pb
  • ~/.codeium/windsurf/cascade/*.pb
  • ~/.codeium/windsurf/cascade/*.pb
Encrypted: cannot be exported.
What to import, tool by tool

Questions before you start

Do my conversations leave my computer?

No. NetCodex runs on your computer and reads each tool's chat history in place. Exports are written to a folder you choose. There is no account and no upload.

Which AI tools are supported?

Codex, Claude Code, Claude Desktop, Claude.ai exports, GitHub Copilot Chat and CLI, Cline, Cursor, Gemini CLI, Continue, Aider and Antigravity. Windsurf and Trae encrypt their history, so they cannot be read.

What is the readable view?

It retells a conversation in plain language: what you asked, what the assistant did and the result, without raw tool output. The original view keeps every message exactly as it was saved.

Which formats can I export?

Markdown, PDF, HTML and Quarkdown, each in the template you choose. Quarkdown files need the free Quarkdown program on your computer.

How much does it cost?

Nothing. NetCodex is free software under the MIT license.

Export your first conversation today.

Download the app, open it, and your chats are already listed.