letta/navigating-chatgpt-history/SKILL.md
Navigates archived ChatGPT or Claude-style conversation exports and a MemFS reference archive on demand. Use when recalling what a past assistant knew, searching old conversations, rendering specific chats, seeding reference memory from export sidecars, or mining historical context without doing a full import.
npx skillsauth add letta-ai/skills navigating-chatgpt-historyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when the goal is referenceable history, not immediate full ingestion.
memories.json or projects.jsonTreat the export as an archive you can navigate later.
reference/chatgpt/index.mdscripts/inspect-export.pyreference/chatgpt/ firstsystem/human.md only when the fact is durable, current, and worth carrying every turnDo not re-digest the entire archive unless the user explicitly wants that.
Keep the external-memory archive under reference/chatgpt/.
Recommended files:
reference/chatgpt/index.md — source exports, schema notes, known paths, retrieval strategyreference/chatgpt/export-YYYY-MM-DD.md — inventory and sidecar summary for one exportreference/chatgpt/chatgpt-memory-summary-YYYY-MM-DD.md — content from memories.jsonreference/chatgpt/projects-YYYY-MM-DD.md — projects sidecar summary when usefulreference/chatgpt/transcripts/NNN-slug.md — curated high-signal conversation summariesreference/chatgpt/notes/ — topic-specific notes mined laterPrefer progressive memory. Keep active memory small.
scripts/inspect-export.pyUse first. It inventories the export and reads sidecars such as memories.json, projects.json, and users.json.
python3 scripts/inspect-export.py <export-path>
python3 scripts/inspect-export.py <export-path> --output /tmp/export-summary.md
scripts/list-conversations.pyUse to browse by title, recency, or message count.
python3 scripts/list-conversations.py <export-path> --limit 25
python3 scripts/list-conversations.py <export-path> --title-contains Letta --sort messages
scripts/search-conversations.pyUse when titles are not enough.
python3 scripts/search-conversations.py <export-path> --query "Recovery Bench"
python3 scripts/search-conversations.py <export-path> --query TFCC --role user --limit 20
scripts/render-conversation.pyUse for one conversation once you know the index.
python3 scripts/render-conversation.py <export-path> --index 212
python3 scripts/render-conversation.py <export-path> --index 212 --compact-nontext --output /tmp/chat-212.md
scripts/render-range.pyUse only for focused batches after search narrows the field.
python3 scripts/render-range.py <export-path> --start-index 210 --end-index 220 --output-dir /tmp/chat-range
Before touching the raw export, check whether the archive already has:
If yes, use that first.
Run inspect-export.py to answer:
memories.json already contain a synthesized memory block?projects.json hold useful background?For large archives, this often answers the question before raw conversation mining is needed.
Prefer this sequence:
list-conversations.py for browsesearch-conversations.py for content lookuprender-conversation.py for deep readrender-range.py only when several adjacent conversations matterDo not render dozens of chats just because you can.
When a conversation matters, summarize it into:
reference/chatgpt/transcripts/ for high-signal conversation summariesreference/chatgpt/notes/ for topic notesOnly then decide whether anything belongs in system/human.md.
Promote to active memory only when the fact is:
Everything else can stay in reference/chatgpt/.
Read references/repository-layout.md when creating or extending the MemFS archive layout.
This skill is designed for newer exports that contain conversations.json with chat_messages, while still handling older shard-based exports with conversations-*.json and mapping graphs.
When in doubt, start with inspect-export.py instead of assuming the schema.
testing
Migrates deprecated Letta Filesystem folders/files to MemFS using markdown document corpora, chunking, local lexical search, and QMD semantic search via the memfs-search skill. Use when replacing folders.files.upload, working with PDFs or document QA, or emulating open_file, grep_file, and search_file behavior.
data-ai
Configures Letta agent compaction settings and custom summarization prompts. Use when a user asks to change an agent's compaction prompt, improve summaries after context eviction, tune sliding-window or all-message compaction, or design companion/coding-agent continuity summaries.
development
Semantic search over agent memory files. Use when you need to find conceptually related memory blocks, discover forgotten reference files, check what you already know before creating new memory, or search beyond exact keyword matching. Currently supports QMD (local, no API keys).
development
Build and maintain a persistent visual identity for your agent using Flux Kontext Pro. Use when the user asks the agent to generate selfies, avatars, character art, or any image that should look like the same person across generations.