[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-teest114514--chatlog_alpha":3,"tool-teest114514--chatlog_alpha":65},[4,18,28,37,45,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":34,"last_commit_at":35,"category_tags":36,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,27],{"id":38,"name":39,"github_repo":40,"description_zh":41,"stars":42,"difficulty_score":24,"last_commit_at":43,"category_tags":44,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[27,13,15,14],{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[27,14],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":24,"last_commit_at":59,"category_tags":60,"status":17},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85267,"2026-04-18T11:00:28",[15,16,61,27,13,62,63,14,64],"视频","其他","语言模型","音频",{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":77,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":77,"owner_website":77,"owner_url":79,"languages":80,"stars":115,"forks":116,"last_commit_at":117,"license":118,"difficulty_score":119,"env_os":120,"env_gpu":121,"env_ram":121,"env_deps":122,"category_tags":128,"github_topics":77,"view_count":24,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":129,"updated_at":130,"faqs":131,"releases":172},9902,"teest114514\u002Fchatlog_alpha","chatlog_alpha","原 [chatlog]项目（一个微信数据库读取及提供mcp服务开源软件）的二次开发，会尽可能同步最新开源解密源码","chatlog_alpha 是一款专为 macOS 用户打造的微信 4.x 聊天记录本地查询与分析工具。它解决了在苹果系统上难以直接读取和检索加密微信数据库的痛点，让用户无需依赖外部插件即可轻松查看历史消息、联系人及多媒体文件。\n\n这款工具特别适合开发者、技术研究人员以及需要深度管理个人聊天数据的极客用户。其核心亮点在于内置了自动提取解密密钥（Data Key 与 Image Key）的能力：通过重启微信自动捕获密钥，或利用内存扫描技术直接获取，完全摆脱了对 Windows 环境或第三方 DLL 文件的依赖。此外，chatlog_alpha 不仅提供直观的终端界面（TUI），还开放了 HTTP API 和 MCP（模型上下文协议）接口，支持以 YAML 或 JSON 格式输出数据，方便用户将其集成到自动化工作流或 AI 智能体中。\n\n需要注意的是，由于涉及进程内存读取，使用该工具通常需要管理员权限，并建议在关闭系统完整性保护（SIP）的环境下运行以获得最佳稳定性。所有数据处理均在本地完成，充分保障了用户的隐私安全。","# chatlog_alpha\n\n微信 4.x 聊天记录本地查询工具（macOS），支持：\n- 重启微信后自动提取 Data Key（内置实现，不依赖外部 DLL）\n- 获取 Image Key（内存扫描）\n- 查询 `db_storage` 下多库数据\n- 提供 HTTP + MCP 接口（wx-cli 风格）\n\n## ⚠ 方案 1（可执行文件自动 root）必读\n\n若你选择“方案 1（setuid root）”，请在编译后执行：\n\n```bash\nBIN_PATH=\"\u002F你的项目路径\u002Fdist\u002Fchatlog-mac\"\nsudo chown root:wheel \"$BIN_PATH\"\nsudo chmod 4755 \"$BIN_PATH\"\nls -l \"$BIN_PATH\"\n```\n\n或者在项目根目录直接执行（自动取当前目录）：\n\n```bash\nBIN_PATH=\"$(pwd)\u002Fdist\u002Fchatlog-mac\"\nsudo chown root:wheel \"$BIN_PATH\"\nsudo chmod 4755 \"$BIN_PATH\"\nls -l \"$BIN_PATH\"\n```\n\n看到权限类似 `-rwsr-xr-x` 说明生效。每次重新编译后都需要重新执行上述命令。\n\n> 重要：仅有 root 权限仍可能不够。若要稳定进行内存扫描（取 Data Key \u002F Image Key），通常还需要先关闭 SIP（System Integrity Protection）。\n\n## 当前状态（2026-04）\n\n- 已移除 Windows 支持与外部 `wx_key.dll` 依赖\n- macOS V4 已接入内置 key 扫描与 `all_keys.json` 回退\u002F兼容流程\n- HTTP 接口默认输出 `YAML`，可通过 `format=json` 输出 JSON\n- 旧接口（如 `\u002Fapi\u002Fv1\u002Fchatlog`、`\u002Fapi\u002Fv1\u002Fsession`、`\u002Fapi\u002Fv1\u002Fcontact`、`\u002Fapi\u002Fv1\u002Fchatroom`、`\u002Fapi\u002Fv1\u002Fsns`）已移除\n\n## 运行环境\n\n- Go 1.22+（建议）\n- 微信 4.x\n- 平台：macOS\n\nmacOS 额外要求：\n- 建议使用 `sudo` 启动程序（内存读取依赖 `task_for_pid` 权限）\n- 建议提前关闭 SIP（否则即使 root 也可能无法读取微信进程内存）\n- 需要启用 `cgo`（未启用时无法进行 macOS 内存扫描）\n\n## 快速开始\n\n### 1) 启动 TUI\n\n```bash\ngo run .\n```\n\n或编译后运行：\n\n```bash\ngo build -o chatlog .\u002Fcmd\u002Fchatlog\n.\u002Fchatlog\n```\n\n### 2) 推荐操作顺序（macOS）\n\n1. 在 TUI 点击“重启并获取密钥”\n2. 等微信重启后完成登录，并打开聊天窗口\n3. 程序会优先尝试：\n   - 读取已存在 `all_keys.json`\n   - 或执行内存扫描并写入\u002F更新 `all_keys.json`\n4. 点击“解密数据”后可启动 HTTP 服务查询\n\n## `all_keys.json` 说明\n\n`all_keys.json` 用于保存每个加密数据库文件对应的 `enc_key`，典型内容如下：\n\n```json\n{\n  \"message\u002Fmessage_0.db\": { \"enc_key\": \"...\" },\n  \"contact\u002Fcontact.db\": { \"enc_key\": \"...\" }\n}\n```\n\n作用：\n- key 扫描结果持久化\n- 程序重启后可直接复用\n- 与 `wechat-decrypt` \u002F `wx-cli` 流程兼容\n\n常见路径（按账号目录）：\n- `\u003Cdata-dir>\u002Fall_keys.json`\n- `\u003Cdata-dir>\u002F..\u002Fall_keys.json`\n\n## 常用命令（CLI）\n\n### 启动 HTTP 服务\n\n```bash\nchatlog server -a :5030 -p darwin -v 4 -d \u003Cwechat_data_dir>\n```\n\n### 手动解密\n\n```bash\nchatlog decrypt -p darwin -v 4 -d \u003Cwechat_data_dir> -k \u003Cdata_key>\n```\n\n### 批量解密 `.dat` 图片\n\n```bash\nchatlog batch-decrypt --data-dir \u003Cwechat_data_dir> --data-key \u003Cdata_key> --platform darwin --version 4\n```\n\n### macOS key helper\n\n```bash\nchatlog mac-key-helper --pid \u003Cwechat_pid> --data-dir \u003Cwechat_data_dir>\n```\n\n## HTTP 接口\n\n基础：\n- `GET \u002Fhealth`\n- `GET \u002Fapi\u002Fv1\u002Fping`\n\n媒体：\n- `GET \u002Fimage\u002F*key`\n- `GET \u002Fvideo\u002F*key`\n- `GET \u002Ffile\u002F*key`\n- `GET \u002Fvoice\u002F*key`\n- `GET \u002Fdata\u002F*path`\n\nwx-cli 兼容查询：\n- `GET \u002Fapi\u002Fv1\u002Fsessions`\n- `GET \u002Fapi\u002Fv1\u002Fhistory`\n- `GET \u002Fapi\u002Fv1\u002Fsearch`\n- `GET \u002Fapi\u002Fv1\u002Funread`\n- `GET \u002Fapi\u002Fv1\u002Fmembers`\n- `GET \u002Fapi\u002Fv1\u002Fnew_messages`\n- `GET \u002Fapi\u002Fv1\u002Fstats`\n- `GET \u002Fapi\u002Fv1\u002Ffavorites`\n- `GET \u002Fapi\u002Fv1\u002Fsns_notifications`\n- `GET \u002Fapi\u002Fv1\u002Fsns_feed`\n- `GET \u002Fapi\u002Fv1\u002Fsns_search`\n- `GET \u002Fapi\u002Fv1\u002Fcontacts`\n- `GET \u002Fapi\u002Fv1\u002Fchatrooms`\n\n数据库调试：\n- `GET \u002Fapi\u002Fv1\u002Fdb`\n- `GET \u002Fapi\u002Fv1\u002Fdb\u002Ftables`\n- `GET \u002Fapi\u002Fv1\u002Fdb\u002Fdata`\n- `GET \u002Fapi\u002Fv1\u002Fdb\u002Fquery`\n- `POST \u002Fapi\u002Fv1\u002Fcache\u002Fclear`\n\n### 输出格式\n\n默认：`YAML`\n\n可选：`JSON`\n\n示例：\n\n```bash\ncurl \"http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fhistory?chat=xxx&limit=50\"\ncurl \"http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fhistory?chat=xxx&limit=50&format=json\"\n```\n\n## MCP\n\n端点：\n- `ANY \u002Fmcp`\n- `ANY \u002Fsse`\n- `ANY \u002Fmessage`\n\n当前 MCP Tools：\n- `current_time`\n- `get_media_content`\n- `ocr_image_message`\n- `send_webhook_notification`\n- `get_user_profile`\n- `search_shared_files`\n- `wx_ping`\n- `wx_contacts`\n- `wx_chatrooms`\n- `wx_sessions`\n- `wx_history`\n- `wx_search`\n- `wx_unread`\n- `wx_members`\n- `wx_new_messages`\n- `wx_stats`\n- `wx_favorites`\n- `wx_sns_notifications`\n- `wx_sns_feed`\n- `wx_sns_search`\n\n## macOS 排障\n\n### 1) 提示权限不足 \u002F `task_for_pid` 失败\n\n现象：\n- `scan memory failed`\n- `需要 root + task_for_pid 权限`\n\n处理：\n- 使用 `sudo` 启动程序\n- 确保微信已登录并进入聊天界面后再触发扫描\n- 若仍失败，优先走 `all_keys.json` 方式（先成功生成一次）\n\n### 2) 提示未找到 `all_keys.json`\n\n处理：\n- 先执行“重启并获取密钥”完成一次扫描\n- 确认账号目录下已生成 `all_keys.json`\n- 检查文件读写权限\n\n### 3) 图片密钥 60 秒超时\n\n处理：\n- 登录微信后打开任意聊天图片，触发 `*_t.dat` 缓存\n- 再次点击“获取图片密钥”\n\n## 目录结构（核心）\n\n- `cmd\u002Fchatlog`：CLI 入口\n- `internal\u002Fchatlog`：TUI、流程编排、HTTP\u002FMCP\n- `internal\u002Fwechat\u002Fkey`：平台密钥提取实现\n- `internal\u002Fwechat\u002Fdecrypt`：数据库解密实现\n- `internal\u002Fwechatdb`：数据库访问与查询\n\n## 安全与隐私\n\n- 所有处理在本地完成\n- 请妥善保管解密后的数据与密钥文件\n\n## 免责声明\n\n详见 [DISCLAIMER.md](.\u002FDISCLAIMER.md)\n","# chatlog_alpha\n\n微信 4.x 聊天记录本地查询工具（macOS），支持：\n- 重启微信后自动提取 Data Key（内置实现，不依赖外部 DLL）\n- 获取 Image Key（内存扫描）\n- 查询 `db_storage` 下多库数据\n- 提供 HTTP + MCP 接口（wx-cli 风格）\n\n## ⚠ 方案 1（可执行文件自动 root）必读\n\n若你选择“方案 1（setuid root）”，请在编译后执行：\n\n```bash\nBIN_PATH=\"\u002F你的项目路径\u002Fdist\u002Fchatlog-mac\"\nsudo chown root:wheel \"$BIN_PATH\"\nsudo chmod 4755 \"$BIN_PATH\"\nls -l \"$BIN_PATH\"\n```\n\n或者在项目根目录直接执行（自动取当前目录）：\n\n```bash\nBIN_PATH=\"$(pwd)\u002Fdist\u002Fchatlog-mac\"\nsudo chown root:wheel \"$BIN_PATH\"\nsudo chmod 4755 \"$BIN_PATH\"\nls -l \"$BIN_PATH\"\n```\n\n看到权限类似 `-rwsr-xr-x` 说明生效。每次重新编译后都需要重新执行上述命令。\n\n> 重要：仅有 root 权限仍可能不够。若要稳定进行内存扫描（取 Data Key \u002F Image Key），通常还需要先关闭 SIP（System Integrity Protection）。\n\n## 当前状态（2026-04）\n\n- 已移除 Windows 支持与外部 `wx_key.dll` 依赖\n- macOS V4 已接入内置 key 扫描与 `all_keys.json` 回退\u002F兼容流程\n- HTTP 接口默认输出 `YAML`，可通过 `format=json` 输出 JSON\n- 旧接口（如 `\u002Fapi\u002Fv1\u002Fchatlog`、`\u002Fapi\u002Fv1\u002Fsession`、`\u002Fapi\u002Fv1\u002Fcontact`、`\u002Fapi\u002Fv1\u002Fchatroom`、`\u002Fapi\u002Fv1\u002Fsns`）已移除\n\n## 运行环境\n\n- Go 1.22+（建议）\n- 微信 4.x\n- 平台：macOS\n\nmacOS 额外要求：\n- 建议使用 `sudo` 启动程序（内存读取依赖 `task_for_pid` 权限）\n- 建议提前关闭 SIP（否则即使 root 也可能无法读取微信进程内存）\n- 需要启用 `cgo`（未启用时无法进行 macOS 内存扫描）\n\n## 快速开始\n\n### 1) 启动 TUI\n\n```bash\ngo run .\n```\n\n或编译后运行：\n\n```bash\ngo build -o chatlog .\u002Fcmd\u002Fchatlog\n.\u002Fchatlog\n```\n\n### 2) 推荐操作顺序（macOS）\n\n1. 在 TUI 点击“重启并获取密钥”\n2. 等微信重启后完成登录，并打开聊天窗口\n3. 程序会优先尝试：\n   - 读取已存在 `all_keys.json`\n   - 或执行内存扫描并写入\u002F更新 `all_keys.json`\n4. 点击“解密数据”后可启动 HTTP 服务查询\n\n## `all_keys.json` 说明\n\n`all_keys.json` 用于保存每个加密数据库文件对应的 `enc_key`，典型内容如下：\n\n```json\n{\n  \"message\u002Fmessage_0.db\": { \"enc_key\": \"...\" },\n  \"contact\u002Fcontact.db\": { \"enc_key\": \"...\" }\n}\n```\n\n作用：\n- key 扫描结果持久化\n- 程序重启后可直接复用\n- 与 `wechat-decrypt` \u002F `wx-cli` 流程兼容\n\n常见路径（按账号目录）：\n- `\u003Cdata-dir>\u002Fall_keys.json`\n- `\u003Cdata-dir>\u002F..\u002Fall_keys.json`\n\n## 常用命令（CLI）\n\n### 启动 HTTP 服务\n\n```bash\nchatlog server -a :5030 -p darwin -v 4 -d \u003Cwechat_data_dir>\n```\n\n### 手动解密\n\n```bash\nchatlog decrypt -p darwin -v 4 -d \u003Cwechat_data_dir> -k \u003Cdata_key>\n```\n\n### 批量解密 `.dat` 图片\n\n```bash\nchatlog batch-decrypt --data-dir \u003Cwechat_data_dir> --data-key \u003Cdata_key> --platform darwin --version 4\n```\n\n### macOS key helper\n\n```bash\nchatlog mac-key-helper --pid \u003Cwechat_pid> --data-dir \u003Cwechat_data_dir>\n```\n\n## HTTP 接口\n\n基础：\n- `GET \u002Fhealth`\n- `GET \u002Fapi\u002Fv1\u002Fping`\n\n媒体：\n- `GET \u002Fimage\u002F*key`\n- `GET \u002Fvideo\u002F*key`\n- `GET \u002Ffile\u002F*key`\n- `GET \u002Fvoice\u002F*key`\n- `GET \u002Fdata\u002F*path`\n\nwx-cli 兼容查询：\n- `GET \u002Fapi\u002Fv1\u002Fsessions`\n- `GET \u002Fapi\u002Fv1\u002Fhistory`\n- `GET \u002Fapi\u002Fv1\u002Fsearch`\n- `GET \u002Fapi\u002Fv1\u002Funread`\n- `GET \u002Fapi\u002Fv1\u002Fmembers`\n- `GET \u002Fapi\u002Fv1\u002Fnew_messages`\n- `GET \u002Fapi\u002Fv1\u002Fstats`\n- `GET \u002Fapi\u002Fv1\u002Ffavorites`\n- `GET \u002Fapi\u002Fv1\u002Fsns_notifications`\n- `GET \u002Fapi\u002Fv1\u002Fsns_feed`\n- `GET \u002Fapi\u002Fv1\u002Fsns_search`\n- `GET \u002Fapi\u002Fv1\u002Fcontacts`\n- `GET \u002Fapi\u002Fv1\u002Fchatrooms`\n\n数据库调试：\n- `GET \u002Fapi\u002Fv1\u002Fdb`\n- `GET \u002Fapi\u002Fv1\u002Fdb\u002Ftables`\n- `GET \u002Fapi\u002Fv1\u002Fdb\u002Fdata`\n- `GET \u002Fapi\u002Fv1\u002Fdb\u002Fquery`\n- `POST \u002Fapi\u002Fv1\u002Fcache\u002Fclear`\n\n### 输出格式\n\n默认：`YAML`\n\n可选：`JSON`\n\n示例：\n\n```bash\ncurl \"http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fhistory?chat=xxx&limit=50\"\ncurl \"http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fhistory?chat=xxx&limit=50&format=json\"\n```\n\n## MCP\n\n端点：\n- `ANY \u002Fmcp`\n- `ANY \u002Fsse`\n- `ANY \u002Fmessage`\n\n当前 MCP Tools：\n- `current_time`\n- `get_media_content`\n- `ocr_image_message`\n- `send_webhook_notification`\n- `get_user_profile`\n- `search_shared_files`\n- `wx_ping`\n- `wx_contacts`\n- `wx_chatrooms`\n- `wx_sessions`\n- `wx_history`\n- `wx_search`\n- `wx_unread`\n- `wx_members`\n- `wx_new_messages`\n- `wx_stats`\n- `wx_favorites`\n- `wx_sns_notifications`\n- `wx_sns_feed`\n- `wx_sns_search`\n\n## macOS 排障\n\n### 1) 提示权限不足 \u002F `task_for_pid` 失败\n\n现象：\n- `scan memory failed`\n- `需要 root + task_for_pid 权限`\n\n处理：\n- 使用 `sudo` 启动程序\n- 确保微信已登录并进入聊天界面后再触发扫描\n- 若仍失败，优先走 `all_keys.json` 方式（先成功生成一次）\n\n### 2) 提示未找到 `all_keys.json`\n\n处理：\n- 先执行“重启并获取密钥”完成一次扫描\n- 确认账号目录下已生成 `all_keys.json`\n- 检查文件读写权限\n\n### 3) 图片密钥 60 秒超时\n\n处理：\n- 登录微信后打开任意聊天图片，触发 `*_t.dat` 缓存\n- 再次点击“获取图片密钥”\n\n## 目录结构（核心）\n\n- `cmd\u002Fchatlog`：CLI 入口\n- `internal\u002Fchatlog`：TUI、流程编排、HTTP\u002FMCP\n- `internal\u002Fwechat\u002Fkey`：平台密钥提取实现\n- `internal\u002Fwechat\u002Fdecrypt`：数据库解密实现\n- `internal\u002Fwechatdb`：数据库访问与查询\n\n## 安全与隐私\n\n- 所有处理在本地完成\n- 请妥善保管解密后的数据与密钥文件\n\n## 免责声明\n\n详见 [DISCLAIMER.md](.\u002FDISCLAIMER.md)","# chatlog_alpha 快速上手指南\n\nchatlog_alpha 是一款专为 macOS 设计的微信 4.x 聊天记录本地查询工具。它支持自动提取密钥、解密数据库，并提供 HTTP 及 MCP 接口供开发者调用。\n\n## 环境准备\n\n在开始之前，请确保你的开发环境满足以下要求：\n\n*   **操作系统**：macOS\n*   **微信版本**：微信 macOS 版 4.x\n*   **开发语言**：Go 1.22+\n*   **关键依赖**：\n    *   必须启用 `cgo`（未启用将无法进行内存扫描）。\n    *   建议关闭 SIP (System Integrity Protection)，否则即使使用 root 权限也可能无法读取微信进程内存。\n    *   程序运行通常需要 `sudo` 权限以获取 `task_for_pid` 能力。\n\n## 安装步骤\n\n### 1. 克隆项目与编译\n\n拉取代码并编译生成可执行文件：\n\n```bash\ngit clone \u003C项目仓库地址>\ncd chatlog_alpha\ngo build -o chatlog .\u002Fcmd\u002Fchatlog\n```\n\n### 2. 配置 Root 权限（方案 1）\n\n为了让程序能够自动提取 Data Key 和 Image Key，需要为生成的二进制文件设置 `setuid root` 权限。**每次重新编译后都需要执行此步骤**。\n\n在项目根目录执行以下命令：\n\n```bash\nBIN_PATH=\"$(pwd)\u002Fdist\u002Fchatlog-mac\"\n# 如果上述路径不对，请根据实际编译输出调整，例如直接指向当前目录的 chatlog\n# BIN_PATH=\"$(pwd)\u002Fchatlog\" \n\nsudo chown root:wheel \"$BIN_PATH\"\nsudo chmod 4755 \"$BIN_PATH\"\nls -l \"$BIN_PATH\"\n```\n\n确认输出权限包含 `s` 标志（如 `-rwsr-xr-x`）即表示生效。\n\n## 基本使用\n\n### 方式一：使用 TUI 交互界面（推荐新手）\n\n这是最直观的使用方式，适合首次获取密钥和解密数据。\n\n1.  **启动程序**：\n    ```bash\n    # 直接运行源码\n    go run .\n    \n    # 或运行编译后的文件（需 sudo）\n    sudo .\u002Fchatlog\n    ```\n\n2.  **操作流程**：\n    *   在 TUI 界面点击 **“重启并获取密钥”**。\n    *   等待微信自动重启，完成登录并随意打开一个聊天窗口。\n    *   程序会自动尝试读取已有的 `all_keys.json` 或执行内存扫描生成新密钥。\n    *   密钥获取成功后，点击 **“解密数据”**。\n    *   解密完成后，HTTP 服务将自动启动，即可通过 API 查询记录。\n\n### 方式二：命令行启动 HTTP 服务\n\n如果你已经拥有密钥或希望直接启动服务，可以使用 CLI 命令。\n\n**启动服务器：**\n\n```bash\nsudo .\u002Fchatlog server -a :5030 -p darwin -v 4 -d \u003Cwechat_data_dir>\n```\n*注：`\u003Cwechat_data_dir>` 请替换为你的微信数据目录路径。*\n\n**验证服务：**\n\n默认输出格式为 YAML，可通过 `format=json` 指定 JSON 格式。\n\n```bash\n# 获取历史消息 (YAML)\ncurl \"http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fhistory?chat=xxx&limit=50\"\n\n# 获取历史消息 (JSON)\ncurl \"http:\u002F\u002F127.0.0.1:5030\u002Fapi\u002Fv1\u002Fhistory?chat=xxx&limit=50&format=json\"\n```\n\n### 核心文件说明\n\n程序会在微信数据目录下生成或使用 `all_keys.json` 文件，用于持久化存储各数据库的解密密钥 (`enc_key`)。一旦生成，后续重启程序可直接复用，无需再次扫描内存。","某 macOS 平台的 AI 开发者希望构建一个基于个人微信历史数据的本地知识库助手，以便让大模型能回答关于过往项目讨论和文件细节的提问。\n\n### 没有 chatlog_alpha 时\n- **密钥获取极其困难**：在微信 4.x 版本下，缺乏自动化工具提取 Data Key 和 Image Key，开发者被迫手动分析内存或依赖不稳定的外部 DLL，甚至需要关闭系统完整性保护（SIP）后仍可能失败。\n- **数据查询门槛高**：聊天记录存储在多个加密的 SQLite 数据库中，若想检索特定项目对话，必须编写复杂的解密脚本并手动关联 `db_storage` 下的多库数据，耗时且易出错。\n- **AI 集成几乎不可能**：由于缺乏标准的 MCP（Model Context Protocol）接口，无法将微信数据直接暴露给 AI  Agent，导致大模型无法实时读取上下文、搜索共享文件或识别图片内容。\n- **媒体资源无法利用**：聊天中的图片和文件以加密 `.dat` 形式存在，若无专门的批量解密工具，这些关键的多模态数据对 AI 来说完全是“黑盒”。\n\n### 使用 chatlog_alpha 后\n- **一键自动化解密**：chatlog_alpha 内置了针对 macOS 微信 4.x 的内存扫描机制，重启微信后即可自动提取并持久化保存所有密钥到 `all_keys.json`，无需手动干预或反复调试权限。\n- **标准化数据服务**：通过启动 HTTP 服务，开发者可直接调用 `\u002Fapi\u002Fv1\u002Fhistory` 或 `\u002Fapi\u002Fv1\u002Fsearch` 接口，以 JSON\u002FYAML 格式快速获取结构化的聊天记录和联系人信息。\n- **无缝接入 AI 生态**：借助原生支持的 MCP 接口，chatlog_alpha 将微信转化为 AI 可理解的工具集（如 `wx_history`、`ocr_image_message`），让大模型能直接“阅读”聊天历史并回答复杂问题。\n- **多媒体内容可用**：工具支持批量解密 `.dat` 图片并通过 API 直接流式传输，使得 AI 助手不仅能处理文本，还能对聊天中的设计图、截图进行 OCR 识别和分析。\n\nchatlog_alpha 将原本封闭、加密的微信本地数据转化为标准化的 AI 可读资源，极大降低了构建个人通信知识库的技术门槛。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fteest114514_chatlog_alpha_cb1e9637.png","teest114514",null,"https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fteest114514_27d2d961.png","https:\u002F\u002Fgithub.com\u002Fteest114514",[81,85,89,92,96,99,102,105,108,112],{"name":82,"color":83,"percentage":84},"Go","#00ADD8",82.7,{"name":86,"color":87,"percentage":88},"C","#555555",14.1,{"name":90,"color":91,"percentage":24},"Assembly","#6E4C13",{"name":93,"color":94,"percentage":95},"Jupyter Notebook","#DA5B0B",0.4,{"name":97,"color":98,"percentage":95},"MDX","#fcb32c",{"name":100,"color":83,"percentage":101},"Go Template",0.1,{"name":103,"color":104,"percentage":101},"Shell","#89e051",{"name":106,"color":107,"percentage":101},"HTML","#e34c26",{"name":109,"color":110,"percentage":111},"C++","#f34b7d",0,{"name":113,"color":114,"percentage":111},"JavaScript","#f1e05a",787,467,"2026-04-19T11:54:59","MIT",5,"macOS","未说明",{"notes":123,"python":124,"dependencies":125},"仅支持 macOS 平台且需微信 4.x 版本。运行内存扫描功能时，建议使用 sudo 启动程序，并可能需要关闭系统完整性保护 (SIP) 以获取 task_for_pid 权限。首次运行需通过工具内置功能重启微信以提取密钥或生成 all_keys.json 文件。","不适用 (基于 Go 语言)",[126,127],"Go 1.22+","cgo (必须启用)",[27,16],"2026-03-27T02:49:30.150509","2026-04-20T10:34:17.037868",[132,137,142,147,152,157,162,167],{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},44468,"为什么无法获取 Data Key，但能获取 Image Key？","请确认已将 wx_key.dll 文件放置在可执行文件同目录下的 lib\u002Fwindows_x64 文件夹中。如果仍然失败，建议尝试重启微信并使用“重启并获取秘钥”功能。此外，如无必要，不要频繁更新微信版本（如从 4.1.5 升级到 4.1.6），某些新版本可能导致兼容性问题，回退到 4.1.5 版本可能解决该问题。","https:\u002F\u002Fgithub.com\u002Fteest114514\u002Fchatlog_alpha\u002Fissues\u002F22",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},44469,"解密失败报错 'CreateFile ... syntax is incorrect' 怎么办？","该错误通常由文件路径格式问题引起。检查您的微信安装路径和数据存储路径，避免使用过深或包含特殊字符的目录结构。建议将微信直接安装在磁盘根目录下的一级目录（例如 D:\\WeChat），并确保路径中不包含多余的空格或非法字符。","https:\u002F\u002Fgithub.com\u002Fteest114514\u002Fchatlog_alpha\u002Fissues\u002F12",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},44470,"HTTP Server 请求返回 500 错误且 Session 为空如何解决？","这是一个偶发问题。请尝试在进程管理器中彻底关闭所有 chatlog 相关进程，然后重新启动程序并开启 HTTP 服务。观察启动日志，直到 Session 显示正常的时间戳后，即可正常使用。如果问题依旧，请检查同目录下 log 文件夹中的日志文件以获取更多信息。","https:\u002F\u002Fgithub.com\u002Fteest114514\u002Fchatlog_alpha\u002Fissues\u002F11",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},44471,"Webhook 配置成功但无法接收到推送消息是什么原因？","这可能是因为 Webhook 监听机制仅监测了文件的“创建”事件（fsnotify.Create），而微信写入新消息时可能触发的是“写”事件。如果只填群聊 ID 或用户 ID 仍无推送，可能需要修改源码以同时监测文件写入事件，或者等待官方修复此逻辑。","https:\u002F\u002Fgithub.com\u002Fteest114514\u002Fchatlog_alpha\u002Fissues\u002F36",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},44472,"长文本消息在查询时显示不全或乱码怎么办？","数据库中的 message_content 字段是以 blob 类型存储的，直接查看可能不完整。请不要直接读取数据库文件，而是使用项目提供的 API 接口：GET \u002Fapi\u002Fv1\u002Fchatlog，通过该接口查询指定时间范围内与特定联系人或群聊的聊天记录，即可正确获取并显示完整内容。","https:\u002F\u002Fgithub.com\u002Fteest114514\u002Fchatlog_alpha\u002Fissues\u002F4",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},44473,"运行一段时间后报错 'The process cannot access the file because it is being used by another process' 如何处理？","该错误表明临时文件被其他进程占用，通常是因为微信客户端正在读写数据库文件。请确保在导出或解密数据时，微信客户端处于空闲状态，或者尝试重启微信和 chatlog 程序。如果问题频繁出现，检查是否有杀毒软件或其他工具锁定了临时文件夹。","https:\u002F\u002Fgithub.com\u002Fteest114514\u002Fchatlog_alpha\u002Fissues\u002F6",{"id":163,"question_zh":164,"answer_zh":165,"source_url":166},44474,"是否支持解析公众号和服务号的消息？","目前已支持解析公众号和服务号的消息。需要注意的是，部分消息内容（message content）是经过 zstd 压缩的，如果需要进一步处理，需先进行解压缩操作。","https:\u002F\u002Fgithub.com\u002Fteest114514\u002Fchatlog_alpha\u002Fissues\u002F34",{"id":168,"question_zh":169,"answer_zh":170,"source_url":171},44475,"缓存文件大量产生导致磁盘空间不足怎么办？","程序在运行过程中会产生大量临时缓存文件。目前建议在定期清理缓存目录（通常位于 AppData\u002FLocal\u002FTemp 下的 filecopy_chatlog 文件夹）。如果问题持续严重，请关注后续版本更新，开发者可能会优化缓存管理机制。","https:\u002F\u002Fgithub.com\u002Fteest114514\u002Fchatlog_alpha\u002Fissues\u002F15",[173],{"id":174,"version":175,"summary_zh":176,"released_at":177},351971,"latest","这是来自 main 分支的最新自动构建版本。仅供开发测试使用。","2026-04-19T11:56:17"]