{"id":30805533,"url":"https://github.com/aaronsb/llmchat-knowledge-converter","last_synced_at":"2025-09-06T00:58:49.522Z","repository":{"id":303660674,"uuid":"1016243893","full_name":"aaronsb/llmchat-knowledge-converter","owner":"aaronsb","description":"A converter toolkit that takes an Anthropic Claude account message history export and converts it into an Obsidian consumable knowledge graph","archived":false,"fork":false,"pushed_at":"2025-07-11T14:37:08.000Z","size":1828,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-11T16:44:47.110Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aaronsb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-08T17:51:02.000Z","updated_at":"2025-07-11T14:37:11.000Z","dependencies_parsed_at":"2025-07-08T19:45:41.856Z","dependency_job_id":"5bebefd2-10dd-4a55-9d42-0eda970433fb","html_url":"https://github.com/aaronsb/llmchat-knowledge-converter","commit_stats":null,"previous_names":["aaronsb/claude-knowledge-converter","aaronsb/llmchat-knowledge-converter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aaronsb/llmchat-knowledge-converter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronsb%2Fllmchat-knowledge-converter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronsb%2Fllmchat-knowledge-converter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronsb%2Fllmchat-knowledge-converter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronsb%2Fllmchat-knowledge-converter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aaronsb","download_url":"https://codeload.github.com/aaronsb/llmchat-knowledge-converter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronsb%2Fllmchat-knowledge-converter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273842827,"owners_count":25177921,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-06T00:58:46.604Z","updated_at":"2025-09-06T00:58:49.466Z","avatar_url":"https://github.com/aaronsb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LLM Chat Knowledge Converter 🧠\n\n![Obsidian Graph View of Claude Conversations](claude-data-graph.png)\n\n**Transform your AI conversations into a personal knowledge graph.**\n\nThis toolkit converts LLM chat exports (Claude, ChatGPT) into an interconnected knowledge base you can explore, search, and build upon. Your conversations with AI become a living library of insights, code snippets, and ideas - visualized as a knowledge graph in Obsidian.\n\n## 🔗 Power Up with Obsidian MCP Plugin\n\nTake your knowledge graph to the next level with the [Obsidian MCP Plugin](https://github.com/aaronsb/obsidian-mcp-plugin):\n\nThis companion tool lets Claude directly interact with your converted knowledge base:\n- **Search and read** through your entire conversation history\n- **Create new notes** that reference past discussions\n- **Build connections** between different topics and conversations\n- **Ask Claude questions** about your own knowledge graph\n\nTogether, these tools create a living knowledge system where your AI conversations become an active, searchable resource!\n\n## 🎯 How It Works\n\n```mermaid\ngraph TD\n    A[Export Chat History] --\u003e|Claude/ChatGPT| B[Download Files]\n    B --\u003e C[Extract to input/]\n    C --\u003e D[Run Converter Script]\n    D --\u003e E[Interactive Configuration]\n    E --\u003e|Choose Colors \u0026 Groups| F[Process Conversations]\n    F --\u003e G[Generate Knowledge Graph]\n    G --\u003e H[Move to Obsidian Vault]\n    H --\u003e I[Explore Your Knowledge!]\n    \n    style A fill:#e74c3c,stroke:#333,stroke-width:2px,color:#fff\n    style B fill:#3498db,stroke:#333,stroke-width:2px,color:#fff\n    style C fill:#f39c12,stroke:#333,stroke-width:2px,color:#fff\n    style D fill:#27ae60,stroke:#333,stroke-width:2px,color:#fff\n    style E fill:#9b59b6,stroke:#333,stroke-width:2px,color:#fff\n    style F fill:#1abc9c,stroke:#333,stroke-width:2px,color:#fff\n    style G fill:#e67e22,stroke:#333,stroke-width:2px,color:#fff\n    style H fill:#34495e,stroke:#333,stroke-width:2px,color:#fff\n    style I fill:#16a085,stroke:#333,stroke-width:2px,color:#fff\n```\n\n## 🚀 Quick Start Guide\n\n### Prerequisites\n- A Mac, Linux, or Windows (with WSL) computer\n- Basic familiarity with terminal/command line\n- [Obsidian](https://obsidian.md/) installed (free note-taking app)\n\n### Step 1: Get the Converter\n\nOpen your terminal and run:\n```bash\ngit clone https://github.com/aaronsb/llmchat-knowledge-converter.git\ncd llmchat-knowledge-converter\n```\n\n### Step 2: Export Your Chat History\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📘 For Claude Users\u003c/b\u003e\u003c/summary\u003e\n\n1. Go to https://claude.ai/settings\n2. Download your data export\n3. You'll receive three files:\n   - `conversations.json`\n   - `projects.json`\n   - `users.json`\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📗 For ChatGPT Users\u003c/b\u003e\u003c/summary\u003e\n\n1. Sign in to ChatGPT\n2. Click your profile icon (top right corner)\n3. Click Settings → Data controls\n4. Under \"Export data\" click Export\n5. Click \"Confirm export\" on the confirmation screen\n6. Check your email for the download link (expires in 24 hours!)\n7. Download and unzip the file\n\u003c/details\u003e\n\n### Step 3: Place Files in Input Folder\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📘 For Claude Users\u003c/b\u003e\u003c/summary\u003e\n\nCopy all three JSON files into the `input/` folder:\n```bash\ncp ~/Downloads/conversations.json input/\ncp ~/Downloads/projects.json input/\ncp ~/Downloads/users.json input/\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📗 For ChatGPT Users\u003c/b\u003e\u003c/summary\u003e\n\nExtract the entire ZIP contents into the `input/` folder:\n```bash\nunzip ~/Downloads/your-chatgpt-export.zip -d input/\n```\n\nThis will extract:\n- `conversations.json`\n- Any images from DALL-E or uploads\n- Other export data\n\u003c/details\u003e\n\n### Step 4: Run the Converter\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📘 For Claude Users\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n./convert_claude_history.sh my_claude_vault\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📗 For ChatGPT Users\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n./convert_chatgpt_history.sh my_chatgpt_vault\n```\n\u003c/details\u003e\n\nThe converter will:\n1. ✅ Set up Python environment automatically\n2. ✅ Ask you to confirm before proceeding\n3. ✅ Process your conversations (may take a few minutes)\n4. ✅ Ask about color grouping for visualization (just press Enter for defaults!)\n\n### Step 5: Move to Your Obsidian Vault Location\n\n**Important**: The output folder is in a temporary location. Move it to where you keep your Obsidian vaults:\n\n```bash\nmv output/my_claude_vault ~/Documents/ObsidianVaults/\n```\n\n### Step 6: Open in Obsidian\n\n1. Open Obsidian\n2. Click \"Open folder as vault\"\n3. Select your moved folder\n4. Click the Graph View button to see your knowledge network!\n\n## 🎨 Interactive Configuration\n\nDuring conversion, you'll customize how your knowledge graph looks:\n\n```mermaid\ngraph LR\n    A[Tag Groups] --\u003e|Color by conversation tags| B[Choose Water Level]\n    B --\u003e|How many tags to show| C[Pick Color Scheme]\n    \n    D[File Patterns] --\u003e|Color by file types| E[Choose Water Level]\n    E --\u003e|How many patterns to show| F[Pick Color Scheme]\n    \n    C --\u003e G[Beautiful Graph!]\n    F --\u003e G\n    \n    style A fill:#3498db,stroke:#333,stroke-width:2px,color:#fff\n    style D fill:#e74c3c,stroke:#333,stroke-width:2px,color:#fff\n    style B fill:#95a5a6,stroke:#333,stroke-width:2px,color:#fff\n    style E fill:#95a5a6,stroke:#333,stroke-width:2px,color:#fff\n    style C fill:#9b59b6,stroke:#333,stroke-width:2px,color:#fff\n    style F fill:#f39c12,stroke:#333,stroke-width:2px,color:#fff\n    style G fill:#27ae60,stroke:#333,stroke-width:2px,color:#fff\n```\n\n### Water Levels Explained\n\nThink of water levels like a filter - higher water = fewer items shown:\n- **100** = Only the most common tags (top ~20)\n- **30** = Balanced view (default, ~300 tags)\n- **10** = Show many tags (~1000+)\n\n## 📁 What Gets Created\n\n```\nyour_vault_name/\n├── 📅 conversations/              # Organized by date\n│   └── 2024/\n│       └── 03-March/\n│           └── 15/\n│               └── Your_Conversation/\n│                   ├── 📄 metadata.json\n│                   ├── 💬 messages/\n│                   ├── 📝 markdown_files.md\n│                   ├── 💻 code_snippets/\n│                   └── 🖼️ images/\n├── 📊 conversations_index.json    # Searchable index\n└── ⚙️ .obsidian/                 # Graph settings\n    └── graph.json\n```\n\n## 🌟 Why Use This?\n\nYour AI conversations contain:\n- **🔧 Solved Problems**: Technical solutions and debugging sessions\n- **💻 Generated Code**: Scripts, functions, and examples  \n- **💡 Creative Work**: Ideas, writing, and brainstorming\n- **📚 Learning Notes**: Explanations and tutorials\n\nThis tool helps you:\n- **💾 Preserve Knowledge**: Don't lose valuable insights\n- **🔍 Discover Patterns**: See connections between topics\n- **🏗️ Build on Past Work**: Reference previous solutions\n- **🧠 Create a Second Brain**: Queryable knowledge repository\n\n## ✨ Features\n\n- 📁 **Smart Organization** - Date-based folder structure\n- 🏷️ **Auto-Tagging** - TF-IDF keyword extraction\n- 📝 **Markdown Extraction** - Preserves formatting\n- 💻 **Code Extraction** - Separate files with syntax\n- 🖼️ **Image Support** - Preserves DALL-E creations\n- 🎨 **Visual Graphs** - Color-coded knowledge networks\n- 🔍 **Full Search** - Find anything instantly\n\n## 🛠️ Troubleshooting\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e❌ \"No export files found\" error\u003c/b\u003e\u003c/summary\u003e\n\nMake sure you've copied/extracted files to the `input/` folder. For ChatGPT, extract the entire ZIP contents, not just conversations.json.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e❌ \"Permission denied\" error\u003c/b\u003e\u003c/summary\u003e\n\nMake the scripts executable:\n```bash\nchmod +x convert_*.sh\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e❌ Graph view looks empty\u003c/b\u003e\u003c/summary\u003e\n\n1. Enable Graph View in Obsidian settings\n2. Check the filters in Graph View settings\n3. Make sure you moved the vault folder (not left it in output/)\n\u003c/details\u003e\n\n## 📋 Requirements\n\n- Python 3.6 or higher\n- Mac, Linux, or Windows with WSL\n- About 2-3x your export size in free disk space\n\n## 📚 Advanced Usage\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCustomization Options\u003c/b\u003e\u003c/summary\u003e\n\n- Edit `src/tag_exclusions.txt` to filter common words\n- Modify color schemes in `src/tag_analyzer.py`\n- Adjust keyword extraction in converter scripts\n- Filter specific conversations by date or content\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eBatch Processing\u003c/b\u003e\u003c/summary\u003e\n\nProcess multiple exports by creating separate output folders:\n```bash\n./convert_claude_history.sh claude_work_chats\n./convert_claude_history.sh claude_personal_chats\n```\n\u003c/details\u003e\n\n## 📄 License\n\nMIT - Feel free to modify and share!\n\n---\n\n*Built with ❤️ for the AI-assisted knowledge worker*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronsb%2Fllmchat-knowledge-converter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faaronsb%2Fllmchat-knowledge-converter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronsb%2Fllmchat-knowledge-converter/lists"}