
Skill
navigating-chatgpt-history
navigate and search conversation history
Description
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.
SKILL.md
Navigating Chat History Without Digesting Everything
Use this skill when the goal is referenceable history, not immediate full ingestion.
Good fits
- search my exported ChatGPT history for a topic
- figure out what the old assistant knew about me
- render the conversation where we discussed X
- keep this export around as external memory and only mine it when needed
- seed MemFS from
memories.jsonorprojects.json
Default posture
Treat the export as an archive you can navigate later.
- read the MemFS archive index first if it exists:
reference/chatgpt/index.md - inspect the export with
scripts/inspect-export.py - search or list before rendering broad ranges
- preserve findings to
reference/chatgpt/first - promote to
system/human.mdonly when the fact is durable, current, and worth carrying every turn
Do not re-digest the entire archive unless the user explicitly wants that.
Archive layout in MemFS
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 frommemories.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 later
Prefer progressive memory. Keep active memory small.
Scripts
scripts/inspect-export.py
Use 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.py
Use 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.py
Use 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.py
Use 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.py
Use 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
Workflow
1. Anchor yourself in existing MemFS notes
Before touching the raw export, check whether the archive already has:
- an export summary
- a prior project summary
- curated transcripts
- a note on the same topic
If yes, use that first.
2. Inspect before mining
Run inspect-export.py to answer:
- what export shape is this?
- how many conversations are there?
- does
memories.jsonalready contain a synthesized memory block? - does
projects.jsonhold useful background?
For large archives, this often answers the question before raw conversation mining is needed.
3. Narrow, then render
Prefer this sequence:
list-conversations.pyfor browsesearch-conversations.pyfor content lookuprender-conversation.pyfor deep readrender-range.pyonly when several adjacent conversations matter
Do not render dozens of chats just because you can.
4. Write findings to progressive memory first
When a conversation matters, summarize it into:
reference/chatgpt/transcripts/for high-signal conversation summariesreference/chatgpt/notes/for topic notes
Only then decide whether anything belongs in system/human.md.
5. Promotion rule
Promote to active memory only when the fact is:
- explicit or strongly evidenced
- current rather than historical-only
- likely useful across many future conversations
- low-risk to keep in context every turn
Everything else can stay in reference/chatgpt/.
Reference files
Read references/repository-layout.md when creating or extending the MemFS archive layout.
Notes on export formats
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.
More skills from the skills repository
View all 45 skills1password
manage secrets with 1Password CLI
Jul 13AuthenticationCLISecurityagent-slack
automate Slack messaging and workflows
Jul 13AutomationCLIMessagingSlackai-news
fetch and summarize AI news
Jul 13CommunicationsLLMResearchSummarizationcreating-letta-code-channels
build and debug Letta Code channels
Jul 13AgentsAPI DevelopmentMessagingSlackdatadog
query Datadog observability data
Jul 13DatadogLogsMetricsMonitoring +1discord
automate Discord server and channel tasks
Jul 13AutomationCLIMessaging
More from Letta
View publisheracquiring-skills
discover and install agent skills
letta-code
Jul 13AgentsAutomationGitHubContext Doctor
repair system prompt and memory degradation
letta-code
Jul 13AgentsAI ContextDebuggingconverting-mcps-to-skills
connect MCP servers to create skills
letta-code
Jul 13AgentsAutomationMCPcreating-mods
create and edit Letta Code mods
letta-code
Jul 13AgentsAutomationCodingcreating-skills
create and update agent skills
letta-code
Jul 13AgentsDocumentationPlugin Developmentcustomizing-commands
create and manage Letta slash commands
letta-code
Jul 13AgentsAutomationCLI