basic-memory 0.10.0__tar.gz → 0.11.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of basic-memory might be problematic. Click here for more details.

Files changed (221) hide show
  1. {basic_memory-0.10.0 → basic_memory-0.11.0}/CHANGELOG.md +158 -0
  2. {basic_memory-0.10.0 → basic_memory-0.11.0}/CLAUDE.md +22 -18
  3. {basic_memory-0.10.0 → basic_memory-0.11.0}/PKG-INFO +17 -4
  4. {basic_memory-0.10.0 → basic_memory-0.11.0}/README.md +16 -3
  5. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/AI Assistant Guide.md +7 -5
  6. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/CLI Reference.md +36 -9
  7. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/Getting Started with Basic Memory.md +58 -21
  8. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/Technical Information.md +1 -1
  9. basic_memory-0.11.0/docs/attachments/disk-ai-logo-400x400.png +0 -0
  10. basic_memory-0.11.0/llms-install.md +128 -0
  11. {basic_memory-0.10.0 → basic_memory-0.11.0}/pyproject.toml +2 -1
  12. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/__init__.py +1 -1
  13. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/commands/__init__.py +1 -2
  14. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/commands/db.py +15 -2
  15. basic_memory-0.10.0/src/basic_memory/cli/commands/project_info.py → basic_memory-0.11.0/src/basic_memory/cli/commands/project.py +126 -8
  16. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/commands/tool.py +8 -4
  17. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/config.py +45 -10
  18. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/markdown/entity_parser.py +13 -10
  19. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/markdown/schemas.py +1 -1
  20. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +1 -3
  21. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/prompts/continue_conversation.py +3 -3
  22. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/prompts/search.py +4 -4
  23. {basic_memory-0.10.0/static → basic_memory-0.11.0/src/basic_memory/mcp/resources}/ai_assistant_guide.md +5 -5
  24. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/__init__.py +2 -2
  25. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/read_note.py +3 -3
  26. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/search.py +11 -11
  27. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/write_note.py +17 -7
  28. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/services/entity_service.py +11 -1
  29. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/sync/watch_service.py +1 -1
  30. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/utils.py +27 -1
  31. basic_memory-0.11.0/static/ai_assistant_guide.md +413 -0
  32. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/test_cli_tools.py +2 -2
  33. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/test_project_commands.py +52 -2
  34. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/test_project_info.py +2 -2
  35. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/test_tool_notes.py +92 -1
  36. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/test_tool_read_note.py +1 -1
  37. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/test_tool_search.py +5 -5
  38. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/services/test_entity_service.py +1 -1
  39. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/sync/test_tmp_files.py +53 -50
  40. basic_memory-0.11.0/tests/utils/test_utf8_handling.py +195 -0
  41. {basic_memory-0.10.0 → basic_memory-0.11.0}/uv.lock +210 -180
  42. basic_memory-0.10.0/src/basic_memory/cli/commands/project.py +0 -119
  43. {basic_memory-0.10.0 → basic_memory-0.11.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  44. {basic_memory-0.10.0 → basic_memory-0.11.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  45. {basic_memory-0.10.0 → basic_memory-0.11.0}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  46. {basic_memory-0.10.0 → basic_memory-0.11.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  47. {basic_memory-0.10.0 → basic_memory-0.11.0}/.github/dependabot.yml +0 -0
  48. {basic_memory-0.10.0 → basic_memory-0.11.0}/.github/workflows/pr-title.yml +0 -0
  49. {basic_memory-0.10.0 → basic_memory-0.11.0}/.github/workflows/release.yml +0 -0
  50. {basic_memory-0.10.0 → basic_memory-0.11.0}/.github/workflows/test.yml +0 -0
  51. {basic_memory-0.10.0 → basic_memory-0.11.0}/.gitignore +0 -0
  52. {basic_memory-0.10.0 → basic_memory-0.11.0}/.python-version +0 -0
  53. {basic_memory-0.10.0 → basic_memory-0.11.0}/CITATION.cff +0 -0
  54. {basic_memory-0.10.0 → basic_memory-0.11.0}/CLA.md +0 -0
  55. {basic_memory-0.10.0 → basic_memory-0.11.0}/CODE_OF_CONDUCT.md +0 -0
  56. {basic_memory-0.10.0 → basic_memory-0.11.0}/CONTRIBUTING.md +0 -0
  57. {basic_memory-0.10.0 → basic_memory-0.11.0}/Dockerfile +0 -0
  58. {basic_memory-0.10.0 → basic_memory-0.11.0}/LICENSE +0 -0
  59. {basic_memory-0.10.0 → basic_memory-0.11.0}/Makefile +0 -0
  60. {basic_memory-0.10.0 → basic_memory-0.11.0}/SECURITY.md +0 -0
  61. {basic_memory-0.10.0 → basic_memory-0.11.0}/basic-memory.md +0 -0
  62. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/Canvas.md +0 -0
  63. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/Knowledge Format.md +0 -0
  64. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/Obsidian Integration.md +0 -0
  65. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/User Guide.md +0 -0
  66. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/Welcome to Basic memory.md +0 -0
  67. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/attachments/Canvas.png +0 -0
  68. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/attachments/Claude-Obsidian-Demo.mp4 +0 -0
  69. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/attachments/Prompt.png +0 -0
  70. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/attachments/disk-ai-logo.png +0 -0
  71. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/attachments/prompt 1.png +0 -0
  72. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/attachments/prompt2.png +0 -0
  73. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/attachments/prompt3.png +0 -0
  74. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/attachments/prompt4.png +0 -0
  75. {basic_memory-0.10.0 → basic_memory-0.11.0}/docs/publish.js +0 -0
  76. {basic_memory-0.10.0 → basic_memory-0.11.0}/examples/Coffee Notes/Brewing Equipment.md +0 -0
  77. {basic_memory-0.10.0 → basic_memory-0.11.0}/examples/Coffee Notes/Coffee Bean Origins.md +0 -0
  78. {basic_memory-0.10.0 → basic_memory-0.11.0}/examples/Coffee Notes/Coffee Brewing Methods.md +0 -0
  79. {basic_memory-0.10.0 → basic_memory-0.11.0}/examples/Coffee Notes/Coffee Flavor Map.md +0 -0
  80. {basic_memory-0.10.0 → basic_memory-0.11.0}/examples/Coffee Notes/Coffee Knowledge Base.md +0 -0
  81. {basic_memory-0.10.0 → basic_memory-0.11.0}/examples/Coffee Notes/Flavor Extraction.md +0 -0
  82. {basic_memory-0.10.0 → basic_memory-0.11.0}/examples/Coffee Notes/Perfect Pour Over Coffee Method.canvas +0 -0
  83. {basic_memory-0.10.0 → basic_memory-0.11.0}/examples/Coffee Notes/Tasting Notes.md +0 -0
  84. {basic_memory-0.10.0 → basic_memory-0.11.0}/installer/Basic.icns +0 -0
  85. {basic_memory-0.10.0 → basic_memory-0.11.0}/installer/README.md +0 -0
  86. {basic_memory-0.10.0 → basic_memory-0.11.0}/installer/icon.svg +0 -0
  87. {basic_memory-0.10.0 → basic_memory-0.11.0}/installer/installer.py +0 -0
  88. {basic_memory-0.10.0 → basic_memory-0.11.0}/installer/make_icons.sh +0 -0
  89. {basic_memory-0.10.0 → basic_memory-0.11.0}/installer/setup.py +0 -0
  90. {basic_memory-0.10.0 → basic_memory-0.11.0}/memory.json +0 -0
  91. {basic_memory-0.10.0 → basic_memory-0.11.0}/scripts/install.sh +0 -0
  92. {basic_memory-0.10.0 → basic_memory-0.11.0}/smithery.yaml +0 -0
  93. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/alembic/alembic.ini +0 -0
  94. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/alembic/env.py +0 -0
  95. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/alembic/migrations.py +0 -0
  96. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/alembic/script.py.mako +0 -0
  97. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
  98. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
  99. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
  100. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
  101. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/api/__init__.py +0 -0
  102. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/api/app.py +0 -0
  103. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/api/routers/__init__.py +0 -0
  104. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/api/routers/knowledge_router.py +0 -0
  105. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/api/routers/memory_router.py +0 -0
  106. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/api/routers/project_info_router.py +0 -0
  107. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/api/routers/resource_router.py +0 -0
  108. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/api/routers/search_router.py +0 -0
  109. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/__init__.py +0 -0
  110. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/app.py +0 -0
  111. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
  112. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
  113. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
  114. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
  115. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/commands/mcp.py +0 -0
  116. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/commands/status.py +0 -0
  117. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/commands/sync.py +0 -0
  118. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/cli/main.py +0 -0
  119. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/db.py +0 -0
  120. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/deps.py +0 -0
  121. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/file_utils.py +0 -0
  122. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/markdown/__init__.py +0 -0
  123. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/markdown/markdown_processor.py +0 -0
  124. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/markdown/plugins.py +0 -0
  125. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/markdown/utils.py +0 -0
  126. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/__init__.py +0 -0
  127. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/async_client.py +0 -0
  128. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/main.py +0 -0
  129. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/prompts/__init__.py +0 -0
  130. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
  131. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/prompts/utils.py +0 -0
  132. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/server.py +0 -0
  133. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/build_context.py +0 -0
  134. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/canvas.py +0 -0
  135. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/delete_note.py +0 -0
  136. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/project_info.py +0 -0
  137. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/read_content.py +0 -0
  138. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
  139. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/mcp/tools/utils.py +0 -0
  140. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/models/__init__.py +0 -0
  141. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/models/base.py +0 -0
  142. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/models/knowledge.py +0 -0
  143. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/models/search.py +0 -0
  144. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/repository/__init__.py +0 -0
  145. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/repository/entity_repository.py +0 -0
  146. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/repository/observation_repository.py +0 -0
  147. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/repository/project_info_repository.py +0 -0
  148. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/repository/relation_repository.py +0 -0
  149. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/repository/repository.py +0 -0
  150. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/repository/search_repository.py +0 -0
  151. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/schemas/__init__.py +0 -0
  152. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/schemas/base.py +0 -0
  153. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/schemas/delete.py +0 -0
  154. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/schemas/memory.py +0 -0
  155. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/schemas/project_info.py +0 -0
  156. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/schemas/request.py +0 -0
  157. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/schemas/response.py +0 -0
  158. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/schemas/search.py +0 -0
  159. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/services/__init__.py +0 -0
  160. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/services/context_service.py +0 -0
  161. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/services/exceptions.py +0 -0
  162. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/services/file_service.py +0 -0
  163. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/services/link_resolver.py +0 -0
  164. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/services/search_service.py +0 -0
  165. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/services/service.py +0 -0
  166. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/sync/__init__.py +0 -0
  167. {basic_memory-0.10.0 → basic_memory-0.11.0}/src/basic_memory/sync/sync_service.py +0 -0
  168. {basic_memory-0.10.0 → basic_memory-0.11.0}/static/json_canvas_spec_1_0.md +0 -0
  169. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/Non-MarkdownFileSupport.pdf +0 -0
  170. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/Screenshot.png +0 -0
  171. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/__init__.py +0 -0
  172. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/api/conftest.py +0 -0
  173. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/api/test_knowledge_router.py +0 -0
  174. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/api/test_memory_router.py +0 -0
  175. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/api/test_project_info_router.py +0 -0
  176. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/api/test_resource_router.py +0 -0
  177. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/api/test_search_router.py +0 -0
  178. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/conftest.py +0 -0
  179. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/test_import_chatgpt.py +0 -0
  180. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/test_import_claude_conversations.py +0 -0
  181. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/test_import_claude_projects.py +0 -0
  182. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/test_import_memory_json.py +0 -0
  183. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/test_status.py +0 -0
  184. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/test_sync.py +0 -0
  185. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/cli/test_version.py +0 -0
  186. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/conftest.py +0 -0
  187. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/edit_file_test.py +0 -0
  188. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/markdown/__init__.py +0 -0
  189. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/markdown/test_entity_parser.py +0 -0
  190. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/markdown/test_markdown_plugins.py +0 -0
  191. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/markdown/test_markdown_processor.py +0 -0
  192. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/markdown/test_observation_edge_cases.py +0 -0
  193. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/markdown/test_parser_edge_cases.py +0 -0
  194. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/markdown/test_relation_edge_cases.py +0 -0
  195. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/markdown/test_task_detection.py +0 -0
  196. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/conftest.py +0 -0
  197. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/test_prompts.py +0 -0
  198. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/test_resources.py +0 -0
  199. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/test_tool_canvas.py +0 -0
  200. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/test_tool_memory.py +0 -0
  201. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/test_tool_project_info.py +0 -0
  202. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/test_tool_resource.py +0 -0
  203. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/mcp/test_tool_utils.py +0 -0
  204. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/repository/test_entity_repository.py +0 -0
  205. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/repository/test_observation_repository.py +0 -0
  206. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/repository/test_relation_repository.py +0 -0
  207. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/repository/test_repository.py +0 -0
  208. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/schemas/test_memory_url.py +0 -0
  209. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/schemas/test_schemas.py +0 -0
  210. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/schemas/test_search.py +0 -0
  211. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/services/test_context_service.py +0 -0
  212. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/services/test_file_service.py +0 -0
  213. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/services/test_link_resolver.py +0 -0
  214. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/services/test_search_service.py +0 -0
  215. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/sync/test_sync_service.py +0 -0
  216. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/sync/test_watch_service.py +0 -0
  217. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/sync/test_watch_service_edge_cases.py +0 -0
  218. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/test_basic_memory.py +0 -0
  219. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/test_config.py +0 -0
  220. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/utils/test_file_utils.py +0 -0
  221. {basic_memory-0.10.0 → basic_memory-0.11.0}/tests/utils/test_permalink_formatting.py +0 -0
@@ -1,6 +1,164 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v0.11.0 (2025-03-29)
5
+
6
+ ### Bug Fixes
7
+
8
+ - Just delete db for reset db instead of using migrations.
9
+ ([#65](https://github.com/basicmachines-co/basic-memory/pull/65),
10
+ [`0743ade`](https://github.com/basicmachines-co/basic-memory/commit/0743ade5fc07440f95ecfd816ba7e4cfd74bca12))
11
+
12
+ Signed-off-by: phernandez <paul@basicmachines.co>
13
+
14
+ - Make logs for each process - mcp, sync, cli
15
+ ([#64](https://github.com/basicmachines-co/basic-memory/pull/64),
16
+ [`f1c9570`](https://github.com/basicmachines-co/basic-memory/commit/f1c95709cbffb1b88292547b0b8f29fcca22d186))
17
+
18
+ Signed-off-by: phernandez <paul@basicmachines.co>
19
+
20
+ ### Documentation
21
+
22
+ - Update broken "Multiple Projects" link in README.md
23
+ ([#55](https://github.com/basicmachines-co/basic-memory/pull/55),
24
+ [`3c68b7d`](https://github.com/basicmachines-co/basic-memory/commit/3c68b7d5dd689322205c67637dca7d188111ee6b))
25
+
26
+ ### Features
27
+
28
+ - Add bm command alias for basic-memory
29
+ ([#67](https://github.com/basicmachines-co/basic-memory/pull/67),
30
+ [`069c0a2`](https://github.com/basicmachines-co/basic-memory/commit/069c0a21c630784e1bf47d2b7de5d6d1f6fadd7a))
31
+
32
+ Signed-off-by: phernandez <paul@basicmachines.co>
33
+
34
+ - Rename search tool to search_notes
35
+ ([#66](https://github.com/basicmachines-co/basic-memory/pull/66),
36
+ [`b278276`](https://github.com/basicmachines-co/basic-memory/commit/b27827671dc010be3e261b8b221aca6b7f836661))
37
+
38
+ Signed-off-by: phernandez <paul@basicmachines.co>
39
+
40
+
41
+ ## v0.10.1 (2025-03-25)
42
+
43
+ ### Bug Fixes
44
+
45
+ - Make set_default_project also activate project for current session to fix #37
46
+ ([`cbe72be`](https://github.com/basicmachines-co/basic-memory/commit/cbe72be10a646c0b03931bb39aff9285feae47f9))
47
+
48
+ This change makes the 'basic-memory project default <name>' command both: 1. Set the default project
49
+ for future invocations (persistent change) 2. Activate the project for the current session
50
+ (immediate change)
51
+
52
+ Added tests to verify this behavior, which resolves issue #37 where the project name and path
53
+ weren't changing properly when the default project was changed.
54
+
55
+ 🤖 Generated with [Claude Code](https://claude.ai/code)
56
+
57
+ Co-Authored-By: Claude <noreply@anthropic.com>
58
+
59
+ - Make set_default_project also activate project for current session to fix #37
60
+ ([`46c4fd2`](https://github.com/basicmachines-co/basic-memory/commit/46c4fd21645b109af59eb2a0201c7bd849b34a49))
61
+
62
+ This change makes the 'basic-memory project default <name>' command both: 1. Set the default project
63
+ for future invocations (persistent change) 2. Activate the project for the current session
64
+ (immediate change)
65
+
66
+ Added tests to verify this behavior, which resolves issue #37 where the project name and path
67
+ weren't changing properly when the default project was changed.
68
+
69
+ 🤖 Generated with [Claude Code](https://claude.ai/code)
70
+
71
+ Co-Authored-By: Claude <noreply@anthropic.com>
72
+
73
+ Signed-off-by: phernandez <paul@basicmachines.co>
74
+
75
+ - Move ai_assistant_guide.md into package resources to fix #39
76
+ ([`390ff9d`](https://github.com/basicmachines-co/basic-memory/commit/390ff9d31ccee85bef732e8140b5eeecd7ee176f))
77
+
78
+ This change relocates the AI assistant guide from the static directory into the package resources
79
+ directory, ensuring it gets properly included in the distribution package and is accessible when
80
+ installed via pip/uv.
81
+
82
+ 🤖 Generated with [Claude Code](https://claude.ai/code)
83
+
84
+ Co-Authored-By: Claude <noreply@anthropic.com>
85
+
86
+ - Move ai_assistant_guide.md into package resources to fix #39
87
+ ([`cc2cae7`](https://github.com/basicmachines-co/basic-memory/commit/cc2cae72c14b380f78ffeb67c2261e4dbee45faf))
88
+
89
+ This change relocates the AI assistant guide from the static directory into the package resources
90
+ directory, ensuring it gets properly included in the distribution package and is accessible when
91
+ installed via pip/uv.
92
+
93
+ 🤖 Generated with [Claude Code](https://claude.ai/code)
94
+
95
+ Co-Authored-By: Claude <noreply@anthropic.com>
96
+
97
+ Signed-off-by: phernandez <paul@basicmachines.co>
98
+
99
+ - Preserve custom frontmatter fields when updating notes
100
+ ([`78f234b`](https://github.com/basicmachines-co/basic-memory/commit/78f234b1806b578a0a833e8ee4184015b7369a97))
101
+
102
+ Fixes #36 by modifying entity_service.update_entity() to read existing frontmatter from files before
103
+ updating them. Custom metadata fields such as Status, Priority, and Version are now preserved when
104
+ notes are updated through the write_note MCP tool.
105
+
106
+ Added test case that verifies this behavior by creating a note with custom frontmatter and then
107
+ updating it.
108
+
109
+ 🤖 Generated with [Claude Code](https://claude.ai/code)
110
+
111
+ Co-Authored-By: Claude <noreply@anthropic.com>
112
+
113
+ - Preserve custom frontmatter fields when updating notes
114
+ ([`e716946`](https://github.com/basicmachines-co/basic-memory/commit/e716946b4408d017eca4be720956d5a210b4e6b1))
115
+
116
+ Fixes #36 by modifying entity_service.update_entity() to read existing frontmatter from files before
117
+ updating them. Custom metadata fields such as Status, Priority, and Version are now preserved when
118
+ notes are updated through the write_note MCP tool.
119
+
120
+ Added test case that verifies this behavior by creating a note with custom frontmatter and then
121
+ updating it.
122
+
123
+ 🤖 Generated with [Claude Code](https://claude.ai/code)
124
+
125
+ Co-Authored-By: Claude <noreply@anthropic.com>
126
+
127
+ Signed-off-by: phernandez <paul@basicmachines.co>
128
+
129
+ ### Chores
130
+
131
+ - Remove duplicate code in entity_service.py from bad merge
132
+ ([`681af5d`](https://github.com/basicmachines-co/basic-memory/commit/681af5d4505dadc40b4086630f739d76bac9201d))
133
+
134
+ Signed-off-by: phernandez <paul@basicmachines.co>
135
+
136
+ ### Documentation
137
+
138
+ - Add help docs to mcp cli tools
139
+ ([`731b502`](https://github.com/basicmachines-co/basic-memory/commit/731b502d36cec253d114403d73b48fab3c47786e))
140
+
141
+ Signed-off-by: phernandez <paul@basicmachines.co>
142
+
143
+ - Add mcp badge, update cli reference, llms-install.md
144
+ ([`b26afa9`](https://github.com/basicmachines-co/basic-memory/commit/b26afa927f98021246cd8b64858e57333595ea90))
145
+
146
+ Signed-off-by: phernandez <paul@basicmachines.co>
147
+
148
+ - Update CLAUDE.md ([#33](https://github.com/basicmachines-co/basic-memory/pull/33),
149
+ [`dfaf0fe`](https://github.com/basicmachines-co/basic-memory/commit/dfaf0fea9cf5b97d169d51a6276ec70162c21a7e))
150
+
151
+ fix spelling in CLAUDE.md: enviroment -> environment Signed-off-by: Ikko Eltociear Ashimine
152
+ <eltociear@gmail.com>
153
+
154
+ ### Refactoring
155
+
156
+ - Move project stats into projct subcommand
157
+ ([`2a881b1`](https://github.com/basicmachines-co/basic-memory/commit/2a881b1425c73947f037fbe7ac5539c015b62526))
158
+
159
+ Signed-off-by: phernandez <paul@basicmachines.co>
160
+
161
+
4
162
  ## v0.10.0 (2025-03-15)
5
163
 
6
164
  ### Bug Fixes
@@ -37,6 +37,7 @@ See the [README.md](README.md) file for a project overview.
37
37
  - API uses FastAPI for endpoints
38
38
  - Follow the repository pattern for data access
39
39
  - Tools communicate to api routers via the httpx ASGI client (in process)
40
+ - avoid using "private" functions in modules or classes (prepended with _)
40
41
 
41
42
  ### Codebase Architecture
42
43
 
@@ -63,7 +64,7 @@ See the [README.md](README.md) file for a project overview.
63
64
  - Testing uses pytest with asyncio support (strict mode)
64
65
  - Test database uses in-memory SQLite
65
66
  - Avoid creating mocks in tests in most circumstances.
66
- - Each test runs in a standalone enviroment with in memory SQLite and tmp_file directory
67
+ - Each test runs in a standalone environment with in memory SQLite and tmp_file directory
67
68
 
68
69
  ## BASIC MEMORY PRODUCT USAGE
69
70
 
@@ -106,7 +107,7 @@ See the [README.md](README.md) file for a project overview.
106
107
  1d", "1 week")
107
108
 
108
109
  **Search & Discovery:**
109
- - `search(query, page, page_size)` - Full-text search across all content with filtering options
110
+ - `search_notes(query, page, page_size)` - Full-text search across all content with filtering options
110
111
 
111
112
  **Visualization:**
112
113
  - `canvas(nodes, edges, title, folder)` - Generate Obsidian canvas files for knowledge graph visualization
@@ -114,7 +115,7 @@ See the [README.md](README.md) file for a project overview.
114
115
  - MCP Prompts for better AI interaction:
115
116
  - `ai_assistant_guide()` - Guidance on effectively using Basic Memory tools for AI assistants
116
117
  - `continue_conversation(topic, timeframe)` - Continue previous conversations with relevant historical context
117
- - `search(query, after_date)` - Search with detailed, formatted results for better context understanding
118
+ - `search_notes(query, after_date)` - Search with detailed, formatted results for better context understanding
118
119
  - `recent_activity(timeframe)` - View recently changed items with formatted output
119
120
  - `json_canvas_spec()` - Full JSON Canvas specification for Obsidian visualization
120
121
 
@@ -134,30 +135,32 @@ could achieve independently.
134
135
 
135
136
  ## GitHub Integration
136
137
 
137
- Basic Memory has taken AI-Human collaboration to the next level by integrating Claude directly into the development workflow through GitHub:
138
+ Basic Memory uses Claude directly into the development workflow through GitHub:
138
139
 
139
140
  ### GitHub MCP Tools
140
141
 
141
- Using the GitHub Model Context Protocol server, Claude can now:
142
+ Using the GitHub Model Context Protocol server, Claude can:
142
143
 
143
144
  - **Repository Management**:
144
- - View repository files and structure
145
- - Read file contents
146
- - Create new branches
147
- - Create and update files
145
+ - View repository files and structure
146
+ - Read file contents
147
+ - Create new branches
148
+ - Create and update files
148
149
 
149
150
  - **Issue Management**:
150
- - Create new issues
151
- - Comment on existing issues
152
- - Close and update issues
153
- - Search across issues
151
+ - Create new issues
152
+ - Comment on existing issues
153
+ - Close and update issues
154
+ - Search across issues
154
155
 
155
156
  - **Pull Request Workflow**:
156
- - Create pull requests
157
- - Review code changes
158
- - Add comments to PRs
157
+ - Create pull requests
158
+ - Review code changes
159
+ - Add comments to PRs
159
160
 
160
- This integration enables Claude to participate as a full team member in the development process, not just as a code generation tool. Claude's GitHub account ([bm-claudeai](https://github.com/bm-claudeai)) is a member of the Basic Machines organization with direct contributor access to the codebase.
161
+ This integration enables Claude to participate as a full team member in the development process, not just as a code
162
+ generation tool. Claude's GitHub account ([bm-claudeai](https://github.com/bm-claudeai)) is a member of the Basic
163
+ Machines organization with direct contributor access to the codebase.
161
164
 
162
165
  ### Collaborative Development Process
163
166
 
@@ -168,4 +171,5 @@ With GitHub integration, the development workflow includes:
168
171
  3. **Branch management** - Claude can create feature branches for implementations
169
172
  4. **Documentation maintenance** - Claude can keep documentation updated as the code evolves
170
173
 
171
- This level of integration represents a new paradigm in AI-human collaboration, where the AI assistant becomes a full-fledged team member rather than just a tool for generating code snippets.
174
+ With this integration, the AI assistant is a full-fledged team member rather than just a tool for generating code
175
+ snippets.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: basic-memory
3
- Version: 0.10.0
3
+ Version: 0.11.0
4
4
  Summary: Local-first knowledge management combining Zettelkasten with knowledge graphs
5
5
  Project-URL: Homepage, https://github.com/basicmachines-co/basic-memory
6
6
  Project-URL: Repository, https://github.com/basicmachines-co/basic-memory
@@ -37,6 +37,8 @@ Description-Content-Type: text/markdown
37
37
  [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
38
38
  [![Tests](https://github.com/basicmachines-co/basic-memory/workflows/Tests/badge.svg)](https://github.com/basicmachines-co/basic-memory/actions)
39
39
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
40
+ ![](https://badge.mcpx.dev?type=server 'MCP Server')
41
+ ![](https://badge.mcpx.dev?type=dev 'MCP Dev')
40
42
  [![smithery badge](https://smithery.ai/badge/@basicmachines-co/basic-memory)](https://smithery.ai/server/@basicmachines-co/basic-memory)
41
43
 
42
44
  # Basic Memory
@@ -317,7 +319,8 @@ for OS X):
317
319
  }
318
320
  ```
319
321
 
320
- If you want to use a specific project (see [Multiple Projects](#multiple-projects) below), update your Claude Desktop
322
+ If you want to use a specific project (see [Multiple Projects](docs/User%20Guide.md#multiple-projects)), update your
323
+ Claude Desktop
321
324
  config:
322
325
 
323
326
  ```json
@@ -352,7 +355,7 @@ basic-memory sync --watch
352
355
  write_note(title, content, folder, tags) - Create or update notes
353
356
  read_note(identifier, page, page_size) - Read notes by title or permalink
354
357
  build_context(url, depth, timeframe) - Navigate knowledge graph via memory:// URLs
355
- search(query, page, page_size) - Search across your knowledge base
358
+ search_notes(query, page, page_size) - Search across your knowledge base
356
359
  recent_activity(type, depth, timeframe) - Find recently updated information
357
360
  canvas(nodes, edges, title, folder) - Generate knowledge visualizations
358
361
  ```
@@ -383,4 +386,14 @@ AGPL-3.0
383
386
  Contributions are welcome. See the [Contributing](CONTRIBUTING.md) guide for info about setting up the project locally
384
387
  and submitting PRs.
385
388
 
386
- Built with ♥️ by Basic Machines
389
+ ## Star History
390
+
391
+ <a href="https://www.star-history.com/#basicmachines-co/basic-memory&Date">
392
+ <picture>
393
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=basicmachines-co/basic-memory&type=Date&theme=dark" />
394
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=basicmachines-co/basic-memory&type=Date" />
395
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=basicmachines-co/basic-memory&type=Date" />
396
+ </picture>
397
+ </a>
398
+
399
+ Built with ♥️ by Basic Machines
@@ -3,6 +3,8 @@
3
3
  [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
4
4
  [![Tests](https://github.com/basicmachines-co/basic-memory/workflows/Tests/badge.svg)](https://github.com/basicmachines-co/basic-memory/actions)
5
5
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
6
+ ![](https://badge.mcpx.dev?type=server 'MCP Server')
7
+ ![](https://badge.mcpx.dev?type=dev 'MCP Dev')
6
8
  [![smithery badge](https://smithery.ai/badge/@basicmachines-co/basic-memory)](https://smithery.ai/server/@basicmachines-co/basic-memory)
7
9
 
8
10
  # Basic Memory
@@ -283,7 +285,8 @@ for OS X):
283
285
  }
284
286
  ```
285
287
 
286
- If you want to use a specific project (see [Multiple Projects](#multiple-projects) below), update your Claude Desktop
288
+ If you want to use a specific project (see [Multiple Projects](docs/User%20Guide.md#multiple-projects)), update your
289
+ Claude Desktop
287
290
  config:
288
291
 
289
292
  ```json
@@ -318,7 +321,7 @@ basic-memory sync --watch
318
321
  write_note(title, content, folder, tags) - Create or update notes
319
322
  read_note(identifier, page, page_size) - Read notes by title or permalink
320
323
  build_context(url, depth, timeframe) - Navigate knowledge graph via memory:// URLs
321
- search(query, page, page_size) - Search across your knowledge base
324
+ search_notes(query, page, page_size) - Search across your knowledge base
322
325
  recent_activity(type, depth, timeframe) - Find recently updated information
323
326
  canvas(nodes, edges, title, folder) - Generate knowledge visualizations
324
327
  ```
@@ -349,4 +352,14 @@ AGPL-3.0
349
352
  Contributions are welcome. See the [Contributing](CONTRIBUTING.md) guide for info about setting up the project locally
350
353
  and submitting PRs.
351
354
 
352
- Built with ♥️ by Basic Machines
355
+ ## Star History
356
+
357
+ <a href="https://www.star-history.com/#basicmachines-co/basic-memory&Date">
358
+ <picture>
359
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=basicmachines-co/basic-memory&type=Date&theme=dark" />
360
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=basicmachines-co/basic-memory&type=Date" />
361
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=basicmachines-co/basic-memory&type=Date" />
362
+ </picture>
363
+ </a>
364
+
365
+ Built with ♥️ by Basic Machines
@@ -4,6 +4,8 @@ type: note
4
4
  permalink: docs/ai-assistant-guide
5
5
  ---
6
6
  > Note: This is an optional document that can be copy/pasted into the project knowledge for an LLM to provide a full description of how it can work with Basic Memory. It is provided as a helpful resource. The tools contain extensive usage description prompts with enable the LLM to understand them.
7
+
8
+ You can [download](https://github.com/basicmachines-co/basic-memory/blob/main/docs/AI%20Assistant%20Guide.md) the contents of this file from GitHub
7
9
  # AI Assistant Guide for Basic Memory
8
10
 
9
11
  This guide helps you, the AI assistant, use Basic Memory tools effectively when working with users. It covers reading, writing, and navigating knowledge through the Model Context Protocol (MCP).
@@ -51,7 +53,7 @@ content = await read_note("specs/search-design") # By path
51
53
  content = await read_note("memory://specs/search") # By memory URL
52
54
 
53
55
  # Searching for knowledge
54
- results = await search(
56
+ results = await search_notes(
55
57
  query="authentication system", # Text to search for
56
58
  page=1, # Optional: Pagination
57
59
  page_size=10 # Optional: Results per page
@@ -152,7 +154,7 @@ Users will interact with Basic Memory in patterns like:
152
154
  Human: "What were our decisions about auth?"
153
155
 
154
156
  You: Let me find that information for you.
155
- [Use search() to find relevant notes]
157
+ [Use search_notes() to find relevant notes]
156
158
  [Then build_context() to understand connections]
157
159
  ```
158
160
 
@@ -249,7 +251,7 @@ When creating relations, you can:
249
251
  # Example workflow for creating notes with effective relations
250
252
  async def create_note_with_effective_relations():
251
253
  # Search for existing entities to reference
252
- search_results = await search("travel")
254
+ search_results = await search_notes("travel")
253
255
  existing_entities = [result.title for result in search_results.primary_results]
254
256
 
255
257
  # Check if specific entities exist
@@ -321,7 +323,7 @@ Common issues to watch for:
321
323
  content = await read_note("Document")
322
324
  except:
323
325
  # Try search instead
324
- results = await search("Document")
326
+ results = await search_notes("Document")
325
327
  if results and results.primary_results:
326
328
  # Found something similar
327
329
  content = await read_note(results.primary_results[0].permalink)
@@ -367,7 +369,7 @@ Common issues to watch for:
367
369
  - **Create deliberate relations**: Connect each note to at least 2-3 related entities
368
370
  - **Use existing entities**: Before creating a new relation, search for existing entities
369
371
  - **Verify wikilinks**: When referencing `[[Entity]]`, use exact titles of existing notes
370
- - **Check accuracy**: Use `search()` or `recent_activity()` to confirm entity titles
372
+ - **Check accuracy**: Use `search_notes()` or `recent_activity()` to confirm entity titles
371
373
  - **Use precise relation types**: Choose specific relation types that convey meaning (e.g., "implements" instead of "relates_to")
372
374
  - **Consider bidirectional relations**: When appropriate, create inverse relations in both entities
373
375
 
@@ -21,14 +21,13 @@ basic-memory sync
21
21
  # Watch for changes
22
22
  basic-memory sync --watch
23
23
 
24
- # Sync specific folder
25
- basic-memory sync path/to/folder
24
+ # Show detailed sync information
25
+ basic-memory sync --verbose
26
26
  ```
27
27
 
28
28
  Options:
29
29
  - `--watch`: Continuously monitor for changes
30
30
  - `--verbose`: Show detailed output
31
- - `PATH`: Optional path to sync (defaults to ~/basic-memory)
32
31
 
33
32
  ### import
34
33
 
@@ -43,13 +42,13 @@ basic-memory import claude projects
43
42
 
44
43
  # ChatGPT history
45
44
  basic-memory import chatgpt
46
- ```
47
45
 
48
- Options:
49
- - `--folder PATH`: Target folder for imported content
50
- - `--overwrite`: Replace existing files
51
- - `--skip-existing`: Keep existing files
46
+ # ChatGPT history
47
+ basic-memory import memory-json /path/to/memory.json
48
+
49
+ ```
52
50
 
51
+ > **Note**: After importing, run `basic-memory sync` to index the new files.
53
52
  ### status
54
53
 
55
54
  Shows system status information:
@@ -242,10 +241,12 @@ You can redirect input from a file:
242
241
  basic-memory tool write-note --title "Meeting Notes" --folder "meetings" < meeting_notes.md
243
242
  ```
244
243
 
245
- #### Integration with Claude Code
244
+ ## Integration with Claude Code
246
245
 
247
246
  This feature works well with Claude Code in the terminal:
248
247
 
248
+ ### cli
249
+
249
250
  In a Claude Code session, let Claude know he can use the basic-memory tools, then he can execute them via the cli:
250
251
 
251
252
  ```
@@ -258,6 +259,32 @@ In a Claude Code session, let Claude know he can use the basic-memory tools, the
258
259
 
259
260
  ```
260
261
 
262
+ ### MCP
263
+
264
+ Claude code can also now use mcp tools, so it can use any of the basic-memory tool natively. To install basic-memory in Claude Code:
265
+
266
+ Run
267
+ ```
268
+ claude mcp add basic-memory basic-memory mcp
269
+ ```
270
+
271
+ For example:
272
+
273
+ ```
274
+ ➜ ~ claude mcp add basic-memory basic-memory mcp
275
+ Added stdio MCP server basic-memory with command: basic-memory mcp to project config
276
+ ➜ ~ claude mcp list
277
+ basic-memory: basic-memory mcp
278
+ ```
279
+
280
+ You can then use the `/mcp` command in the REPL:
281
+
282
+ ```
283
+ /mcp
284
+ ⎿ MCP Server Status
285
+
286
+ • basic-memory: connected
287
+ ```
261
288
 
262
289
  ## Troubleshooting Common Issues
263
290
 
@@ -14,6 +14,10 @@ It can be used with any service that supports the MCP, but Claude Desktop works
14
14
 
15
15
  ## Installation
16
16
 
17
+ ### Prerequisites
18
+
19
+ The easiest way to install basic memory is via `uv`. See the [uv installation guide](https://docs.astral.sh/uv/getting-started/installation/).
20
+
17
21
  ### 1. Install Basic Memory
18
22
 
19
23
  ```bash
@@ -26,14 +30,32 @@ pip install basic-memory
26
30
 
27
31
  > **Important**: You need to install Basic Memory using one of the commands above to use the command line tools.
28
32
 
29
- Using `uv tool install` will install the basic-memory package in a standalone virtual environment.
30
- See the [UV docs](https://docs.astral.sh/uv/concepts/tools/) for more info.
33
+ Using `uv tool install` will install the basic-memory package in a standalone virtual environment. See the [UV docs](https://docs.astral.sh/uv/concepts/tools/) for more info.
31
34
 
32
35
  ### 2. Configure Claude Desktop
33
36
 
34
- Claude Desktop often has trouble finding executables in your user path. Follow these steps for a reliable setup:
37
+ Edit your Claude Desktop config, located at `~/Library/Application Support/Claude/claude_desktop_config.json`:
38
+
39
+ ```json
40
+ {
41
+ "mcpServers": {
42
+ "basic-memory": {
43
+ "command": "uvx",
44
+ "args": [
45
+ "basic-memory",
46
+ "mcp"
47
+ ]
48
+ }
49
+ }
50
+ }
51
+ ```
52
+
53
+ **Restart Claude Desktop**. You should see Basic Memory tools available in the "tools" menu in Claude Desktop (the little hammer icon in the bottom-right corner of the chat interface). Click it to view available tools.
54
+ #### Fix Path to uv
55
+
56
+ If you get an error that says `ENOENT` , this most likely means Claude Desktop could not find your `uv` installation. Make sure that you have `uv` installed per the instructions above, then:
35
57
 
36
- #### Step 1: Find the absolute path to uvx
58
+ **Step 1: Find the absolute path to uvx**
37
59
 
38
60
  Open Terminal and run:
39
61
 
@@ -43,9 +65,9 @@ which uvx
43
65
 
44
66
  This will show you the full path (e.g., `/Users/yourusername/.cargo/bin/uvx`).
45
67
 
46
- #### Step 2: Edit Claude Desktop Configuration
68
+ **Step 2: Edit Claude Desktop Configuration**
47
69
 
48
- Edit the configuration file located at `~/Library/Application Support/Claude/claude_desktop_config.json`:
70
+ Edit the Claude Desktop config:
49
71
 
50
72
  ```json
51
73
  {
@@ -63,14 +85,14 @@ Edit the configuration file located at `~/Library/Application Support/Claude/cla
63
85
 
64
86
  Replace `/absolute/path/to/uvx` with the actual path you found in Step 1.
65
87
 
66
- > **Note**: Using absolute paths is necessary because Claude Desktop cannot access binaries in your user PATH.
67
-
68
- #### Step 3: Restart Claude Desktop
88
+ **Step 3: Restart Claude Desktop**
69
89
 
70
90
  Close and reopen Claude Desktop for the changes to take effect.
71
91
 
72
92
  ### 3. Start the Sync Service
73
93
 
94
+ > Note the sync service is optional. You can run it if you want your local change to be available in Claude Desktop
95
+
74
96
  Start the sync service to monitor your files for changes:
75
97
 
76
98
  ```bash
@@ -81,7 +103,7 @@ basic-memory sync
81
103
  basic-memory sync --watch
82
104
  ```
83
105
 
84
- The `--watch` flag enables automatic detection of file changes, keeping your knowledge base current.
106
+ The `--watch` flag enables automatic detection of file changes, updating your knowledge in real time.
85
107
 
86
108
  ### 4. Staying Updated
87
109
 
@@ -97,6 +119,21 @@ pip install --upgrade basic-memory
97
119
 
98
120
  > **Note**: After updating, you'll need to restart Claude Desktop and your sync process for changes to take effect.
99
121
 
122
+ ### 5. Change the default project directory
123
+
124
+ By default, Basic Memory will create a project in the `basic-memory` folder in your home directory. You can change this via the `project` [[CLI Reference#project|cli command]].
125
+
126
+ ```
127
+ # Add a new project
128
+ basic-memory project add work ~/work-basic-memory
129
+
130
+ # Set the default project
131
+ basic-memory project default work
132
+
133
+ # List all configured projects
134
+ basic-memory project list
135
+ ```
136
+
100
137
  ## Troubleshooting Installation
101
138
 
102
139
  ### Common Issues
@@ -119,30 +156,24 @@ If you encounter permission errors:
119
156
 
120
157
  ## Creating Your First Knowledge Note
121
158
 
122
- 1. **Start the sync process** in a Terminal window:
123
- ```bash
124
- basic-memory sync --watch
125
- ```
126
- Keep this running in the background.
159
+ 1. **Open Claude Desktop** and start a new conversation.
127
160
 
128
- 2. **Open Claude Desktop** and start a new conversation.
129
-
130
- 3. **Have a natural conversation** about any topic:
161
+ 2. **Have a natural conversation** about any topic:
131
162
  ```
132
163
  You: "Let's talk about coffee brewing methods I've been experimenting with."
133
164
  Claude: "I'd be happy to discuss coffee brewing methods..."
134
165
  You: "I've found that pour over gives more flavor clarity than French press..."
135
166
  ```
136
167
 
137
- 4. **Ask Claude to create a note**:
168
+ 3. **Ask Claude to create a note**:
138
169
  ```
139
170
  You: "Could you create a note summarizing what we've discussed about coffee brewing?"
140
171
  ```
141
172
 
142
- 5. **Confirm note creation**:
173
+ 4. **Confirm note creation**:
143
174
  Claude will confirm when the note has been created and where it's stored.
144
175
 
145
- 6. **View the created file** in your `~/basic-memory` directory using any text editor or Obsidian.
176
+ 5. **View the created file** in your `~/basic-memory` directory using any text editor or Obsidian.
146
177
  The file structure will look similar to:
147
178
  ```markdown
148
179
  ---
@@ -160,6 +191,12 @@ If you encounter permission errors:
160
191
  - relates_to [[Other Coffee Topics]]
161
192
  ```
162
193
 
194
+ 5. **Start the sync process** in a Terminal window (optional):
195
+ ```bash
196
+ basic-memory sync --watch
197
+ ```
198
+ Keep this running in the background.
199
+
163
200
  ## Using Special Prompts
164
201
 
165
202
  Basic Memory includes special prompts that help you start conversations with context from your knowledge base:
@@ -196,7 +196,7 @@ flowchart TD
196
196
  end
197
197
 
198
198
  BMCP <-->|"write_note() read_note()"| KnowledgeFiles
199
- BMCP <-->|"search() build_context()"| KnowledgeIndex
199
+ BMCP <-->|"search_notes() build_context()"| KnowledgeIndex
200
200
  KnowledgeFiles <-.->|Sync Process| KnowledgeIndex
201
201
  KnowledgeFiles <-->|Direct Editing| Editors((Text Editors & Git))
202
202