[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-basicmachines-co--basic-memory":3,"tool-basicmachines-co--basic-memory":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":79,"owner_website":81,"owner_url":82,"languages":83,"stars":115,"forks":116,"last_commit_at":117,"license":118,"difficulty_score":23,"env_os":119,"env_gpu":120,"env_ram":120,"env_deps":121,"category_tags":128,"github_topics":129,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":145,"updated_at":146,"faqs":147,"releases":177},2634,"basicmachines-co\u002Fbasic-memory","basic-memory","AI conversations that actually remember. Never re-explain your project to your AI again. Join our Discord: https:\u002F\u002Fdiscord.gg\u002FtyvKNccgqN","basic-memory 是一款让 AI 对话真正拥有“记忆”的开源工具。它通过模型上下文协议（MCP），将 Claude 等大语言模型与你本地的 Markdown 文件连接起来，使 AI 能够自动读取、写入并管理你的知识库。\n\n以往使用 AI 辅助编程或创作时，用户往往需要在每次新对话中重复介绍项目背景。basic-memory 解决了这一痛点，它能将对话内容实时保存为本地笔记，并在后续交流中自动加载相关上下文，让你无需重新解释即可无缝延续之前的工作流。\n\n这款工具特别适合开发者、研究人员及知识工作者使用。它采用“本地优先”架构，所有数据均以简单的 Markdown 格式存储在你自己的电脑上，既保障了隐私安全，又便于版本管理。同时，它也提供了可选的云同步服务，支持跨设备访问。\n\n在技术亮点方面，basic-memory 不仅支持基于关键词的搜索，还引入了语义向量搜索，能根据含义而非仅仅匹配字词来查找笔记。此外，它还具备知识结构推断与验证功能，帮助维护知识库的规范性。安装配置简单，只需几条命令即可集成到 Claude Desktop 等主流客户端中，是构建个人持久化知识系统的得力助手。","\u003C!-- mcp-name: io.github.basicmachines-co\u002Fbasic-memory -->\n[![License: AGPL v3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-AGPL_v3-blue.svg)](https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fagpl-3.0)\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fbasic-memory.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fbasic-memory)\n[![Python 3.12+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.12+-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)\n[![Tests](https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fworkflows\u002FTests\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Factions)\n[![Ruff](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fastral-sh\u002Fruff\u002Fmain\u002Fassets\u002Fbadge\u002Fv2.json)](https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fruff)\n![](https:\u002F\u002Fbadge.mcpx.dev?type=server 'MCP Server')\n![](https:\u002F\u002Fbadge.mcpx.dev?type=dev 'MCP Dev')\n\n## 🚀 Basic Memory Cloud is Live!\n\n- **Cross-device and multi-platform support is here.** Your knowledge graph now works on desktop, web, and mobile.\n- **Cloud is optional.** The local-first open-source workflow continues as always.\n- **OSS discount:** use code `BMFOSS` for 20% off for 3 months.\n\n[Sign up now →](https:\u002F\u002Fbasicmemory.com?utm_source=github&utm_medium=referral&utm_campaign=readme)\n\nwith a 7 day free trial\n\n# Basic Memory\n\nBasic Memory lets you build persistent knowledge through natural conversations with Large Language Models (LLMs) like\nClaude, while keeping everything in simple Markdown files on your computer. It uses the Model Context Protocol (MCP) to\nenable any compatible LLM to read and write to your local knowledge base.\n\n## What's New in v0.19.0\n\n- **Semantic Vector Search** — find notes by meaning, not just keywords. Combines full-text and vector similarity for hybrid search with FastEmbed embeddings.\n- **Schema System** — infer, validate, and diff the structure of your knowledge base with `schema_infer`, `schema_validate`, and `schema_diff` tools.\n- **Per-Project Cloud Routing** — route individual projects through the cloud while others stay local, using API key authentication (`basic-memory project set-cloud`).\n- **FastMCP 3.0** — upgraded to FastMCP 3.0 with tool annotations for better client integration.\n- **CLI Overhaul** — JSON output mode (`--json`) for scripting, workspace-aware commands, and an htop-inspired project dashboard.\n- **Smarter Editing** — `edit_note` append\u002Fprepend auto-creates notes if they don't exist; `write_note` has an overwrite guard to prevent accidental data loss.\n- **Richer Search Results** — matched chunk text returned in search results for better context.\n\nSee the full [CHANGELOG](CHANGELOG.md) for details.\n\n- Website: [basicmemory.com](https:\u002F\u002Fbasicmemory.com?utm_source=github&utm_medium=referral&utm_campaign=readme)\n- Documentation: [docs.basicmemory.com](https:\u002F\u002Fdocs.basicmemory.com?utm_source=github&utm_medium=referral&utm_campaign=readme)\n- Community: [Discord](https:\u002F\u002Fdiscord.gg\u002FtyvKNccgqN?utm_source=github&utm_medium=referral&utm_campaign=readme)\n\n## Pick up your conversation right where you left off\n\n- AI assistants can load context from local files in a new conversation\n- Notes are saved locally as Markdown files in real time\n- No project knowledge or special prompting required\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fa55d8238-8dd0-454a-be4c-8860dbbd0ddc\n\n## Quick Start\n\n```bash\n# Install with uv (recommended)\nuv tool install basic-memory\n\n# Configure Claude Desktop (edit ~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json)\n# Add this to your config:\n{\n  \"mcpServers\": {\n    \"basic-memory\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"basic-memory\",\n        \"mcp\"\n      ]\n    }\n  }\n}\n# Now in Claude Desktop, you can:\n# - Write notes with \"Create a note about coffee brewing methods\"\n# - Read notes with \"What do I know about pour over coffee?\"\n# - Search with \"Find information about Ethiopian beans\"\n\n```\n\nYou can view shared context via files in `~\u002Fbasic-memory` (default directory location).\n\n## Automatic Updates\n\nBasic Memory includes a default-on auto-update flow for CLI installs.\n\n- **Auto-install supported:** `uv tool` and Homebrew installs\n- **Default check interval:** every 24 hours (`86400` seconds)\n- **MCP-safe behavior:** update checks run silently in `basic-memory mcp` mode\n- **`uvx` behavior:** skipped (runtime is ephemeral and managed by `uvx`)\n\nManual update commands:\n\n```bash\n# Check now and install if supported\nbm update\n\n# Check only, do not install\nbm update --check\n```\n\nConfig options in `~\u002F.basic-memory\u002Fconfig.json`:\n\n```json\n{\n  \"auto_update\": true,\n  \"update_check_interval\": 86400\n}\n```\n\nTo disable automatic updates, set `\"auto_update\": false`.\n\n## Why Basic Memory?\n\nMost LLM interactions are ephemeral - you ask a question, get an answer, and everything is forgotten. Each conversation\nstarts fresh, without the context or knowledge from previous ones. Current workarounds have limitations:\n\n- Chat histories capture conversations but aren't structured knowledge\n- RAG systems can query documents but don't let LLMs write back\n- Vector databases require complex setups and often live in the cloud\n- Knowledge graphs typically need specialized tools to maintain\n\nBasic Memory addresses these problems with a simple approach: structured Markdown files that both humans and LLMs can\nread\nand write to. The key advantages:\n\n- **Local-first:** All knowledge stays in files you control\n- **Bi-directional:** Both you and the LLM read and write to the same files\n- **Structured yet simple:** Uses familiar Markdown with semantic patterns\n- **Traversable knowledge graph:** LLMs can follow links between topics\n- **Standard formats:** Works with existing editors like Obsidian\n- **Lightweight infrastructure:** Just local files indexed in a local SQLite database\n\nWith Basic Memory, you can:\n\n- Have conversations that build on previous knowledge\n- Create structured notes during natural conversations\n- Have conversations with LLMs that remember what you've discussed before\n- Navigate your knowledge graph semantically\n- Keep everything local and under your control\n- Use familiar tools like Obsidian to view and edit notes\n- Build a personal knowledge base that grows over time\n- Sync your knowledge to the cloud with bidirectional synchronization\n- Authenticate and manage cloud projects with subscription validation\n- Mount cloud storage for direct file access\n\n## How It Works in Practice\n\nLet's say you're exploring coffee brewing methods and want to capture your knowledge. Here's how it works:\n\n1. Start by chatting normally:\n\n```\nI've been experimenting with different coffee brewing methods. Key things I've learned:\n\n- Pour over gives more clarity in flavor than French press\n- Water temperature is critical - around 205°F seems best\n- Freshly ground beans make a huge difference\n```\n\n... continue conversation.\n\n2. Ask the LLM to help structure this knowledge:\n\n```\n\"Let's write a note about coffee brewing methods.\"\n```\n\nLLM creates a new Markdown file on your system (which you can see instantly in Obsidian or your editor):\n\n```markdown\n---\ntitle: Coffee Brewing Methods\npermalink: coffee-brewing-methods\ntags:\n- coffee\n- brewing\n---\n\n# Coffee Brewing Methods\n\n## Observations\n\n- [method] Pour over provides more clarity and highlights subtle flavors\n- [technique] Water temperature at 205°F (96°C) extracts optimal compounds\n- [principle] Freshly ground beans preserve aromatics and flavor\n\n## Relations\n\n- relates_to [[Coffee Bean Origins]]\n- requires [[Proper Grinding Technique]]\n- affects [[Flavor Extraction]]\n```\n\nThe note embeds semantic content and links to other topics via simple Markdown formatting.\n\n3. You see this file on your computer in real time in the current project directory (default `~\u002F$HOME\u002Fbasic-memory`).\n\n- Realtime sync can be enabled via running `basic-memory sync --watch`\n\n4. In a chat with the LLM, you can reference a topic:\n\n```\nLook at `coffee-brewing-methods` for context about pour over coffee\n```\n\nThe LLM can now build rich context from the knowledge graph. For example:\n\n```\nFollowing relation 'relates_to [[Coffee Bean Origins]]':\n- Found information about Ethiopian Yirgacheffe\n- Notes on Colombian beans' nutty profile\n- Altitude effects on bean characteristics\n\nFollowing relation 'requires [[Proper Grinding Technique]]':\n- Burr vs. blade grinder comparisons\n- Grind size recommendations for different methods\n- Impact of consistent particle size on extraction\n```\n\nEach related document can lead to more context, building a rich semantic understanding of your knowledge base.\n\nThis creates a two-way flow where:\n\n- Humans write and edit Markdown files\n- LLMs read and write through the MCP protocol\n- Sync keeps everything consistent\n- All knowledge stays in local files.\n\n## Technical Implementation\n\nUnder the hood, Basic Memory:\n\n1. Stores everything in Markdown files\n2. Uses a SQLite database for searching and indexing\n3. Extracts semantic meaning from simple Markdown patterns\n    - Files become `Entity` objects\n    - Each `Entity` can have `Observations`, or facts associated with it\n    - `Relations` connect entities together to form the knowledge graph\n4. Maintains the local knowledge graph derived from the files\n5. Provides bidirectional synchronization between files and the knowledge graph\n6. Implements the Model Context Protocol (MCP) for AI integration\n7. Exposes tools that let AI assistants traverse and manipulate the knowledge graph\n8. Uses memory:\u002F\u002F URLs to reference entities across tools and conversations\n\nThe file format is just Markdown with some simple markup:\n\nEach Markdown file has:\n\n### Frontmatter\n\n```markdown\ntitle: \u003CEntity title>\ntype: \u003CThe type of Entity> (e.g. note)\npermalink: \u003Ca uri slug>\n\n- \u003Coptional metadata> (such as tags) \n```\n\n### Observations\n\nObservations are facts about a topic.\nThey can be added by creating a Markdown list with a special format that can reference a `category`, `tags` using a\n\"#\" character, and an optional `context`.\n\nObservation Markdown format:\n\n```markdown\n- [category] content #tag (optional context)\n```\n\nExamples of observations:\n\n```markdown\n- [method] Pour over extracts more floral notes than French press\n- [tip] Grind size should be medium-fine for pour over #brewing\n- [preference] Ethiopian beans have bright, fruity flavors (especially from Yirgacheffe)\n- [fact] Lighter roasts generally contain more caffeine than dark roasts\n- [experiment] Tried 1:15 coffee-to-water ratio with good results\n- [resource] James Hoffman's V60 technique on YouTube is excellent\n- [question] Does water temperature affect extraction of different compounds differently?\n- [note] My favorite local shop uses a 30-second bloom time\n```\n\n### Relations\n\nRelations are links to other topics. They define how entities connect in the knowledge graph.\n\nMarkdown format:\n\n```markdown\n- relation_type [[WikiLink]] (optional context)\n```\n\nExamples of relations:\n\n```markdown\n- pairs_well_with [[Chocolate Desserts]]\n- grown_in [[Ethiopia]]\n- contrasts_with [[Tea Brewing Methods]]\n- requires [[Burr Grinder]]\n- improves_with [[Fresh Beans]]\n- relates_to [[Morning Routine]]\n- inspired_by [[Japanese Coffee Culture]]\n- documented_in [[Coffee Journal]]\n```\n\n## Using with VS Code\n\nAdd the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing `Ctrl + Shift + P` and typing `Preferences: Open User Settings (JSON)`.\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"basic-memory\": {\n        \"command\": \"uvx\",\n        \"args\": [\"basic-memory\", \"mcp\"]\n      }\n    }\n  }\n}\n```\n\nOptionally, you can add it to a file called `.vscode\u002Fmcp.json` in your workspace. This will allow you to share the configuration with others.\n\n```json\n{\n  \"servers\": {\n    \"basic-memory\": {\n      \"command\": \"uvx\",\n      \"args\": [\"basic-memory\", \"mcp\"]\n    }\n  }\n}\n```\n\nYou can use Basic Memory with VS Code to easily retrieve and store information while coding.\n\n## Using with Claude Desktop\n\nBasic Memory is built using the MCP (Model Context Protocol) and works with the Claude desktop app (https:\u002F\u002Fclaude.ai\u002F):\n\n1. Configure Claude Desktop to use Basic Memory:\n\nEdit your MCP configuration file (usually located at `~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`\nfor OS X):\n\n```json\n{\n  \"mcpServers\": {\n    \"basic-memory\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"basic-memory\",\n        \"mcp\"\n      ]\n    }\n  }\n}\n```\n\nIf you want to use a specific project (see [Multiple Projects](#multiple-projects) below), update your Claude Desktop\nconfig:\n\n```json\n{\n  \"mcpServers\": {\n    \"basic-memory\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"basic-memory\",\n        \"mcp\",\n        \"--project\",\n        \"your-project-name\"\n      ]\n    }\n  }\n}\n```\n\n2. Sync your knowledge:\n\n```bash\n# One-time sync of local knowledge updates\nbasic-memory sync\n\n# Run realtime sync process (recommended)\nbasic-memory sync --watch\n```\n\n3. Cloud features (optional, requires subscription):\n\n```bash\n# Authenticate with cloud (stores OAuth token locally)\nbasic-memory cloud login\n\n# (Optional) install\u002Fconfigure rclone for file sync commands\nbasic-memory cloud setup\n\n# Check cloud auth + health\nbasic-memory cloud status\n```\n\n**Per-Project Cloud Routing** (API key based):\n\nIndividual projects can be routed through the cloud while others stay local. This uses an API key for routed\nproject calls:\n\n```bash\n# Save an API key (create one in the web app or via CLI)\nbasic-memory cloud set-key bmc_abc123...\n# Or create one via CLI (requires OAuth login first)\nbasic-memory cloud create-key \"my-laptop\"\n\n# Set a project to route through cloud\nbasic-memory project set-cloud research\n\n# Revert a project to local mode\nbasic-memory project set-local research\n\n# List projects and route metadata\nbasic-memory project list\n```\n\n`basic-memory cloud login` \u002F `basic-memory cloud logout` are authentication commands. They do not change default CLI\nrouting behavior.\n\n**Routing Flags**:\n\nUse routing flags to disambiguate command targets:\n\n```bash\n# Force local routing for this command\nbasic-memory status --local\nbasic-memory project list --local\nbasic-memory project ls --name main --local\n\n# Force cloud routing for this command\nbasic-memory status --cloud\nbasic-memory project info my-project --cloud\nbasic-memory project ls --name main --cloud\n```\n\nNo-flag behavior defaults to local when no project context is present.\n\nThe local MCP server routes per transport: `--transport stdio` honors per-project routing\n(local or cloud), while `--transport streamable-http` and `--transport sse` always route locally.\n\n**CLI Note Editing (`tool edit-note`):**\n\n```bash\n# Append content\nbasic-memory tool edit-note project-plan --operation append --content $'\\n## Next Steps\\n- Finalize rollout'\n\n# Find\u002Freplace with replacement count validation\nbasic-memory tool edit-note docs\u002Fapi --operation find_replace --find-text \"v0.14.0\" --content \"v0.15.0\" --expected-replacements 2\n\n# Replace a section body\nbasic-memory tool edit-note docs\u002Fsetup --operation replace_section --section \"## Installation\" --content $'Updated install steps\\n- Run just install'\n\n# JSON metadata output for integrations\nbasic-memory tool edit-note docs\u002Fsetup --operation append --content $'\\n- Added note' --format json\n```\n\n4. In Claude Desktop, the LLM can now use these tools:\n\n**Content Management:**\n```\nwrite_note(title, content, folder, tags, output_format=\"text\"|\"json\") - Create or update notes\nread_note(identifier, page, page_size, output_format=\"text\"|\"json\") - Read notes by title or permalink\nread_content(path) - Read raw file content (text, images, binaries)\nview_note(identifier) - View notes as formatted artifacts\nedit_note(identifier, operation, content, output_format=\"text\"|\"json\") - Edit notes incrementally\nmove_note(identifier, destination_path, output_format=\"text\"|\"json\") - Move notes with database consistency\ndelete_note(identifier, output_format=\"text\"|\"json\") - Delete notes from knowledge base\n```\n\n**Knowledge Graph Navigation:**\n```\nbuild_context(url, depth, timeframe, output_format=\"json\"|\"text\") - Navigate knowledge graph via memory:\u002F\u002F URLs\nrecent_activity(type, depth, timeframe, output_format=\"text\"|\"json\") - Find recently updated information\nlist_directory(dir_name, depth) - Browse directory contents with filtering\n```\n\n**Search & Discovery:**\n```\nsearch(query, page, page_size) - Search across your knowledge base\nsearch_notes(query, page, page_size, search_type, types, entity_types, after_date, metadata_filters, tags, status, project) - Search with filters (query is optional for filter-only searches)\n```\n\n**Project Management:**\n```\nlist_memory_projects(output_format=\"text\"|\"json\") - List all available projects\ncreate_memory_project(project_name, project_path, output_format=\"text\"|\"json\") - Create new projects\nget_current_project() - Show current project stats\nsync_status() - Check synchronization status\n```\n\n`output_format` defaults to `\"text\"` for these tools, preserving current human-readable responses.\n`build_context` defaults to `\"json\"` and can be switched to `\"text\"` when compact markdown output is preferred.\n\n**Cloud Discovery (opt-in):**\n```\ncloud_info() - Show optional Cloud overview and setup guidance\nrelease_notes() - Show latest release notes\n```\n\n**Visualization:**\n```\ncanvas(nodes, edges, title, folder) - Generate knowledge visualizations\n```\n\n5. Example prompts to try:\n\n```\n\"Create a note about our project architecture decisions\"\n\"Find information about JWT authentication in my notes\"\n\"Create a canvas visualization of my project components\"\n\"Read my notes on the authentication system\"\n\"What have I been working on in the past week?\"\n```\n\n## Futher info\n\nSee the [Documentation](https:\u002F\u002Fdocs.basicmemory.com?utm_source=github&utm_medium=referral&utm_campaign=readme) for more info, including:\n\n- [Complete User Guide](https:\u002F\u002Fdocs.basicmemory.com\u002Fuser-guide\u002F?utm_source=github&utm_medium=referral&utm_campaign=readme)\n- [CLI tools](https:\u002F\u002Fdocs.basicmemory.com\u002Fguides\u002Fcli-reference\u002F?utm_source=github&utm_medium=referral&utm_campaign=readme)\n- [Cloud CLI and Sync](https:\u002F\u002Fdocs.basicmemory.com\u002Fguides\u002Fcloud-cli\u002F?utm_source=github&utm_medium=referral&utm_campaign=readme)\n- [Managing multiple Projects](https:\u002F\u002Fdocs.basicmemory.com\u002Fguides\u002Fcli-reference\u002F?utm_source=github&utm_medium=referral&utm_campaign=readme#project)\n- [Importing data from OpenAI\u002FClaude Projects](https:\u002F\u002Fdocs.basicmemory.com\u002Fguides\u002Fcli-reference\u002F?utm_source=github&utm_medium=referral&utm_campaign=readme#import)\n\n## Telemetry\n\nBasic Memory collects anonymous, minimal usage events to understand how the CLI-to-cloud conversion funnel performs. This helps us prioritize features and improve the product.\n\n**What we collect:**\n- Cloud promo impressions (when the promo banner is shown)\n- Cloud login attempts and outcomes\n- Promo opt-out events\n\n**What we do NOT collect:**\n- No file contents, note titles, or knowledge base data\n- No personally identifiable information (PII)\n- No IP address tracking or fingerprinting\n- No per-command or per-tool-call tracking\n\nEvents are sent to our [Umami Cloud](https:\u002F\u002Fumami.is) instance, an open-source, privacy-focused analytics platform. Events are fire-and-forget on a background thread — analytics never blocks or slows the CLI.\n\n**Opt out** by setting the environment variable:\n\n```bash\nexport BASIC_MEMORY_NO_PROMOS=1\n```\n\nThis disables both promo messages and all telemetry events.\n\n## Logging\n\nBasic Memory uses [Loguru](https:\u002F\u002Fgithub.com\u002FDelgan\u002Floguru) for logging. The logging behavior varies by entry point:\n\n| Entry Point | Default Behavior | Use Case |\n|-------------|------------------|----------|\n| CLI commands | File only | Prevents log output from interfering with command output |\n| MCP server | File only | Stdout would corrupt the JSON-RPC protocol |\n| API server | File (local) or stdout (cloud) | Docker\u002Fcloud deployments use stdout |\n\n**Log file location:** `~\u002F.basic-memory\u002Fbasic-memory.log` (10MB rotation, 10 days retention)\n\n### Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `BASIC_MEMORY_LOG_LEVEL` | `INFO` | Log level: DEBUG, INFO, WARNING, ERROR |\n| `BASIC_MEMORY_CLOUD_MODE` | `false` | When `true`, API logs to stdout with structured context |\n| `BASIC_MEMORY_FORCE_LOCAL` | `false` | When `true`, forces local API routing |\n| `BASIC_MEMORY_FORCE_CLOUD` | `false` | When `true`, forces cloud API routing |\n| `BASIC_MEMORY_EXPLICIT_ROUTING` | `false` | When `true`, marks route selection as explicit (`--local`\u002F`--cloud`) |\n| `BASIC_MEMORY_ENV` | `dev` | Set to `test` for test mode (stderr only) |\n| `BASIC_MEMORY_NO_PROMOS` | `false` | When `true`, disables cloud promo messages and telemetry |\n\n### Examples\n\n```bash\n# Enable debug logging\nBASIC_MEMORY_LOG_LEVEL=DEBUG basic-memory sync\n\n# View logs\ntail -f ~\u002F.basic-memory\u002Fbasic-memory.log\n\n# Cloud\u002FDocker mode (stdout logging with structured context)\nBASIC_MEMORY_CLOUD_MODE=true uvicorn basic_memory.api.app:app\n```\n\n## Development\n\n### Running Tests\n\nBasic Memory supports dual database backends (SQLite and Postgres). By default, tests run against SQLite. Set `BASIC_MEMORY_TEST_POSTGRES=1` to run against Postgres (uses testcontainers - Docker required).\n\n**Quick Start:**\n```bash\n# Run all tests against SQLite (default, fast)\njust test-sqlite\n\n# Run all tests against Postgres (uses testcontainers)\njust test-postgres\n\n# Run both SQLite and Postgres tests\njust test\n```\n\n**Available Test Commands:**\n\n- `just test` - Run all tests against both SQLite and Postgres\n- `just test-sqlite` - Run all tests against SQLite (fast, no Docker needed)\n- `just test-postgres` - Run all tests against Postgres (uses testcontainers)\n- `just test-unit-sqlite` - Run unit tests against SQLite\n- `just test-unit-postgres` - Run unit tests against Postgres\n- `just test-int-sqlite` - Run integration tests against SQLite\n- `just test-int-postgres` - Run integration tests against Postgres\n- `just test-windows` - Run Windows-specific tests (auto-skips on other platforms)\n- `just test-benchmark` - Run performance benchmark tests\n- `just testmon` - Run tests impacted by recent changes (pytest-testmon)\n- `just test-smoke` - Run fast MCP end-to-end smoke test\n- `just fast-check` - Run fix\u002Fformat\u002Ftypecheck + impacted tests + smoke test\n- `just doctor` - Run local file \u003C-> DB consistency checks with temp config\n\n**Postgres Testing:**\n\nPostgres tests use [testcontainers](https:\u002F\u002Ftestcontainers-python.readthedocs.io\u002F) which automatically spins up a Postgres instance in Docker. No manual database setup required - just have Docker running.\n\n**Testmon Note:** When no files have changed, `just testmon` may collect 0 tests. That's expected and means no impacted tests were detected.\n\n**Test Markers:**\n\nTests use pytest markers for selective execution:\n- `windows` - Windows-specific database optimizations\n- `benchmark` - Performance tests (excluded from default runs)\n- `smoke` - Fast MCP end-to-end smoke tests\n\n**Other Development Commands:**\n```bash\njust install          # Install with dev dependencies\njust lint             # Run linting checks\njust typecheck        # Run type checking\njust typecheck-ty     # Run ty type checking (incremental supplement to pyright)\njust format           # Format code with ruff\njust fast-check       # Fast local loop (fix\u002Fformat\u002Ftypecheck + testmon + smoke)\njust doctor           # Local consistency check (temp config)\njust check            # Run all quality checks\njust migration \"msg\"  # Create database migration\n```\n\n**Type Checking Strategy:**\n- `just typecheck` (Pyright) remains the primary, blocking type checker.\n- `just typecheck-ty` (Astral `ty`) is available as a supplemental checker while rules are adopted incrementally.\n- We recommend running both locally while reducing `ty` diagnostics over time.\n\n**Local Consistency Check:**\n```bash\nbasic-memory doctor   # Verifies file \u003C-> database sync in a temp project\n```\n\nSee the [justfile](justfile) for the complete list of development commands.\n\n## License\n\nAGPL-3.0\n\nContributions are welcome. See the [Contributing](CONTRIBUTING.md) guide for info about setting up the project locally\nand submitting PRs.\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F#basicmachines-co\u002Fbasic-memory&Date\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbasicmachines-co_basic-memory_readme_df26e8d64e21.png&theme=dark\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbasicmachines-co_basic-memory_readme_df26e8d64e21.png\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbasicmachines-co_basic-memory_readme_df26e8d64e21.png\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n\nBuilt with ♥️ by [Basic Machines](https:\u002F\u002Fbasicmachines.co?utm_source=github&utm_medium=referral&utm_campaign=readme)\n","\u003C!-- mcp-name: io.github.basicmachines-co\u002Fbasic-memory -->\n[![许可证：AGPL v3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-AGPL_v3-blue.svg)](https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fagpl-3.0)\n[![PyPI版本](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fbasic-memory.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fbasic-memory)\n[![Python 3.12+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.12+-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)\n[![测试](https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fworkflows\u002FTests\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Factions)\n[![Ruff](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fastral-sh\u002Fruff\u002Fmain\u002Fassets\u002Fbadge\u002Fv2.json)](https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fruff)\n![](https:\u002F\u002Fbadge.mcpx.dev?type=server 'MCP服务器')\n![](https:\u002F\u002Fbadge.mcpx.dev?type=dev 'MCP开发')\n\n## 🚀 Basic Memory 云服务已上线！\n\n- **跨设备与多平台支持现已实现。** 您的知识图谱现在可在桌面、网页和移动端上使用。\n- **云端服务为可选功能。** 本地优先的开源工作流将一如既往地继续运行。\n- **OSS 折扣：** 使用优惠码 `BMFOSS` 可享受 3 个月 20% 的折扣。\n\n[立即注册 →](https:\u002F\u002Fbasicmemory.com?utm_source=github&utm_medium=referral&utm_campaign=readme)\n\n附带 7 天免费试用\n\n# Basic Memory\n\nBasic Memory 让您通过与大型语言模型（LLMs）如 Claude 进行自然对话来构建持久的知识，同时将所有内容保存在您计算机上的简单 Markdown 文件中。它使用模型上下文协议（MCP）使任何兼容的 LLM 都能读取和写入您的本地知识库。\n\n## v0.19.0 新特性\n\n- **语义向量搜索** —— 不再仅依赖关键词查找笔记，而是根据语义进行匹配。结合了全文检索和向量相似度，利用 FastEmbed 嵌入实现混合搜索。\n- **模式系统** —— 使用 `schema_infer`、`schema_validate` 和 `schema_diff` 工具推断、验证并比较知识库的结构。\n- **项目级云路由** —— 通过 API 密钥认证（`basic-memory project set-cloud`），可将个别项目路由到云端，而其他项目则保持本地存储。\n- **FastMCP 3.0** —— 升级至 FastMCP 3.0，并添加工具注解以更好地集成客户端。\n- **CLI 全面升级** —— 新增 JSON 输出模式（`--json`）用于脚本编写；引入工作区感知命令及 htop 风格的项目仪表板。\n- **更智能的编辑功能** —— `edit_note` 在笔记不存在时会自动创建；`write_note` 则具备覆盖保护机制，防止意外数据丢失。\n- **更丰富的搜索结果** —— 搜索结果中返回匹配的文本片段，以便更好地理解上下文。\n\n详情请参阅完整的 [CHANGELOG](CHANGELOG.md)。\n\n- 官网：[basicmemory.com](https:\u002F\u002Fbasicmemory.com?utm_source=github&utm_medium=referral&utm_campaign=readme)\n- 文档：[docs.basicmemory.com](https:\u002F\u002Fdocs.basicmemory.com?utm_source=github&utm_medium=referral&utm_campaign=readme)\n- 社区：[Discord](https:\u002F\u002Fdiscord.gg\u002FtyvKNccgqN?utm_source=github&utm_medium=referral&utm_campaign=readme)\n\n## 从上次中断的地方继续您的对话\n\n- AI 助手可以在新对话中加载本地文件中的上下文\n- 笔记会实时以 Markdown 文件的形式保存在本地\n- 无需特殊项目知识或提示词即可使用\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fa55d8238-8dd0-454a-be4c-8860dbbd0ddc\n\n## 快速开始\n\n```bash\n# 推荐使用 uv 安装\nuv tool install basic-memory\n\n# 配置 Claude Desktop（编辑 ~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json）\n# 在配置中添加以下内容：\n{\n  \"mcpServers\": {\n    \"basic-memory\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"basic-memory\",\n        \"mcp\"\n      ]\n    }\n  }\n}\n# 现在在 Claude Desktop 中，您可以：\n# - 写笔记：“创建一篇关于咖啡冲泡方法的笔记”\n# - 阅读笔记：“我了解哪些关于手冲咖啡的知识？”\n# - 搜索：“查找有关埃塞俄比亚咖啡豆的信息”\n\n```\n\n您可以通过 `~\u002Fbasic-memory` 目录（默认位置）中的文件查看共享的上下文。\n\n## 自动更新\n\nBasic Memory 为 CLI 安装提供了默认开启的自动更新流程。\n\n- **支持自动安装：** `uv tool` 和 Homebrew 安装\n- **默认检查间隔：** 每 24 小时（86400 秒）\n- **MCP 安全行为：** 更新检查将在 `basic-memory mcp` 模式下静默运行\n- **`uvx` 行为：** 被跳过（运行时是临时的，由 `uvx` 管理）\n\n手动更新命令：\n\n```bash\n# 立即检查并安装（如果支持）\nbm update\n\n# 仅检查，不安装\nbm update --check\n```\n\n`~\u002F.basic-memory\u002Fconfig.json` 中的配置选项：\n\n```json\n{\n  \"auto_update\": true,\n  \"update_check_interval\": 86400\n}\n```\n\n要禁用自动更新，请将 `\"auto_update\"` 设置为 `false`。\n\n## 为什么选择 Basic Memory？\n\n大多数 LLM 交互都是短暂的——您提出一个问题，得到答案后便被遗忘。每次对话都从头开始，缺乏之前对话的上下文或知识。目前的替代方案存在诸多局限性：\n\n- 对话历史记录只能捕捉对话内容，却无法形成结构化的知识；\n- RAG 系统可以查询文档，但不允许 LLM 将信息写回；\n- 向量数据库需要复杂的部署，且通常托管在云端；\n- 知识图谱通常需要专门的工具来维护。\n\nBasic Memory 采用一种简单的方法解决了这些问题：使用结构化的 Markdown 文件，供人类和 LLM 共同读写。其主要优势如下：\n\n- **本地优先：** 所有知识都保存在您掌控的文件中；\n- **双向互动：** 您和 LLM 都可以读写同一份文件；\n- **结构化且简单：** 使用熟悉的 Markdown 格式，并结合语义模式；\n- **可遍历的知识图谱：** LLM 可以通过链接在不同主题之间导航；\n- **标准格式：** 可与 Obsidian 等现有编辑器无缝兼容；\n- **轻量级基础设施：** 仅需本地文件，并在本地 SQLite 数据库中建立索引。\n\n借助 Basic Memory，您可以：\n\n- 进行基于先前知识的对话；\n- 在自然对话中创建结构化的笔记；\n- 与 LLM 进行能够记住过往讨论内容的对话；\n- 以语义方式导航您的知识图谱；\n- 将所有内容保留在本地并完全掌控；\n- 使用 Obsidian 等熟悉工具查看和编辑笔记；\n- 构建一个随时间不断增长的个人知识库；\n- 通过双向同步将知识同步到云端；\n- 通过订阅验证对云项目进行身份验证和管理；\n- 挂载云存储以直接访问文件。\n\n## 实际操作流程\n\n假设你在探索咖啡冲泡方法，并希望记录下你的知识。以下是具体的操作步骤：\n\n1. 首先，正常地与模型聊天：\n\n```\n我一直在尝试不同的咖啡冲泡方法。目前学到的关键点有：\n\n- 手冲法比法压壶更能展现咖啡的清晰风味\n- 水温至关重要——大约205°F（96°C）最为理想\n- 新鲜研磨的咖啡豆对风味影响巨大\n```\n\n… 继续对话。\n\n2. 请求大模型帮助整理这些知识：\n\n```\n“我们来写一篇关于咖啡冲泡方法的笔记吧。”\n```\n\n大模型会在你的系统中创建一个新的Markdown文件（你可以在Obsidian或编辑器中立即看到）：\n\n```markdown\n---\ntitle: 咖啡冲泡方法\npermalink: coffee-brewing-methods\ntags:\n- coffee\n- brewing\n---\n\n# 咖啡冲泡方法\n\n## 观察\n\n- [方法] 手冲法能提供更清晰的风味，突出细腻的层次感\n- [技巧] 水温保持在205°F (96°C) 可以萃取出最佳的风味成分\n- [原则] 新鲜研磨的咖啡豆能够更好地保留香气和风味\n\n## 关系\n\n- 与[[咖啡豆产地]]相关\n- 需要[[正确的研磨技巧]]\n- 影响[[风味萃取]]\n```\n\n这篇笔记通过简单的Markdown格式嵌入了语义内容，并与其他主题建立了链接。\n\n3. 你会在当前项目目录（默认为`~\u002F$HOME\u002Fbasic-memory`）中实时看到这个文件。\n\n- 你可以通过运行`basic-memory sync --watch`来启用实时同步功能。\n\n4. 在与大模型的对话中，你可以引用某个主题：\n\n```\n看看`coffee-brewing-methods`，了解关于手冲咖啡的相关信息。\n```\n\n现在，大模型可以根据知识图谱构建丰富的上下文。例如：\n\n```\n根据“与[[咖啡豆产地]]相关”的关系：\n- 找到了关于埃塞俄比亚耶加雪菲的信息\n- 记录了哥伦比亚咖啡豆的坚果风味特点\n- 高海拔对咖啡豆特性的影响\n\n根据“需要[[正确的研磨技巧]]”的关系：\n- 锥形磨芯与刀片式磨豆机的对比\n- 不同冲泡方式对应的研磨度建议\n- 研磨颗粒一致性对萃取效果的影响\n```\n\n每个相关的文档都可以进一步扩展上下文，从而构建出对你知识库的丰富语义理解。\n\n这种方式形成了一个双向流动：\n\n- 人类编写和编辑Markdown文件\n- 大模型通过MCP协议读取和写入数据\n- 同步功能确保所有内容的一致性\n- 所有知识都保存在本地文件中。\n\n## 技术实现\n\n在底层，Basic Memory：\n\n1. 将所有内容存储在Markdown文件中\n2. 使用SQLite数据库进行搜索和索引\n3. 从简单的Markdown模式中提取语义信息\n    - 文件被转换为“实体”对象\n    - 每个“实体”可以包含与其相关的“观察”，即事实\n    - “关系”将各个实体连接起来，形成知识图谱\n4. 维护基于文件生成的本地知识图谱\n5. 提供文件与知识图谱之间的双向同步机制\n6. 实现用于AI集成的模型上下文协议（MCP）\n7. 提供工具，使AI助手能够遍历和操作知识图谱\n8. 使用memory:\u002F\u002F URL来跨工具和对话引用实体\n\n文件格式只是带有简单标记的Markdown：\n\n每个Markdown文件包含：\n\n### 前言部分\n\n```markdown\ntitle: \u003C实体标题>\ntype: \u003C实体类型>（例如：笔记）\npermalink: \u003CURI别名>\n\n- \u003C可选元数据>（如标签）\n```\n\n### 观察\n\n“观察”是关于某个主题的事实。可以通过创建特殊格式的Markdown列表来添加，该列表可以引用“类别”、使用“#”符号标记“标签”，以及可选的“上下文”。\n\n观察的Markdown格式如下：\n\n```markdown\n- [类别] 内容 #标签（可选上下文）\n```\n\n观察的例子：\n\n```markdown\n- [方法] 手冲法比法压壶更能萃取出花香调\n- [技巧] 手冲时研磨度应为中细 #冲泡\n- [偏好] 埃塞俄比亚咖啡豆具有明亮的果味（尤其是来自耶加雪菲的）\n- [事实] 浅度烘焙的咖啡通常比深度烘焙含有更多的咖啡因\n- [实验] 尝试了1:15的粉水比例，效果不错\n- [资源] James Hoffman在YouTube上的V60冲泡技巧非常棒\n- [问题] 水温是否会影响不同化合物的萃取效率？\n- [备注] 我最喜欢的本地咖啡店采用30秒的闷蒸时间\n```\n\n### 关系\n\n“关系”是指与其他主题的链接，它定义了实体在知识图谱中的连接方式。\n\nMarkdown格式如下：\n\n```markdown\n- 关系类型 [[维基链接]]（可选上下文）\n```\n\n关系的例子：\n\n```markdown\n- 与[[巧克力甜点]]很搭\n- 生长于[[埃塞俄比亚]]\n- 与[[茶的冲泡方法]]形成对比\n- 需要[[锥形磨豆机]]\n- 更适合使用[[新鲜咖啡豆]]\n- 与[[早晨作息]]有关\n- 灵感来源于[[日本咖啡文化]]\n- 记录在[[咖啡日记]]中\n```\n\n## 与VS Code结合使用\n\n在VS Code的用户设置（JSON）文件中添加以下JSON块。你可以通过按下`Ctrl + Shift + P`并输入“Preferences: Open User Settings (JSON)”来完成此操作。\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"basic-memory\": {\n        \"command\": \"uvx\",\n        \"args\": [\"basic-memory\", \"mcp\"]\n      }\n    }\n  }\n}\n```\n\n你也可以选择将其添加到工作区中的`.vscode\u002Fmcp.json`文件中，这样就可以与他人共享配置。\n\n```json\n{\n  \"servers\": {\n    \"basic-memory\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"basic-memory\",\n        \"mcp\"\n      ]\n    }\n  }\n}\n```\n\n你可以使用Basic Memory与VS Code配合，在编程时轻松地检索和存储信息。\n\n## 与Claude Desktop结合使用\n\nBasic Memory基于MCP（模型上下文协议）构建，可与Claude桌面应用程序（https:\u002F\u002Fclaude.ai\u002F）一起使用：\n\n1. 配置Claude Desktop以使用Basic Memory：\n\n编辑你的MCP配置文件（通常位于OS X系统的`~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`）：\n\n```json\n{\n  \"mcpServers\": {\n    \"basic-memory\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"basic-memory\",\n        \"mcp\"\n      ]\n    }\n  }\n}\n```\n\n如果你想使用特定的项目（参见下方的“多项目”部分），请更新你的Claude Desktop配置：\n\n```json\n{\n  \"mcpServers\": {\n    \"basic-memory\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"basic-memory\",\n        \"mcp\",\n        \"--project\",\n        \"你的项目名称\"\n      ]\n    }\n  }\n}\n```\n\n2. 同步你的知识：\n\n```bash\n# 一次性同步本地知识更新\nbasic-memory sync\n\n# 推荐运行实时同步进程\nbasic-memory sync --watch\n```\n\n3. 云端功能（可选，需订阅）：\n\n```bash\n# 使用云端认证（OAuth令牌会本地存储）\nbasic-memory cloud login\n\n# （可选）安装\u002Fconfigure rclone以执行文件同步命令\nbasic-memory cloud setup\n\n# 检查云端认证状态及健康状况\nbasic-memory cloud status\n```\n\n**按项目路由云端请求**（基于API密钥）：\n\n单个项目可以通过云端路由，而其他项目则保留在本地。这需要为每个项目的请求使用一个API密钥：\n\n```bash\nbasic-memory cloud route --project your-project-name --api-key YOUR_API_KEY\n```\n\n这样，特定项目的请求就会通过云端处理，而其他项目仍保持本地存储。\n\n# 保存 API 密钥（可在 Web 应用或 CLI 中创建）\nbasic-memory cloud set-key bmc_abc123...\n# 或通过 CLI 创建密钥（需先进行 OAuth 登录）\nbasic-memory cloud create-key \"my-laptop\"\n\n# 将项目设置为通过云端路由\nbasic-memory project set-cloud research\n\n# 将项目恢复为本地模式\nbasic-memory project set-local research\n\n# 列出项目及路由元数据\nbasic-memory project list\n```\n\n`basic-memory cloud login` \u002F `basic-memory cloud logout` 是身份验证命令。它们不会改变默认的 CLI 路由行为。\n\n**路由标志**：\n\n使用路由标志来明确命令目标：\n\n```bash\n# 强制此命令使用本地路由\nbasic-memory status --local\nbasic-memory project list --local\nbasic-memory project ls --name main --local\n\n# 强制此命令使用云路由\nbasic-memory status --cloud\nbasic-memory project info my-project --cloud\nbasic-memory project ls --name main --cloud\n```\n\n在没有项目上下文时，不使用标志的行为默认为本地路由。\n\n本地 MCP 服务器按传输方式路由：`--transport stdio` 遵循每个项目的路由设置（本地或云端），而 `--transport streamable-http` 和 `--transport sse` 始终使用本地路由。\n\n**CLI 笔记编辑（`tool edit-note`）**：\n\n```bash\n# 追加内容\nbasic-memory tool edit-note project-plan --operation append --content $'\\n## 下一步\\n- 完成部署'\n\n# 查找\u002F替换并验证替换次数\nbasic-memory tool edit-note docs\u002Fapi --operation find_replace --find-text \"v0.14.0\" --content \"v0.15.0\" --expected-replacements 2\n\n# 替换某节内容\nbasic-memory tool edit-note docs\u002Fsetup --operation replace_section --section \"## 安装\" --content $'更新了安装步骤\\n- 只需运行安装程序'\n\n# 为集成输出 JSON 元数据\nbasic-memory tool edit-note docs\u002Fsetup --operation append --content $'\\n- 添加备注' --format json\n```\n\n4. 在 Claude Desktop 中，LLM 现在可以使用这些工具：\n\n**内容管理**：\n```\nwrite_note(title, content, folder, tags, output_format=\"text\"|\"json\") - 创建或更新笔记\nread_note(identifier, page, page_size, output_format=\"text\"|\"json\") - 按标题或永久链接读取笔记\nread_content(path) - 读取原始文件内容（文本、图片、二进制）\nview_note(identifier) - 以格式化形式查看笔记\nedit_note(identifier, operation, content, output_format=\"text\"|\"json\") - 逐步编辑笔记\nmove_note(identifier, destination_path, output_format=\"text\"|\"json\") - 移动笔记并保持数据库一致性\ndelete_note(identifier, output_format=\"text\"|\"json\") - 从知识库中删除笔记\n```\n\n**知识图谱导航**：\n```\nbuild_context(url, depth, timeframe, output_format=\"json\"|\"text\") - 通过 memory:\u002F\u002F URL 导航知识图谱\nrecent_activity(type, depth, timeframe, output_format=\"text\"|\"json\") - 查找最近更新的信息\nlist_directory(dir_name, depth) - 浏览目录内容并进行筛选\n```\n\n**搜索与发现**：\n```\nsearch(query, page, page_size) - 在整个知识库中搜索\nsearch_notes(query, page, page_size, search_type, types, entity_types, after_date, metadata_filters, tags, status, project) - 带过滤条件的搜索（仅使用过滤条件时查询可为空）\n```\n\n**项目管理**：\n```\nlist_memory_projects(output_format=\"text\"|\"json\") - 列出所有可用项目\ncreate_memory_project(project_name, project_path, output_format=\"text\"|\"json\") - 创建新项目\nget_current_project() - 显示当前项目统计信息\nsync_status() - 检查同步状态\n```\n\n对于这些工具，`output_format` 默认为 `\"text\"`，以保持当前人类可读的响应。`build_context` 默认为 `\"json\"`，但在需要紧凑的 Markdown 输出时也可切换为 `\"text\"`。\n\n**云端发现（可选）**：\n```\ncloud_info() - 显示可选的云端概览和设置指南\nrelease_notes() - 显示最新版本说明\n```\n\n**可视化**：\n```\ncanvas(nodes, edges, title, folder) - 生成知识可视化\n```\n\n5. 可尝试的示例提示：\n\n```\n“创建一篇关于我们项目架构决策的笔记”\n“在我的笔记中查找有关 JWT 认证的信息”\n“为我的项目组件生成一张可视化图表”\n“阅读我关于认证系统的笔记”\n“过去一周我一直在做什么？”\n```\n\n## 更多信息\n\n请参阅 [文档](https:\u002F\u002Fdocs.basicmemory.com?utm_source=github&utm_medium=referral&utm_campaign=readme)，了解更多内容，包括：\n\n- [完整用户指南](https:\u002F\u002Fdocs.basicmemory.com\u002Fuser-guide\u002F?utm_source=github&utm_medium=referral&utm_campaign=readme)\n- [CLI 工具参考](https:\u002F\u002Fdocs.basicmemory.com\u002Fguides\u002Fcli-reference\u002F?utm_source=github&utm_medium=referral&utm_campaign=readme)\n- [云端 CLI 与同步](https:\u002F\u002Fdocs.basicmemory.com\u002Fguides\u002Fcloud-cli\u002F?utm_source=github&utm_medium=referral&utm_campaign=readme)\n- [管理多个项目](https:\u002F\u002Fdocs.basicmemory.com\u002Fguides\u002Fcli-reference\u002F?utm_source=github&utm_medium=referral&utm_campaign=readme#project)\n- [从 OpenAI\u002FClaude 项目导入数据](https:\u002F\u002Fdocs.basicmemory.com\u002Fguides\u002Fcli-reference\u002F?utm_source=github&utm_medium=referral&utm_campaign=readme#import)\n\n## 遥测\n\nBasic Memory 会收集匿名的最小化使用事件，以了解 CLI 到云端转换流程的表现。这有助于我们确定功能优先级并改进产品。\n\n**我们收集的内容**：\n- 云端推广展示次数（当推广横幅显示时）\n- 云端登录尝试及其结果\n- 推广退出事件\n\n**我们不收集的内容**：\n- 不收集任何文件内容、笔记标题或知识库数据\n- 不收集任何个人身份信息 (PII)\n- 不追踪 IP 地址或进行指纹识别\n- 不对每次命令或工具调用进行单独追踪\n\n事件会被发送到我们的 [Umami Cloud](https:\u002F\u002Fumami.is) 实例，这是一个开源且注重隐私的分析平台。事件会在后台线程中“发送后即忘”——分析绝不会阻塞或减慢 CLI 的运行。\n\n**退出方法**：设置环境变量：\n\n```bash\nexport BASIC_MEMORY_NO_PROMOS=1\n```\n\n这将禁用所有推广消息以及所有遥测事件。\n\n## 日志记录\n\nBasic Memory 使用 [Loguru](https:\u002F\u002Fgithub.com\u002FDelgan\u002Floguru) 进行日志记录。不同入口点的日志记录行为有所不同：\n\n| 入口点 | 默认行为 | 使用场景 |\n|--------|----------|----------|\n| CLI 命令 | 仅写入文件 | 防止日志输出干扰命令输出 |\n| MCP 服务器 | 仅写入文件 | 如果使用 stdout，会破坏 JSON-RPC 协议 |\n| API 服务器 | 文件（本地）或 stdout（云端） | Docker\u002F云端部署使用 stdout |\n\n**日志文件位置**：`~\u002F.basic-memory\u002Fbasic-memory.log`（10MB 轮转，保留 10 天）\n\n### 环境变量\n\n| 变量 | 默认值 | 描述 |\n|----------|---------|-------------|\n| `BASIC_MEMORY_LOG_LEVEL` | `INFO` | 日志级别：DEBUG、INFO、WARNING、ERROR |\n| `BASIC_MEMORY_CLOUD_MODE` | `false` | 当为 `true` 时，API 会将日志输出到 stdout，并附带结构化上下文 |\n| `BASIC_MEMORY_FORCE_LOCAL` | `false` | 当为 `true` 时，强制使用本地 API 路由 |\n| `BASIC_MEMORY_FORCE_CLOUD` | `false` | 当为 `true` 时，强制使用云端 API 路由 |\n| `BASIC_MEMORY_EXPLICIT_ROUTING` | `false` | 当为 `true` 时，路由选择会被标记为显式（`--local`\u002F`--cloud`）|\n| `BASIC_MEMORY_ENV` | `dev` | 设置为 `test` 以启用测试模式（仅 stderr 输出）|\n| `BASIC_MEMORY_NO_PROMOS` | `false` | 当为 `true` 时，禁用云端推广消息和遥测数据 |\n\n### 示例\n\n```bash\n# 启用调试日志\nBASIC_MEMORY_LOG_LEVEL=DEBUG basic-memory sync\n\n# 查看日志\ntail -f ~\u002F.basic-memory\u002Fbasic-memory.log\n\n# 云端\u002FDocker 模式（stdout 日志并带有结构化上下文）\nBASIC_MEMORY_CLOUD_MODE=true uvicorn basic_memory.api.app:app\n```\n\n## 开发\n\n### 运行测试\n\nBasic Memory 支持双数据库后端（SQLite 和 Postgres）。默认情况下，测试会在 SQLite 上运行。设置 `BASIC_MEMORY_TEST_POSTGRES=1` 可以在 Postgres 上运行测试（使用 testcontainers - 需要 Docker）。\n\n**快速入门：**\n```bash\n# 在 SQLite 上运行所有测试（默认，速度快）\njust test-sqlite\n\n# 在 Postgres 上运行所有测试（使用 testcontainers）\njust test-postgres\n\n# 同时运行 SQLite 和 Postgres 测试\njust test\n```\n\n**可用的测试命令：**\n\n- `just test` - 在 SQLite 和 Postgres 上运行所有测试\n- `just test-sqlite` - 在 SQLite 上运行所有测试（速度快，无需 Docker）\n- `just test-postgres` - 在 Postgres 上运行所有测试（使用 testcontainers）\n- `just test-unit-sqlite` - 在 SQLite 上运行单元测试\n- `just test-unit-postgres` - 在 Postgres 上运行单元测试\n- `just test-int-sqlite` - 在 SQLite 上运行集成测试\n- `just test-int-postgres` - 在 Postgres 上运行集成测试\n- `just test-windows` - 运行 Windows 特定的测试（在其他平台上自动跳过）\n- `just test-benchmark` - 运行性能基准测试\n- `just testmon` - 运行受最近更改影响的测试（pytest-testmon）\n- `just test-smoke` - 运行快速的 MCP 端到端冒烟测试\n- `just fast-check` - 运行修复\u002F格式化\u002F类型检查 + 受影响测试 + 冒烟测试\n- `just doctor` - 使用临时配置运行本地文件与数据库一致性检查\n\n**Postgres 测试：**\n\nPostgres 测试使用 [testcontainers](https:\u002F\u002Ftestcontainers-python.readthedocs.io\u002F)，它会在 Docker 中自动启动一个 Postgres 实例。无需手动设置数据库，只需确保 Docker 正在运行即可。\n\n**Testmon 注意事项：** 如果没有文件发生变化，`just testmon` 可能会收集到 0 个测试。这是正常的，意味着未检测到受影响的测试。\n\n**测试标记：**\n\n测试使用 pytest 标记进行选择性执行：\n- `windows` - Windows 特定的数据库优化\n- `benchmark` - 性能测试（默认运行中排除）\n- `smoke` - 快速的 MCP 端到端冒烟测试\n\n**其他开发命令：**\n```bash\njust install          # 安装包含开发依赖项\njust lint             # 运行代码风格检查\njust typecheck        # 运行类型检查\njust typecheck-ty     # 运行 ty 类型检查（作为 pyright 的增量补充）\njust format           # 使用 ruff 格式化代码\njust fast-check       # 快速本地循环（修复\u002F格式化\u002F类型检查 + testmon + 冒烟测试）\njust doctor           # 本地一致性检查（使用临时配置）\njust check            # 运行所有质量检查\njust migration \"msg\"  # 创建数据库迁移\n```\n\n**类型检查策略：**\n- `just typecheck`（Pyright）仍然是主要的、阻塞式的类型检查工具。\n- `just typecheck-ty`（Astral `ty`）作为补充检查工具，在逐步采用规则的过程中可用。\n- 建议在本地同时运行两者，同时随着时间推移减少 `ty` 的诊断信息。\n\n**本地一致性检查：**\n```bash\nbasic-memory doctor   # 在临时项目中验证文件与数据库的同步情况\n```\n\n完整的开发命令列表请参阅 [justfile](justfile)。\n\n## 许可证\n\nAGPL-3.0\n\n欢迎贡献。有关如何在本地设置项目以及提交 PR 的信息，请参阅 [贡献指南](CONTRIBUTING.md)。\n\n## 星标历史\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F#basicmachines-co\u002Fbasic-memory&Date\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbasicmachines-co_basic-memory_readme_df26e8d64e21.png&theme=dark\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbasicmachines-co_basic-memory_readme_df26e8d64e21.png\" \u002F>\n   \u003Cimg alt=\"星标历史图表\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbasicmachines-co_basic-memory_readme_df26e8d64e21.png\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n由 [Basic Machines](https:\u002F\u002Fbasicmachines.co?utm_source=github&utm_medium=referral&utm_campaign=readme) 用心打造","# Basic Memory 快速上手指南\n\nBasic Memory 是一款基于本地优先（Local-first）的 AI 知识管理工具。它允许大语言模型（如 Claude）通过自然对话读取和写入你本地的 Markdown 文件，构建持久的个人知识库，并利用模型上下文协议（MCP）实现双向交互。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n*   **操作系统**：macOS, Linux 或 Windows (WSL)\n*   **Python 版本**：Python 3.12 或更高版本\n*   **包管理器**：推荐安装 `uv` (高性能 Python 包管理工具)，也可使用 `pip`\n*   **AI 客户端**：已安装支持 MCP 协议的客户端（如 Claude Desktop 或 VS Code）\n\n> **提示**：国内用户若下载 `uv` 或 PyPI 包较慢，可配置国内镜像源加速。\n\n## 安装步骤\n\n推荐使用 `uv` 进行安装，以获得最佳性能和自动更新支持。\n\n### 1. 安装 Basic Memory\n\n在终端执行以下命令：\n\n```bash\n# 推荐使用 uv 安装\nuv tool install basic-memory\n\n# 或者使用 pip 安装\npip install basic-memory\n```\n\n### 2. 配置 MCP 客户端\n\nBasic Memory 需要作为 MCP Server 配置到你的 AI 客户端中。以下是两种常用客户端的配置方法。\n\n#### 方案 A：配置 Claude Desktop\n\n编辑 Claude Desktop 的配置文件：\n*   **macOS**: `~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`\n*   **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n添加以下内容到 `mcpServers` 字段中：\n\n```json\n{\n  \"mcpServers\": {\n    \"basic-memory\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"basic-memory\",\n        \"mcp\"\n      ]\n    }\n  }\n}\n```\n\n保存后重启 Claude Desktop。\n\n#### 方案 B：配置 VS Code\n\n在 VS Code 中打开用户设置 (`Ctrl + Shift + P` -> `Preferences: Open User Settings (JSON)`)，或在项目根目录创建 `.vscode\u002Fmcp.json`，添加以下配置：\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"basic-memory\": {\n        \"command\": \"uvx\",\n        \"args\": [\"basic-memory\", \"mcp\"]\n      }\n    }\n  }\n}\n```\n\n## 基本使用\n\n配置完成后，无需特殊指令即可在对话中使用。Basic Memory 会自动将你的对话内容转化为结构化的 Markdown 笔记，并存储在本地（默认路径：`~\u002Fbasic-memory`）。\n\n### 1. 创建笔记\n\n直接在对话框中输入自然语言指令，让 AI 记录知识：\n\n```text\n帮我创建一个关于“手冲咖啡技巧”的笔记。主要观点包括：水温控制在 96 度左右，粉水比 1:15，以及新鲜研磨的重要性。\n```\n\nAI 会自动生成如下结构的 Markdown 文件（你可以在 Obsidian 或任意编辑器中实时查看）：\n\n```markdown\n---\ntitle: 手冲咖啡技巧\npermalink: hand-brew-coffee-tips\ntags:\n- coffee\n- brewing\n---\n\n# 手冲咖啡技巧\n\n## Observations\n\n- [technique] 水温控制在 96°C (205°F) 能提取最佳风味\n- [principle] 推荐粉水比为 1:15\n- [fact] 新鲜研磨的咖啡豆能保留更多芳香物质\n```\n\n### 2. 查询与检索\n\n你可以随时让 AI 基于已有的知识库回答问题，它会自动关联相关笔记：\n\n```text\n我之前记录过哪些关于埃塞俄比亚咖啡豆的信息？\n```\n\nAI 会通过语义搜索和知识图谱关系（Relations），找到相关联的笔记并汇总回答，例如：\n\n```text\n根据知识库中的关联：\n- 在《咖啡产地》笔记中提到：埃塞俄比亚耶加雪菲具有明亮的水果风味。\n- 在《手冲咖啡技巧》中提到：浅烘焙豆子通常咖啡因含量更高。\n```\n\n### 3. 高级功能概览\n\n*   **语义搜索**：支持按含义而非仅关键词查找笔记（v0.19+ 新特性）。\n*   **自动同步**：运行 `basic-memory sync --watch` 可开启实时文件监听。\n*   **手动更新**：运行 `bm update` 可检查并安装最新版本。\n\n现在，你可以开始与 AI 进行拥有“长期记忆”的对话了。","资深后端工程师李明正在维护一个复杂的微服务架构项目，需要频繁与 AI 助手协作进行代码重构和技术文档更新。\n\n### 没有 basic-memory 时\n- 每次开启新对话，李明都必须重新粘贴项目架构图、技术栈说明和当前的待办事项，耗费大量时间“热身”。\n- AI 经常遗忘上周讨论过的数据库变更方案，导致生成的代码与现有结构冲突，需要人工反复纠正。\n- 分散在聊天记录中的关键决策（如 API 设计规范）难以检索，随着对话变长，重要上下文逐渐丢失。\n- 不同设备间的开发进度无法同步，在办公室电脑上的讨论记录无法直接延续到家里的笔记本上。\n\n### 使用 basic-memory 后\n- 李明只需自然地说“继续昨天的支付模块重构”，basic-memory 自动从本地 Markdown 文件中加载完整的项目背景和历史决策。\n- AI 能实时读取并更新本地知识库，准确引用之前确定的数据库 Schema，生成的代码可直接复用且逻辑连贯。\n- 利用语义向量搜索功能，李明可以通过“查找关于重试机制的讨论”瞬间定位到具体的笔记片段，无需翻阅冗长记录。\n- 借助云同步选项，他在公司电脑上的对话上下文无缝流转到个人设备，真正实现跨平台的连续开发体验。\n\nbasic-memory 将短暂的聊天转化为持久的项目记忆，让 AI 真正成为懂你项目的长期合作伙伴。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbasicmachines-co_basic-memory_d684060b.png","basicmachines-co","Basic Machines","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fbasicmachines-co_b1f31aeb.png","",null,"hello@basicmachines.co","https:\u002F\u002Fwww.basicmachines.co\u002F","https:\u002F\u002Fgithub.com\u002Fbasicmachines-co",[84,88,92,95,99,103,107,110,112],{"name":85,"color":86,"percentage":87},"Python","#3572A5",80.1,{"name":89,"color":90,"percentage":91},"HTML","#e34c26",17.4,{"name":93,"color":94,"percentage":23},"TypeScript","#3178c6",{"name":96,"color":97,"percentage":98},"Just","#384d54",0.3,{"name":100,"color":101,"percentage":102},"Handlebars","#f7931e",0.1,{"name":104,"color":105,"percentage":106},"JavaScript","#f1e05a",0,{"name":108,"color":109,"percentage":106},"CSS","#663399",{"name":111,"color":97,"percentage":106},"Dockerfile",{"name":113,"color":114,"percentage":106},"Mako","#7e858d",2751,180,"2026-04-03T06:14:09","AGPL-3.0","Linux, macOS, Windows","未说明",{"notes":122,"python":123,"dependencies":124},"该工具采用本地优先架构，核心依赖本地 Markdown 文件和 SQLite 数据库进行知识存储与索引，无需重型 GPU 支持。推荐使用 'uv' 包管理器进行安装（如 uv tool install basic-memory）。支持通过 MCP 协议与 Claude Desktop、VS Code 等客户端集成。可选云同步功能，但核心工作流完全在本地运行。","3.12+",[125,126,127],"FastEmbed","FastMCP>=3.0","SQLite",[13,14,53,26,15],[130,131,132,133,134,135,136,137,138,139,140,141,142,143,144],"ai","claude","llm","mcp","open-source","python","obsidian","obsidian-md","knowledge-management","knowlege-graph","local-first","markdown","privacy-first","privacy-first-ai","productivity","2026-03-27T02:49:30.150509","2026-04-06T07:00:44.839429",[148,153,158,163,168,173],{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},12191,"如何在 mcp.json 中为 basic-memory 配置每个项目的变量（如项目名称和内存路径）？","basic-memory 现已支持在 mcp.json 的 args 数组中使用 --project 和 --memory_home 变量。您可以这样配置：\n{\n  \"mcpServers\": {\n    \"basic-memory\": {\n      \"command\": \"uvx\",\n      \"args\": [\"basic-memory\", \"--project=project_name\", \"--memory_home=~\u002Fpath\u002Fto\u002Fmemory\", \"mcp\"]\n    }\n  }\n}\n系统会自动识别这些变量，如果指定的项目或路径不存在，它会自动创建。这使得在不同项目间复制和复用配置变得非常容易。","https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fissues\u002F220",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},12192,"执行 write_note 工具时遇到 'no such table: entity' 错误怎么办？","此问题出现在 v0.12.0 版本中，是由于数据库表缺失导致的。该问题已在 v0.12.1 版本中修复。请升级您的 basic-memory 到 v0.12.1 或更高版本即可解决：\nuv tool upgrade basic-memory\n或者重新安装最新版本。","https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fissues\u002F87",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},12193,"调用 build_context 时遇到 MCP 客户端 schema 验证失败（缺少 date-time 格式或必填字段）如何解决？","这是一个已知的 schema 定义问题，导致 MCP 客户端验证失败。维护者已通过添加正确的 JSON schema 格式注解（format: \"date-time\"）和补充必填字段（relation_type, category）修复了此问题。请确保您使用的是修复后的最新版本。如果问题仍然存在，临时解决方案是避免直接使用 build_context，而是组合使用 search_notes → read_note → 获取相关笔记来模拟上下文构建。","https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fissues\u002F263",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},12194,"应该从哪里获取 official 的 basic-memory Docker 镜像？docker.io 上的镜像不是最新的吗？","是的，docker.io 上的镜像可能不是最新的。官方的 basic-memory Docker 镜像发布在 GitHub Container Registry (ghcr.io) 上。请使用以下地址拉取最新官方镜像：\ndocker pull ghcr.io\u002Fbasicmachines-co\u002Fbasic-memory\n此外，项目已配置自动化的 GitHub Action，在新版本发布时会自动构建并推送最新镜像到 ghcr.io。","https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fissues\u002F153",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},12195,"升级 basic-memory 后 CLI 命令卡住无响应（hangs）怎么办？","此问题在 v0.17.4 版本中出现，表现为大多数 CLI 命令执行后挂起，需要 Ctrl-C 强制退出。该问题已在 v0.17.5 版本中修复。请升级到 v0.17.5 或更高版本：\nuv tool upgrade basic-memory\n升级后问题应得到解决。","https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fissues\u002F504",{"id":174,"question_zh":175,"answer_zh":176,"source_url":167},12196,"Docker 容器中 basic-memory 无法索引 \u002Fapp\u002Fdata 目录下的文件怎么办？","这是因为容器内的 .basic-memory\u002Fconfig.json 未正确配置指向挂载的数据目录。解决方法是使用项目提供的初始化脚本 docker-init.sh，它会自动配置 config.json 指向 \u002Fapp\u002Fdata。更新您的 Dockerfile 使用该初始化脚本作为入口点，并确保在 docker-compose.yml 中正确挂载数据卷。具体实现可参考项目中针对此问题的 PR 修改。",[178,183,188,193,198,203,208,213,218,223,228,233,238,243,248,253,258,263,268,273],{"id":179,"version":180,"summary_zh":181,"released_at":182},62593,"v0.20.3","## 变更内容\n* 修复(cli)：在 `doctor` 命令中使用解析后的项目路径，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F667 中完成\n* 修复(core)：从嵌入覆盖率统计中排除过时的实体行，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F675 中完成\n* 修复(mcp)：在 `edit_note` 和 `delete_note` 中添加对 `memory:\u002F\u002F` URL 的项目检测，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F668 中完成\n* 修复(core)：允许双点文件名，同时仍阻止路径遍历，由 @jope-bm 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F673 中完成\n* 新增功能(core)：添加 `default_search_type` 配置项，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F676 中完成\n* 新增功能：添加 Logfire 分阶段仪器化，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F692 中完成\n* 修复：（云）CLI 云命令现在会在配置时使用 API 密钥，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F698 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.20.2...v0.20.3","2026-03-27T04:10:46",{"id":184,"version":185,"summary_zh":186,"released_at":187},62594,"v0.20.2","**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.20.1...v0.20.2","2026-03-11T04:14:47",{"id":189,"version":190,"summary_zh":191,"released_at":192},62595,"v0.20.1","## 变更内容\n* 修复(cli)：项目列表中的 MCP 列显示传输类型，而非数据库是否存在，由 @groksrc 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F661 中完成。\n* 修复(core)：当配置文件被其他进程修改时，失效配置缓存，由 @groksrc 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F662 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.20.0...v0.20.1","2026-03-11T04:07:18",{"id":194,"version":195,"summary_zh":196,"released_at":197},62596,"v0.20.0","## 变更内容\n* 功能（CLI）：新增默认开启的自动更新机制及 `bm update` 命令，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F643 中实现。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.19.2...v0.20.0","2026-03-11T03:08:53",{"id":199,"version":200,"summary_zh":201,"released_at":202},62597,"v0.19.2","## 变更内容\n* 修复（核心）：由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F655 中处理 SQLite 和 Windows 的语义回归问题\n* 修复：在 MCP 工具中将字符串参数强制转换为列表\u002F字典，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F657 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.19.1...v0.19.2","2026-03-10T04:42:57",{"id":204,"version":205,"summary_zh":206,"released_at":207},62598,"v0.19.1","## 变更内容\n* chore(deps): 在 uv 组的 1 个目录中，将 authlib 从 1.6.6 升级到 1.6.7，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F645 中完成\n* feat: 添加 insert_before_section 和 insert_after_section 编辑操作，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F648 中完成\n* fix: 在破坏性 MCP 工具中强制执行严格的实体解析，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F650 中完成\n\n## 新贡献者\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F645 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.19.0...v0.19.1","2026-03-08T23:09:59",{"id":209,"version":210,"summary_zh":211,"released_at":212},62599,"v0.19.0","## 变更内容\n* 功能：由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F549 中实现的基础记忆 Schema 系统\n* 修复：在 SQLite 迁移中使用 VIRTUAL 而不是 STORED 列，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F562 中完成\n* 杂项：发布 v0.18.2 版本，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F563 中完成\n* 修复：在所有 rclone 事务中使用全局 --header 参数以确保 Tigris 的一致性，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F564 中完成\n* 功能：为 SQLite 和 Postgres 添加语义向量搜索功能，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F550 中实现\n* 功能：添加 basic-memory watch CLI 命令，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F559 中完成\n* 功能：默认启用 default_project_mode，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F560 中实现\n* 功能：在 CLI 和 MCP 中添加云发现触点，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F546 中完成\n* 修复：将语义搜索的依赖项设为可选的附加组件，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F566 中完成\n* 功能：为每个项目添加基于 API 密钥认证的本地\u002F云端路由功能，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F555 中实现\n* 功能：根据配置目录隔离默认的 SQLite 数据库，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F567 中完成\n* 修复：加快 bm --version 命令的启动速度，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F534 中完成\n* 功能（MCP）：添加 MCP UI 变体和 TUI 输出，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F545 中完成\n* 功能：为项目添加带前缀的永久链接及记忆 URL 路由功能，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F544 中实现\n* 功能：在 EntityResponse 和链接解析器中公开 external_id 字段，由 @groksrc 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F569 中完成\n* 功能：新增 min_similarity 覆盖选项，并优化云推广功能，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F570 中完成\n* 功能：新增最小相似度覆盖、edit-note CLI 命令以及去除前端元数据功能，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F571 中完成\n* 功能：为 MCP 和 CLI 添加工作区选择流程，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F576 中完成\n* 功能：为 BM MCP 工具添加 JSON 输出模式（默认为文本模式），由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F585 中完成\n* 杂项：将语义相关依赖项设为默认，自动补全嵌入并向量搜索默认启用语义搜索，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F586 中完成\n* 功能：通过 Umami 事件收集器实现 CLI 分析功能，由 @bm-clawd 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F572 中完成\n* 功能：使标准输入输出的 MCP 能够遵循每个项目的云端路由设置，由 @phernandez 在 https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F590 中完成\n* 功能：在 ProjectItem 中添加 display_name 和 is_private 字段，由 @jope-bm 在 https:\u002F\u002Fgithub.com\u002F","2026-03-07T20:28:32",{"id":214,"version":215,"summary_zh":216,"released_at":217},62600,"v0.18.5","**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.18.4...v0.18.5","2026-02-20T18:43:57",{"id":219,"version":220,"summary_zh":221,"released_at":222},62601,"v0.18.4","**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.18.2...v0.18.4\n\n### 错误修复\n- 在所有 rclone 事务中使用全局 `--header` 标志，以保持与 Tigris 的一致性\n  ([`0eae0e1`](https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcommit\u002F0eae0e1))\n- `--header-download` \u002F `--header-upload` 仅适用于 GET\u002FPUT 请求，遗漏了 S3 的 ListObjectsV2 调用，导致 bisync 首先处理这些调用。非美国地区的用户曾看到过时的边缘缓存元数据。\n- `--header` 现已应用于所有 HTTP 事务（列出、下载、上传），从而修复了位于 Tigris 源区域之外的用户的 bisync 功能。","2026-02-12T21:28:37",{"id":224,"version":225,"summary_zh":226,"released_at":227},62602,"v0.18.2","## v0.18.2（2026-02-11）\n\n### 错误修复\n\n- **#562**：在 SQLite 迁移中使用 VIRTUAL 列而非 STORED 列\n  ([`344e651`](https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcommit\u002F344e651))\n  - 修复了与 SQLite STORED 生成列的兼容性问题\n\n\n**完整更新日志**：https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.18.1...v0.18.2","2026-02-12T04:34:40",{"id":229,"version":230,"summary_zh":231,"released_at":232},62603,"v0.18.1","## What's Changed\n* fix: prevent spurious 'metadata: {}' in frontmatter output by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F530\n* feat: fast edit entities, refactors for webui, enhance search by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F532\n* fix: stabilize metadata filters on postgres by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F536\n* chore: Add fast feedback loop tooling by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F538\n* feat: Support tag: query shorthand in search by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F535\n* fix: recent_activity prompt defaults by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F533\n* fix: Handle EntityCreationError as conflict by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F541\n* feat: add --format json to CLI tool commands by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F552\n* fix: add X-Tigris-Consistent headers to all rclone commands by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F558\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.18.0...v0.18.1","2026-02-11T20:31:01",{"id":234,"version":235,"summary_zh":236,"released_at":237},62604,"v0.18.0","## What's Changed\n* fix: resolve MCP prompt rendering errors by @groksrc in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F524\n* feat: Feature\u002F517 local mcp cloud mode by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F522\n* feat: add directory support to move_note and delete_note tools by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F518\n* feat: add context-aware wiki link resolution with source_path support by @groksrc in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F527\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.17.9...v0.18.0","2026-01-30T04:42:25",{"id":239,"version":240,"summary_zh":241,"released_at":242},62605,"v0.17.9","## What's Changed\n* fix: check config default_project only in local mode for remove_project by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F523\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.17.8...v0.17.9","2026-01-24T18:56:45",{"id":244,"version":245,"summary_zh":246,"released_at":247},62606,"v0.17.8","## What's Changed\n* feat: add SPEC-29 Phase 3 bucket snapshot CLI commands by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F476\n* fix: read default project from database in cloud mode by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F520\n* fix: correct get_default_project() query to check for True instead of not NULL by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F521\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.17.7...v0.17.8","2026-01-24T17:44:08",{"id":249,"version":250,"summary_zh":251,"released_at":252},62607,"v0.17.7","## What's Changed\n* chore: Remove OpenPanel telemetry by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F514\n* fix: ensure external_id is set on entity creation (#512) by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F513\n* feat: Add MCP registry publication files by @groksrc in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F515\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.17.6...v0.17.7","2026-01-19T18:13:07",{"id":254,"version":255,"summary_zh":256,"released_at":257},62608,"v0.17.6","**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.17.5...v0.17.6","2026-01-17T21:15:32",{"id":259,"version":260,"summary_zh":261,"released_at":262},62609,"v0.17.5","## What's Changed\n* fix: prevent CLI commands from hanging on exit (Python 3.14) by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F505\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.17.4...v0.17.5\n\n## What's Changed\n* fix: prevent CLI commands from hanging on exit (Python 3.14) by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F505\n* fix: Docker container Python symlink broken at runtime by @groksrc in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F510\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.17.4...v0.17.5","2026-01-11T22:54:41",{"id":264,"version":265,"summary_zh":266,"released_at":267},62610,"v0.17.4","## What's Changed\n* refactor: composition roots, deps split, and typed API clients (#490 roadmap) by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F502\n* fix: preserve search index across server restarts by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F503\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.17.3...v0.17.4","2026-01-06T03:38:25",{"id":269,"version":270,"summary_zh":271,"released_at":272},62611,"v0.17.3","## What's Changed\n* fix: make RelationResponse.from_id optional to handle null permalinks by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F484\n* fix: set_default_project skips config file update in cloud mode by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F486\n* feat: add stable external_id (UUID) to Project and Entity models by @jope-bm in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F485\n* test: remove stdlib mocks, strengthen integration coverage by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F489\n* fix: route ordering for cloud by @phernandez in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F499\n* fix: update mcp to support protocol version 2025-11-25 by @groksrc in https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fpull\u002F501\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.17.2...v0.17.3","2026-01-03T19:08:32",{"id":274,"version":275,"summary_zh":276,"released_at":277},62612,"v0.17.2","**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbasicmachines-co\u002Fbasic-memory\u002Fcompare\u002Fv0.17.1...v0.17.2","2025-12-29T22:48:07"]