basic-memory 0.2.12__py3-none-any.whl → 0.16.1__py3-none-any.whl

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 (149) hide show
  1. basic_memory/__init__.py +5 -1
  2. basic_memory/alembic/alembic.ini +119 -0
  3. basic_memory/alembic/env.py +27 -3
  4. basic_memory/alembic/migrations.py +4 -9
  5. basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +51 -0
  6. basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +108 -0
  7. basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +104 -0
  8. basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +49 -0
  9. basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +49 -0
  10. basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +44 -0
  11. basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +100 -0
  12. basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +37 -0
  13. basic_memory/api/app.py +63 -31
  14. basic_memory/api/routers/__init__.py +4 -1
  15. basic_memory/api/routers/directory_router.py +84 -0
  16. basic_memory/api/routers/importer_router.py +152 -0
  17. basic_memory/api/routers/knowledge_router.py +165 -28
  18. basic_memory/api/routers/management_router.py +80 -0
  19. basic_memory/api/routers/memory_router.py +28 -67
  20. basic_memory/api/routers/project_router.py +406 -0
  21. basic_memory/api/routers/prompt_router.py +260 -0
  22. basic_memory/api/routers/resource_router.py +219 -14
  23. basic_memory/api/routers/search_router.py +21 -13
  24. basic_memory/api/routers/utils.py +130 -0
  25. basic_memory/api/template_loader.py +292 -0
  26. basic_memory/cli/app.py +52 -1
  27. basic_memory/cli/auth.py +277 -0
  28. basic_memory/cli/commands/__init__.py +13 -2
  29. basic_memory/cli/commands/cloud/__init__.py +6 -0
  30. basic_memory/cli/commands/cloud/api_client.py +112 -0
  31. basic_memory/cli/commands/cloud/bisync_commands.py +110 -0
  32. basic_memory/cli/commands/cloud/cloud_utils.py +101 -0
  33. basic_memory/cli/commands/cloud/core_commands.py +195 -0
  34. basic_memory/cli/commands/cloud/rclone_commands.py +301 -0
  35. basic_memory/cli/commands/cloud/rclone_config.py +110 -0
  36. basic_memory/cli/commands/cloud/rclone_installer.py +249 -0
  37. basic_memory/cli/commands/cloud/upload.py +233 -0
  38. basic_memory/cli/commands/cloud/upload_command.py +124 -0
  39. basic_memory/cli/commands/command_utils.py +51 -0
  40. basic_memory/cli/commands/db.py +26 -7
  41. basic_memory/cli/commands/import_chatgpt.py +83 -0
  42. basic_memory/cli/commands/import_claude_conversations.py +86 -0
  43. basic_memory/cli/commands/import_claude_projects.py +85 -0
  44. basic_memory/cli/commands/import_memory_json.py +35 -92
  45. basic_memory/cli/commands/mcp.py +84 -10
  46. basic_memory/cli/commands/project.py +876 -0
  47. basic_memory/cli/commands/status.py +47 -30
  48. basic_memory/cli/commands/tool.py +341 -0
  49. basic_memory/cli/main.py +13 -6
  50. basic_memory/config.py +481 -22
  51. basic_memory/db.py +192 -32
  52. basic_memory/deps.py +252 -22
  53. basic_memory/file_utils.py +113 -58
  54. basic_memory/ignore_utils.py +297 -0
  55. basic_memory/importers/__init__.py +27 -0
  56. basic_memory/importers/base.py +79 -0
  57. basic_memory/importers/chatgpt_importer.py +232 -0
  58. basic_memory/importers/claude_conversations_importer.py +177 -0
  59. basic_memory/importers/claude_projects_importer.py +148 -0
  60. basic_memory/importers/memory_json_importer.py +108 -0
  61. basic_memory/importers/utils.py +58 -0
  62. basic_memory/markdown/entity_parser.py +143 -23
  63. basic_memory/markdown/markdown_processor.py +3 -3
  64. basic_memory/markdown/plugins.py +39 -21
  65. basic_memory/markdown/schemas.py +1 -1
  66. basic_memory/markdown/utils.py +28 -13
  67. basic_memory/mcp/async_client.py +134 -4
  68. basic_memory/mcp/project_context.py +141 -0
  69. basic_memory/mcp/prompts/__init__.py +19 -0
  70. basic_memory/mcp/prompts/ai_assistant_guide.py +70 -0
  71. basic_memory/mcp/prompts/continue_conversation.py +62 -0
  72. basic_memory/mcp/prompts/recent_activity.py +188 -0
  73. basic_memory/mcp/prompts/search.py +57 -0
  74. basic_memory/mcp/prompts/utils.py +162 -0
  75. basic_memory/mcp/resources/ai_assistant_guide.md +283 -0
  76. basic_memory/mcp/resources/project_info.py +71 -0
  77. basic_memory/mcp/server.py +7 -13
  78. basic_memory/mcp/tools/__init__.py +33 -21
  79. basic_memory/mcp/tools/build_context.py +120 -0
  80. basic_memory/mcp/tools/canvas.py +130 -0
  81. basic_memory/mcp/tools/chatgpt_tools.py +187 -0
  82. basic_memory/mcp/tools/delete_note.py +225 -0
  83. basic_memory/mcp/tools/edit_note.py +320 -0
  84. basic_memory/mcp/tools/list_directory.py +167 -0
  85. basic_memory/mcp/tools/move_note.py +545 -0
  86. basic_memory/mcp/tools/project_management.py +200 -0
  87. basic_memory/mcp/tools/read_content.py +271 -0
  88. basic_memory/mcp/tools/read_note.py +255 -0
  89. basic_memory/mcp/tools/recent_activity.py +534 -0
  90. basic_memory/mcp/tools/search.py +369 -14
  91. basic_memory/mcp/tools/utils.py +374 -16
  92. basic_memory/mcp/tools/view_note.py +77 -0
  93. basic_memory/mcp/tools/write_note.py +207 -0
  94. basic_memory/models/__init__.py +3 -2
  95. basic_memory/models/knowledge.py +67 -15
  96. basic_memory/models/project.py +87 -0
  97. basic_memory/models/search.py +10 -6
  98. basic_memory/repository/__init__.py +2 -0
  99. basic_memory/repository/entity_repository.py +229 -7
  100. basic_memory/repository/observation_repository.py +35 -3
  101. basic_memory/repository/project_info_repository.py +10 -0
  102. basic_memory/repository/project_repository.py +103 -0
  103. basic_memory/repository/relation_repository.py +21 -2
  104. basic_memory/repository/repository.py +147 -29
  105. basic_memory/repository/search_repository.py +437 -59
  106. basic_memory/schemas/__init__.py +22 -9
  107. basic_memory/schemas/base.py +97 -8
  108. basic_memory/schemas/cloud.py +50 -0
  109. basic_memory/schemas/directory.py +30 -0
  110. basic_memory/schemas/importer.py +35 -0
  111. basic_memory/schemas/memory.py +188 -23
  112. basic_memory/schemas/project_info.py +211 -0
  113. basic_memory/schemas/prompt.py +90 -0
  114. basic_memory/schemas/request.py +57 -3
  115. basic_memory/schemas/response.py +9 -1
  116. basic_memory/schemas/search.py +33 -35
  117. basic_memory/schemas/sync_report.py +72 -0
  118. basic_memory/services/__init__.py +2 -1
  119. basic_memory/services/context_service.py +251 -106
  120. basic_memory/services/directory_service.py +295 -0
  121. basic_memory/services/entity_service.py +595 -60
  122. basic_memory/services/exceptions.py +21 -0
  123. basic_memory/services/file_service.py +284 -30
  124. basic_memory/services/initialization.py +191 -0
  125. basic_memory/services/link_resolver.py +50 -56
  126. basic_memory/services/project_service.py +863 -0
  127. basic_memory/services/search_service.py +172 -34
  128. basic_memory/sync/__init__.py +3 -2
  129. basic_memory/sync/background_sync.py +26 -0
  130. basic_memory/sync/sync_service.py +1176 -96
  131. basic_memory/sync/watch_service.py +412 -135
  132. basic_memory/templates/prompts/continue_conversation.hbs +110 -0
  133. basic_memory/templates/prompts/search.hbs +101 -0
  134. basic_memory/utils.py +388 -28
  135. basic_memory-0.16.1.dist-info/METADATA +493 -0
  136. basic_memory-0.16.1.dist-info/RECORD +148 -0
  137. {basic_memory-0.2.12.dist-info → basic_memory-0.16.1.dist-info}/entry_points.txt +1 -0
  138. basic_memory/alembic/README +0 -1
  139. basic_memory/cli/commands/sync.py +0 -203
  140. basic_memory/mcp/tools/knowledge.py +0 -56
  141. basic_memory/mcp/tools/memory.py +0 -151
  142. basic_memory/mcp/tools/notes.py +0 -122
  143. basic_memory/schemas/discovery.py +0 -28
  144. basic_memory/sync/file_change_scanner.py +0 -158
  145. basic_memory/sync/utils.py +0 -34
  146. basic_memory-0.2.12.dist-info/METADATA +0 -291
  147. basic_memory-0.2.12.dist-info/RECORD +0 -78
  148. {basic_memory-0.2.12.dist-info → basic_memory-0.16.1.dist-info}/WHEEL +0 -0
  149. {basic_memory-0.2.12.dist-info → basic_memory-0.16.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,493 @@
1
+ Metadata-Version: 2.4
2
+ Name: basic-memory
3
+ Version: 0.16.1
4
+ Summary: Local-first knowledge management combining Zettelkasten with knowledge graphs
5
+ Project-URL: Homepage, https://github.com/basicmachines-co/basic-memory
6
+ Project-URL: Repository, https://github.com/basicmachines-co/basic-memory
7
+ Project-URL: Documentation, https://github.com/basicmachines-co/basic-memory#readme
8
+ Author-email: Basic Machines <hello@basic-machines.co>
9
+ License: AGPL-3.0-or-later
10
+ License-File: LICENSE
11
+ Requires-Python: >=3.12
12
+ Requires-Dist: aiofiles>=24.1.0
13
+ Requires-Dist: aiosqlite>=0.20.0
14
+ Requires-Dist: alembic>=1.14.1
15
+ Requires-Dist: dateparser>=1.2.0
16
+ Requires-Dist: fastapi[standard]>=0.115.8
17
+ Requires-Dist: fastmcp>=2.10.2
18
+ Requires-Dist: greenlet>=3.1.1
19
+ Requires-Dist: icecream>=2.1.3
20
+ Requires-Dist: logfire>=0.73.0
21
+ Requires-Dist: loguru>=0.7.3
22
+ Requires-Dist: markdown-it-py>=3.0.0
23
+ Requires-Dist: mcp>=1.2.0
24
+ Requires-Dist: pillow>=11.1.0
25
+ Requires-Dist: pybars3>=0.9.7
26
+ Requires-Dist: pydantic-settings>=2.6.1
27
+ Requires-Dist: pydantic[email,timezone]>=2.10.3
28
+ Requires-Dist: pyjwt>=2.10.1
29
+ Requires-Dist: pyright>=1.1.390
30
+ Requires-Dist: pytest-aio>=1.9.0
31
+ Requires-Dist: python-dotenv>=1.1.0
32
+ Requires-Dist: python-frontmatter>=1.1.0
33
+ Requires-Dist: pyyaml>=6.0.1
34
+ Requires-Dist: rich>=13.9.4
35
+ Requires-Dist: sqlalchemy>=2.0.0
36
+ Requires-Dist: typer>=0.9.0
37
+ Requires-Dist: unidecode>=1.3.8
38
+ Requires-Dist: watchfiles>=1.0.4
39
+ Description-Content-Type: text/markdown
40
+
41
+ [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
42
+ [![PyPI version](https://badge.fury.io/py/basic-memory.svg)](https://badge.fury.io/py/basic-memory)
43
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
44
+ [![Tests](https://github.com/basicmachines-co/basic-memory/workflows/Tests/badge.svg)](https://github.com/basicmachines-co/basic-memory/actions)
45
+ [![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)
46
+ ![](https://badge.mcpx.dev?type=server 'MCP Server')
47
+ ![](https://badge.mcpx.dev?type=dev 'MCP Dev')
48
+ [![smithery badge](https://smithery.ai/badge/@basicmachines-co/basic-memory)](https://smithery.ai/server/@basicmachines-co/basic-memory)
49
+
50
+ ## 🚀 Basic Memory Cloud is Live!
51
+
52
+ - **Cross-device and multi-platform support is here.** Your knowledge graph now works on desktop, web, and mobile - seamlessly synced across all your AI tools (Claude, ChatGPT, Gemini, Claude Code, and Codex)
53
+ - **Early Supporter Pricing:** Early users get 25% off forever.
54
+ The open source project continues as always. Cloud just makes it work everywhere.
55
+
56
+ [Sign up now →](https://basicmemory.com/beta)
57
+
58
+ with a 7 day free trial
59
+
60
+ # Basic Memory
61
+
62
+ Basic Memory lets you build persistent knowledge through natural conversations with Large Language Models (LLMs) like
63
+ Claude, while keeping everything in simple Markdown files on your computer. It uses the Model Context Protocol (MCP) to
64
+ enable any compatible LLM to read and write to your local knowledge base.
65
+
66
+ - Website: https://basicmachines.co
67
+ - Documentation: https://memory.basicmachines.co
68
+
69
+ ## Pick up your conversation right where you left off
70
+
71
+ - AI assistants can load context from local files in a new conversation
72
+ - Notes are saved locally as Markdown files in real time
73
+ - No project knowledge or special prompting required
74
+
75
+ https://github.com/user-attachments/assets/a55d8238-8dd0-454a-be4c-8860dbbd0ddc
76
+
77
+ ## Quick Start
78
+
79
+ ```bash
80
+ # Install with uv (recommended)
81
+ uv tool install basic-memory
82
+
83
+ # Configure Claude Desktop (edit ~/Library/Application Support/Claude/claude_desktop_config.json)
84
+ # Add this to your config:
85
+ {
86
+ "mcpServers": {
87
+ "basic-memory": {
88
+ "command": "uvx",
89
+ "args": [
90
+ "basic-memory",
91
+ "mcp"
92
+ ]
93
+ }
94
+ }
95
+ }
96
+ # Now in Claude Desktop, you can:
97
+ # - Write notes with "Create a note about coffee brewing methods"
98
+ # - Read notes with "What do I know about pour over coffee?"
99
+ # - Search with "Find information about Ethiopian beans"
100
+
101
+ ```
102
+
103
+ You can view shared context via files in `~/basic-memory` (default directory location).
104
+
105
+ ### Alternative Installation via Smithery
106
+
107
+ You can use [Smithery](https://smithery.ai/server/@basicmachines-co/basic-memory) to automatically configure Basic
108
+ Memory for Claude Desktop:
109
+
110
+ ```bash
111
+ npx -y @smithery/cli install @basicmachines-co/basic-memory --client claude
112
+ ```
113
+
114
+ This installs and configures Basic Memory without requiring manual edits to the Claude Desktop configuration file. The
115
+ Smithery server hosts the MCP server component, while your data remains stored locally as Markdown files.
116
+
117
+ ### Glama.ai
118
+
119
+ <a href="https://glama.ai/mcp/servers/o90kttu9ym">
120
+ <img width="380" height="200" src="https://glama.ai/mcp/servers/o90kttu9ym/badge" alt="basic-memory MCP server" />
121
+ </a>
122
+
123
+ ## Why Basic Memory?
124
+
125
+ Most LLM interactions are ephemeral - you ask a question, get an answer, and everything is forgotten. Each conversation
126
+ starts fresh, without the context or knowledge from previous ones. Current workarounds have limitations:
127
+
128
+ - Chat histories capture conversations but aren't structured knowledge
129
+ - RAG systems can query documents but don't let LLMs write back
130
+ - Vector databases require complex setups and often live in the cloud
131
+ - Knowledge graphs typically need specialized tools to maintain
132
+
133
+ Basic Memory addresses these problems with a simple approach: structured Markdown files that both humans and LLMs can
134
+ read
135
+ and write to. The key advantages:
136
+
137
+ - **Local-first:** All knowledge stays in files you control
138
+ - **Bi-directional:** Both you and the LLM read and write to the same files
139
+ - **Structured yet simple:** Uses familiar Markdown with semantic patterns
140
+ - **Traversable knowledge graph:** LLMs can follow links between topics
141
+ - **Standard formats:** Works with existing editors like Obsidian
142
+ - **Lightweight infrastructure:** Just local files indexed in a local SQLite database
143
+
144
+ With Basic Memory, you can:
145
+
146
+ - Have conversations that build on previous knowledge
147
+ - Create structured notes during natural conversations
148
+ - Have conversations with LLMs that remember what you've discussed before
149
+ - Navigate your knowledge graph semantically
150
+ - Keep everything local and under your control
151
+ - Use familiar tools like Obsidian to view and edit notes
152
+ - Build a personal knowledge base that grows over time
153
+ - Sync your knowledge to the cloud with bidirectional synchronization
154
+ - Authenticate and manage cloud projects with subscription validation
155
+ - Mount cloud storage for direct file access
156
+
157
+ ## How It Works in Practice
158
+
159
+ Let's say you're exploring coffee brewing methods and want to capture your knowledge. Here's how it works:
160
+
161
+ 1. Start by chatting normally:
162
+
163
+ ```
164
+ I've been experimenting with different coffee brewing methods. Key things I've learned:
165
+
166
+ - Pour over gives more clarity in flavor than French press
167
+ - Water temperature is critical - around 205°F seems best
168
+ - Freshly ground beans make a huge difference
169
+ ```
170
+
171
+ ... continue conversation.
172
+
173
+ 2. Ask the LLM to help structure this knowledge:
174
+
175
+ ```
176
+ "Let's write a note about coffee brewing methods."
177
+ ```
178
+
179
+ LLM creates a new Markdown file on your system (which you can see instantly in Obsidian or your editor):
180
+
181
+ ```markdown
182
+ ---
183
+ title: Coffee Brewing Methods
184
+ permalink: coffee-brewing-methods
185
+ tags:
186
+ - coffee
187
+ - brewing
188
+ ---
189
+
190
+ # Coffee Brewing Methods
191
+
192
+ ## Observations
193
+
194
+ - [method] Pour over provides more clarity and highlights subtle flavors
195
+ - [technique] Water temperature at 205°F (96°C) extracts optimal compounds
196
+ - [principle] Freshly ground beans preserve aromatics and flavor
197
+
198
+ ## Relations
199
+
200
+ - relates_to [[Coffee Bean Origins]]
201
+ - requires [[Proper Grinding Technique]]
202
+ - affects [[Flavor Extraction]]
203
+ ```
204
+
205
+ The note embeds semantic content and links to other topics via simple Markdown formatting.
206
+
207
+ 3. You see this file on your computer in real time in the current project directory (default `~/$HOME/basic-memory`).
208
+
209
+ - Realtime sync can be enabled via running `basic-memory sync --watch`
210
+
211
+ 4. In a chat with the LLM, you can reference a topic:
212
+
213
+ ```
214
+ Look at `coffee-brewing-methods` for context about pour over coffee
215
+ ```
216
+
217
+ The LLM can now build rich context from the knowledge graph. For example:
218
+
219
+ ```
220
+ Following relation 'relates_to [[Coffee Bean Origins]]':
221
+ - Found information about Ethiopian Yirgacheffe
222
+ - Notes on Colombian beans' nutty profile
223
+ - Altitude effects on bean characteristics
224
+
225
+ Following relation 'requires [[Proper Grinding Technique]]':
226
+ - Burr vs. blade grinder comparisons
227
+ - Grind size recommendations for different methods
228
+ - Impact of consistent particle size on extraction
229
+ ```
230
+
231
+ Each related document can lead to more context, building a rich semantic understanding of your knowledge base.
232
+
233
+ This creates a two-way flow where:
234
+
235
+ - Humans write and edit Markdown files
236
+ - LLMs read and write through the MCP protocol
237
+ - Sync keeps everything consistent
238
+ - All knowledge stays in local files.
239
+
240
+ ## Technical Implementation
241
+
242
+ Under the hood, Basic Memory:
243
+
244
+ 1. Stores everything in Markdown files
245
+ 2. Uses a SQLite database for searching and indexing
246
+ 3. Extracts semantic meaning from simple Markdown patterns
247
+ - Files become `Entity` objects
248
+ - Each `Entity` can have `Observations`, or facts associated with it
249
+ - `Relations` connect entities together to form the knowledge graph
250
+ 4. Maintains the local knowledge graph derived from the files
251
+ 5. Provides bidirectional synchronization between files and the knowledge graph
252
+ 6. Implements the Model Context Protocol (MCP) for AI integration
253
+ 7. Exposes tools that let AI assistants traverse and manipulate the knowledge graph
254
+ 8. Uses memory:// URLs to reference entities across tools and conversations
255
+
256
+ The file format is just Markdown with some simple markup:
257
+
258
+ Each Markdown file has:
259
+
260
+ ### Frontmatter
261
+
262
+ ```markdown
263
+ title: <Entity title>
264
+ type: <The type of Entity> (e.g. note)
265
+ permalink: <a uri slug>
266
+
267
+ - <optional metadata> (such as tags)
268
+ ```
269
+
270
+ ### Observations
271
+
272
+ Observations are facts about a topic.
273
+ They can be added by creating a Markdown list with a special format that can reference a `category`, `tags` using a
274
+ "#" character, and an optional `context`.
275
+
276
+ Observation Markdown format:
277
+
278
+ ```markdown
279
+ - [category] content #tag (optional context)
280
+ ```
281
+
282
+ Examples of observations:
283
+
284
+ ```markdown
285
+ - [method] Pour over extracts more floral notes than French press
286
+ - [tip] Grind size should be medium-fine for pour over #brewing
287
+ - [preference] Ethiopian beans have bright, fruity flavors (especially from Yirgacheffe)
288
+ - [fact] Lighter roasts generally contain more caffeine than dark roasts
289
+ - [experiment] Tried 1:15 coffee-to-water ratio with good results
290
+ - [resource] James Hoffman's V60 technique on YouTube is excellent
291
+ - [question] Does water temperature affect extraction of different compounds differently?
292
+ - [note] My favorite local shop uses a 30-second bloom time
293
+ ```
294
+
295
+ ### Relations
296
+
297
+ Relations are links to other topics. They define how entities connect in the knowledge graph.
298
+
299
+ Markdown format:
300
+
301
+ ```markdown
302
+ - relation_type [[WikiLink]] (optional context)
303
+ ```
304
+
305
+ Examples of relations:
306
+
307
+ ```markdown
308
+ - pairs_well_with [[Chocolate Desserts]]
309
+ - grown_in [[Ethiopia]]
310
+ - contrasts_with [[Tea Brewing Methods]]
311
+ - requires [[Burr Grinder]]
312
+ - improves_with [[Fresh Beans]]
313
+ - relates_to [[Morning Routine]]
314
+ - inspired_by [[Japanese Coffee Culture]]
315
+ - documented_in [[Coffee Journal]]
316
+ ```
317
+
318
+ ## Using with VS Code
319
+
320
+ Add 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)`.
321
+
322
+ ```json
323
+ {
324
+ "mcp": {
325
+ "servers": {
326
+ "basic-memory": {
327
+ "command": "uvx",
328
+ "args": ["basic-memory", "mcp"]
329
+ }
330
+ }
331
+ }
332
+ }
333
+ ```
334
+
335
+ Optionally, you can add it to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.
336
+
337
+ ```json
338
+ {
339
+ "servers": {
340
+ "basic-memory": {
341
+ "command": "uvx",
342
+ "args": ["basic-memory", "mcp"]
343
+ }
344
+ }
345
+ }
346
+ ```
347
+
348
+ You can use Basic Memory with VS Code to easily retrieve and store information while coding.
349
+
350
+ ## Using with Claude Desktop
351
+
352
+ Basic Memory is built using the MCP (Model Context Protocol) and works with the Claude desktop app (https://claude.ai/):
353
+
354
+ 1. Configure Claude Desktop to use Basic Memory:
355
+
356
+ Edit your MCP configuration file (usually located at `~/Library/Application Support/Claude/claude_desktop_config.json`
357
+ for OS X):
358
+
359
+ ```json
360
+ {
361
+ "mcpServers": {
362
+ "basic-memory": {
363
+ "command": "uvx",
364
+ "args": [
365
+ "basic-memory",
366
+ "mcp"
367
+ ]
368
+ }
369
+ }
370
+ }
371
+ ```
372
+
373
+ If you want to use a specific project (see [Multiple Projects](#multiple-projects) below), update your Claude Desktop
374
+ config:
375
+
376
+ ```json
377
+ {
378
+ "mcpServers": {
379
+ "basic-memory": {
380
+ "command": "uvx",
381
+ "args": [
382
+ "basic-memory",
383
+ "mcp",
384
+ "--project",
385
+ "your-project-name"
386
+ ]
387
+ }
388
+ }
389
+ }
390
+ ```
391
+
392
+ 2. Sync your knowledge:
393
+
394
+ ```bash
395
+ # One-time sync of local knowledge updates
396
+ basic-memory sync
397
+
398
+ # Run realtime sync process (recommended)
399
+ basic-memory sync --watch
400
+ ```
401
+
402
+ 3. Cloud features (optional, requires subscription):
403
+
404
+ ```bash
405
+ # Authenticate with cloud
406
+ basic-memory cloud login
407
+
408
+ # Bidirectional sync with cloud
409
+ basic-memory cloud sync
410
+
411
+ # Verify cloud integrity
412
+ basic-memory cloud check
413
+
414
+ # Mount cloud storage
415
+ basic-memory cloud mount
416
+ ```
417
+
418
+ 4. In Claude Desktop, the LLM can now use these tools:
419
+
420
+ **Content Management:**
421
+ ```
422
+ write_note(title, content, folder, tags) - Create or update notes
423
+ read_note(identifier, page, page_size) - Read notes by title or permalink
424
+ read_content(path) - Read raw file content (text, images, binaries)
425
+ view_note(identifier) - View notes as formatted artifacts
426
+ edit_note(identifier, operation, content) - Edit notes incrementally
427
+ move_note(identifier, destination_path) - Move notes with database consistency
428
+ delete_note(identifier) - Delete notes from knowledge base
429
+ ```
430
+
431
+ **Knowledge Graph Navigation:**
432
+ ```
433
+ build_context(url, depth, timeframe) - Navigate knowledge graph via memory:// URLs
434
+ recent_activity(type, depth, timeframe) - Find recently updated information
435
+ list_directory(dir_name, depth) - Browse directory contents with filtering
436
+ ```
437
+
438
+ **Search & Discovery:**
439
+ ```
440
+ search(query, page, page_size) - Search across your knowledge base
441
+ ```
442
+
443
+ **Project Management:**
444
+ ```
445
+ list_memory_projects() - List all available projects
446
+ create_memory_project(project_name, project_path) - Create new projects
447
+ get_current_project() - Show current project stats
448
+ sync_status() - Check synchronization status
449
+ ```
450
+
451
+ **Visualization:**
452
+ ```
453
+ canvas(nodes, edges, title, folder) - Generate knowledge visualizations
454
+ ```
455
+
456
+ 5. Example prompts to try:
457
+
458
+ ```
459
+ "Create a note about our project architecture decisions"
460
+ "Find information about JWT authentication in my notes"
461
+ "Create a canvas visualization of my project components"
462
+ "Read my notes on the authentication system"
463
+ "What have I been working on in the past week?"
464
+ ```
465
+
466
+ ## Futher info
467
+
468
+ See the [Documentation](https://memory.basicmachines.co/) for more info, including:
469
+
470
+ - [Complete User Guide](https://docs.basicmemory.com/user-guide/)
471
+ - [CLI tools](https://docs.basicmemory.com/guides/cli-reference/)
472
+ - [Cloud CLI and Sync](https://docs.basicmemory.com/guides/cloud-cli/)
473
+ - [Managing multiple Projects](https://docs.basicmemory.com/guides/cli-reference/#project)
474
+ - [Importing data from OpenAI/Claude Projects](https://docs.basicmemory.com/guides/cli-reference/#import)
475
+
476
+ ## License
477
+
478
+ AGPL-3.0
479
+
480
+ Contributions are welcome. See the [Contributing](CONTRIBUTING.md) guide for info about setting up the project locally
481
+ and submitting PRs.
482
+
483
+ ## Star History
484
+
485
+ <a href="https://www.star-history.com/#basicmachines-co/basic-memory&Date">
486
+ <picture>
487
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=basicmachines-co/basic-memory&type=Date&theme=dark" />
488
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=basicmachines-co/basic-memory&type=Date" />
489
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=basicmachines-co/basic-memory&type=Date" />
490
+ </picture>
491
+ </a>
492
+
493
+ Built with ♥️ by Basic Machines
@@ -0,0 +1,148 @@
1
+ basic_memory/__init__.py,sha256=7AZxBXLv79tKFtfXYwGv3cbzCUJ2MOlLLECox2BQJYg,256
2
+ basic_memory/config.py,sha256=QPtRIR2kKh7MZTIETSoXAmAZXo7sSkhzN1sWaApgf7E,18461
3
+ basic_memory/db.py,sha256=Gc-d639GPVzUhNkzkfvOYYuEGeIX9YFqhu6kG_5tR1A,11711
4
+ basic_memory/deps.py,sha256=7qwmdre6IA9MhFHL2yR8wj7OEWQA_-MXAI65jfmFfxU,13144
5
+ basic_memory/file_utils.py,sha256=U6XKJmWnBST_RMFvk-6zxA2GvFrZPaATw6z_Cj5tqCU,7353
6
+ basic_memory/ignore_utils.py,sha256=eMnJJjqtrHut2J5ATPn0tw1h5FKxFAqeao-HbFTzP5E,7765
7
+ basic_memory/utils.py,sha256=ED_N8C1caRhA_W69bQdGrfxfKeAY2DhKiOoGJYsJLk8,14912
8
+ basic_memory/alembic/alembic.ini,sha256=IEZsnF8CbbZnkwBr67LzKKNobHuzTaQNUvM8Psop5xc,3733
9
+ basic_memory/alembic/env.py,sha256=4kHZh-rfzVARy9ndvsuDPTBt6Hk3dZ2BwI030EppBrA,2838
10
+ basic_memory/alembic/migrations.py,sha256=lriHPXDdBLSNXEW3QTpU0SJKuVd1V-8NrVkpN3qfsUQ,718
11
+ basic_memory/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
12
+ basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py,sha256=lTbWlAnd1es7xU99DoJgfaRe1_Kte8TL98riqeKGV80,4363
13
+ basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py,sha256=k6xYTmYPM9Ros-7CA7BwZBKYwoK_gmVdC-2n8FAjdoE,1840
14
+ basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py,sha256=2CCY9ayjzbraYMcinqSsJi9Sc0nu2e-ehkUJus-sz34,4379
15
+ basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py,sha256=YErFkIpZdicvUil4ZtE6uxSpk5BZCTXZ_TfPE-MgSfo,4210
16
+ basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py,sha256=DYlXlRYO3Ms6x9GbrFGWgj1QEzsdKHx-4AA4lSVM7y0,1587
17
+ basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py,sha256=i42eQyO08RWf4exnH1q1PKw_EJFsHAG-T4pdLTMSpiA,1818
18
+ basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py,sha256=RsGymQzfRXV1LSNKiyi0lMilTxW1NgwS9jR67ye2apI,1428
19
+ basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py,sha256=kDavR9Qqx9wSu5P3qd4SZq_waIsDG1UMTg2SmDoktMU,3679
20
+ basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py,sha256=hQaX7qf0ZYYz3zoEDp_DOHy-RteYjajlAdD2GNXvYt0,1114
21
+ basic_memory/api/__init__.py,sha256=wCpj-21j1D0KzKl9Ql6unLBVFY0K1uGp_FeSZRKtqpk,72
22
+ basic_memory/api/app.py,sha256=2qNUMFutFJtIU32i167br83bvCLgPkGUQD0xaf3Cx2I,3194
23
+ basic_memory/api/template_loader.py,sha256=exbTeXyJRgyLFmSjNeroxjT7X2DWFm2X5qUVa3drbYM,8607
24
+ basic_memory/api/routers/__init__.py,sha256=REO5CKQ96o5vtGWACcsIxIpWybIUSeKXc83RWbWc8BQ,398
25
+ basic_memory/api/routers/directory_router.py,sha256=eKl9P6uYZnmA4J58ZPydbLkDPtiYH_84LcVFclkL364,2832
26
+ basic_memory/api/routers/importer_router.py,sha256=xFUCorkPWo8AF0ya0UrcLmXNf8CjPZdAqddQIH8PO-o,4513
27
+ basic_memory/api/routers/knowledge_router.py,sha256=A7IYVk4_ab0NbrEs7ZWC2KBApY-VsEO1X5X8UImjG7s,10284
28
+ basic_memory/api/routers/management_router.py,sha256=zbzilNzsYUbFbE2uFXRM33cDn9IbI-73y8C1-b-19O4,2730
29
+ basic_memory/api/routers/memory_router.py,sha256=a9Cnx3XgwSkO-2ABFzI3wM3PoMGxuyfJFFp7NfFZapc,3003
30
+ basic_memory/api/routers/project_router.py,sha256=9J1cuyI0Vpoxg2Y3HydkJgF4hM8XbwHekEf9f-HVFyU,14936
31
+ basic_memory/api/routers/prompt_router.py,sha256=4wxq6-NREgVJM8N9C0YsN1AAUDD8nkTCOzWyzSqTSFw,9948
32
+ basic_memory/api/routers/resource_router.py,sha256=4kXOAzMichE1hGXnMfdDQ-0pCs-keW4yQzH30aF9mSI,8750
33
+ basic_memory/api/routers/search_router.py,sha256=GD62jlCQTiL_VNsdibi-b1f6H40KCWo9SX2Cl7YH4QU,1226
34
+ basic_memory/api/routers/utils.py,sha256=nmD1faJOHcnWQjbCanojUwA9xhinf764U8SUqjNXpXw,5159
35
+ basic_memory/cli/__init__.py,sha256=arcKLAWRDhPD7x5t80MlviZeYzwHZ0GZigyy3NKVoGk,33
36
+ basic_memory/cli/app.py,sha256=dMLoiCDJId2ic32Z7F4EiDPTYjb5j8jEwXwurn755_A,1392
37
+ basic_memory/cli/auth.py,sha256=kwtyGInJW4Pa29qjxgnO9toAW66YWJgKodJuCvFud8Y,10574
38
+ basic_memory/cli/main.py,sha256=MhM-spwmayY3ntIa5Ioh9jQZQDvqP-IcBNvESXKk_ec,466
39
+ basic_memory/cli/commands/__init__.py,sha256=xt58JGEbf7BZ8QAbrzb37KhwXnglJ4YZDXfog-M4F7E,375
40
+ basic_memory/cli/commands/command_utils.py,sha256=kzo8Aq8gOpPMMo1Jn88voKkovTtirvdJRY6mi0eGTkA,1720
41
+ basic_memory/cli/commands/db.py,sha256=JAXeRK6Gm6u6BXi5zGczb2MoHtoRANWRx4A79DQI7Fk,1499
42
+ basic_memory/cli/commands/import_chatgpt.py,sha256=iVfMo6yrY1EzViSlGL3BnZVkh-k9ht0bbCMJ6dWFCuU,2856
43
+ basic_memory/cli/commands/import_claude_conversations.py,sha256=e8l4OHMr8A9PtKgOO6T9-86Jca6FzCrJAsOzo-EQrlc,2946
44
+ basic_memory/cli/commands/import_claude_projects.py,sha256=YyFXcHWAHJmtR6DNwTtao8nKECoFyo8GripRElqMQ7w,2891
45
+ basic_memory/cli/commands/import_memory_json.py,sha256=3ESHFGdrVQmlh93GYm-AzhKKnDx5cK375ea9EjiKWQw,2867
46
+ basic_memory/cli/commands/mcp.py,sha256=KNyeut5vjXvBjBncZs078YwJTDWb5-CjYpx0bzA4Kjs,3462
47
+ basic_memory/cli/commands/project.py,sha256=J9y692e9JyHgb32pHyO52SOj3v2GsXb8xL5eCzUWvVA,33993
48
+ basic_memory/cli/commands/status.py,sha256=Q8qDrh_UGZX4mt6CEivQ3PuDGiDdY-FJQaa5eRk4sO4,6590
49
+ basic_memory/cli/commands/tool.py,sha256=8bsbYfaYEfAEvLfciQx1fZ0vssgbahMvrbmWzYg9188,11971
50
+ basic_memory/cli/commands/cloud/__init__.py,sha256=WYDh_GRqKMqhQI21maV2RD1QsDdkgzvRrV9XWa0MJf4,353
51
+ basic_memory/cli/commands/cloud/api_client.py,sha256=e14v_YTkkEuyUuZBzaQTSHpNmT017A3ym5dWMEly5JQ,4263
52
+ basic_memory/cli/commands/cloud/bisync_commands.py,sha256=5ARgesF8-ODGbghvEjIHuTXI6HxoURPpx5VtNotE5xQ,3916
53
+ basic_memory/cli/commands/cloud/cloud_utils.py,sha256=n4J9AsonCjQmrB2Y69y9XrvogFydhKB709-JfMUhvdE,3106
54
+ basic_memory/cli/commands/cloud/core_commands.py,sha256=rkCiK1zz2j_xdvk-_oDw_mvuA9cHol5maFpIWHapE6Q,7371
55
+ basic_memory/cli/commands/cloud/rclone_commands.py,sha256=cf2oQGtwuSJgJkjGv1uP_avfM4M4wK6D0tLocHi9mPo,8156
56
+ basic_memory/cli/commands/cloud/rclone_config.py,sha256=b-1RZB1zMY_IDyT1uhVm39Cee3flfp5nbJs7Lm7QkcM,3272
57
+ basic_memory/cli/commands/cloud/rclone_installer.py,sha256=Hgq0iZaPJr5oUviMJChZE6uKpcE_2IRnSNJujMnq_VE,9261
58
+ basic_memory/cli/commands/cloud/upload.py,sha256=GXapM-DbgqXmGiZuhEBMPAPGXYUgMDRP7oY-7WJ5LPM,8382
59
+ basic_memory/cli/commands/cloud/upload_command.py,sha256=Mdzm5U2m_5DqOyJ9DNeO-xrDn1e5dIm4Ep-zfXcUlDs,4183
60
+ basic_memory/importers/__init__.py,sha256=BTcBW97P3thcsWa5w9tQsvOu8ynHDgw2-8tPgkCZoh8,795
61
+ basic_memory/importers/base.py,sha256=awwe_U-CfzSINKoM6iro7ru4QqLlsfXzdHztDvebnxM,2531
62
+ basic_memory/importers/chatgpt_importer.py,sha256=3BJZUOVSX0cg9G6WdMTDQTscMoG6eWuf6E-c9Qhi0v4,7687
63
+ basic_memory/importers/claude_conversations_importer.py,sha256=gEBof8sKjyROCnGEU3LRDzuMHWrHMzSL5Sc0duKATSg,5899
64
+ basic_memory/importers/claude_projects_importer.py,sha256=pFJnX9m7GOv2TrS9f2nM1-mTtheTEBWjxKtwDWdJOGM,5389
65
+ basic_memory/importers/memory_json_importer.py,sha256=vH0EUpnxftmtXOv_exQjJQ7CihETDkegrEjTq4K96vw,4631
66
+ basic_memory/importers/utils.py,sha256=SRcDrjedYH_PeD9Pu1DenlrDcar7L751ZV3qkzJXRQ4,1818
67
+ basic_memory/markdown/__init__.py,sha256=DdzioCWtDnKaq05BHYLgL_78FawEHLpLXnp-kPSVfIc,501
68
+ basic_memory/markdown/entity_parser.py,sha256=LJEx5dKIWdx7Z0lPrkMWM8-wXdve8UWqh6hLyLdrK4Y,8583
69
+ basic_memory/markdown/markdown_processor.py,sha256=imSVYyyfz0rQe9CyDcZhouB4m6V1haMdq6j3EWdo_wc,4984
70
+ basic_memory/markdown/plugins.py,sha256=3z5U6yX7UuzEJAq5jzT5LmhmJ-tF3CJThwfwDwCE2q8,7452
71
+ basic_memory/markdown/schemas.py,sha256=eyxYCr1hVyWmImcle0asE5It_DD6ARkqaBZYu1KK5n4,1896
72
+ basic_memory/markdown/utils.py,sha256=cm3h3C1eFz-zklXx5xaNRE-EBv8d-S5tixbTa5WqubQ,3416
73
+ basic_memory/mcp/__init__.py,sha256=dsDOhKqjYeIbCULbHIxfcItTbqudEuEg1Np86eq0GEQ,35
74
+ basic_memory/mcp/async_client.py,sha256=oHR-cscOQAh9914Pjf_annICzauaRHfK0POd0hzEJUg,5170
75
+ basic_memory/mcp/project_context.py,sha256=29ZwMriGcLfE8E0hNyWn9GpnzOsKG7TbP8FSq8UGEDY,4930
76
+ basic_memory/mcp/server.py,sha256=vICzbGc36u59Z5P2RjXhL2OxJxOVKC8gU4OqWeCwsq8,109
77
+ basic_memory/mcp/prompts/__init__.py,sha256=-Bl9Dgj2TD9PULjzggPqXuvPEjWCRy7S9Yg03h2-U7A,615
78
+ basic_memory/mcp/prompts/ai_assistant_guide.py,sha256=NLdtkb9EahAzKLT8kT4CMQezxDgd3fUc2WB6dIixQUg,2558
79
+ basic_memory/mcp/prompts/continue_conversation.py,sha256=L-f_hKIBWnILzmYuQii948EdXyDSYh1qWVQAbJQU3l8,2097
80
+ basic_memory/mcp/prompts/recent_activity.py,sha256=h9hT7CdMNpPIqwptlY8N64trPkpCCeMTX4Wfr8C5WAE,6466
81
+ basic_memory/mcp/prompts/search.py,sha256=QCX8fOI-BBxHSzPBvvVq6jZPklPO1jHG0560LVkks98,1775
82
+ basic_memory/mcp/prompts/utils.py,sha256=k7UUwbEgtE75jZftq3DT0PpZL2Un5dwPT8L3Vxl_GIw,5733
83
+ basic_memory/mcp/resources/ai_assistant_guide.md,sha256=u3vjEgCQvVTbOqEGx6lnu-KJDBDgx22SimCy4h0KxFg,7286
84
+ basic_memory/mcp/resources/project_info.py,sha256=68Z00eE4bxBK6PB3uf4abQXaMIcBPIONuHfF3VsEtLA,2553
85
+ basic_memory/mcp/tools/__init__.py,sha256=NjY89Ap0-ApZHNKmRLOWxwrMGcNhjHp5B-FYeWcNvAs,1513
86
+ basic_memory/mcp/tools/build_context.py,sha256=4KBFJmyu9UHKh8Wsi9AAy6X0FS1Og-IHRG9-Luz_sL4,4678
87
+ basic_memory/mcp/tools/canvas.py,sha256=6DZzN-7uU8mtbzHUn3M-w4kmx5IkJsndo3cd6gPUeoc,4661
88
+ basic_memory/mcp/tools/chatgpt_tools.py,sha256=CyCpvGi5QFc1C5lccPAATBpcr6JU2LQcnIUTb3NEzvw,6903
89
+ basic_memory/mcp/tools/delete_note.py,sha256=ZrQVFDJTtU4TYe_4AipAo8-Vra6ScMSpQQ_zN_Nf2yk,9223
90
+ basic_memory/mcp/tools/edit_note.py,sha256=pOB7pLrBxp_kpBaAFeW3ibKljFDg4VCYj13Jbi1kO54,15533
91
+ basic_memory/mcp/tools/list_directory.py,sha256=1glwoRPT9C5qrgxLXarO3RIaMFNMBmOPQz1HXS3QFUk,5954
92
+ basic_memory/mcp/tools/move_note.py,sha256=Ea8W-Gs9qp7dA2l2_UhWVjjn8Yek71ZRhOebxVay7vU,21702
93
+ basic_memory/mcp/tools/project_management.py,sha256=QBG25b-wqjCKRurYIQimHiZpgWotzmStEe5nRcxrUU4,8082
94
+ basic_memory/mcp/tools/read_content.py,sha256=nT4sfRKZEFY5Sien-hTCMKoQaJlV2eTT3L9Oq1HH1hU,10012
95
+ basic_memory/mcp/tools/read_note.py,sha256=NVbwk8zUvDT26NCG88lO3JNTd1ladw6doerjTAYNSS0,9538
96
+ basic_memory/mcp/tools/recent_activity.py,sha256=4ycPEEaNQlognylT7lRNQzLrpwEnzYh2ITZeFCfRW4I,21256
97
+ basic_memory/mcp/tools/search.py,sha256=GfdPtOMSUU1ayMeKNMHo0ad2PnRK5le81_wITj_thIM,16889
98
+ basic_memory/mcp/tools/utils.py,sha256=ouVNuoFEPu4qINLJdZNayq7OL8J8taF5IuYjy4ihtSQ,18165
99
+ basic_memory/mcp/tools/view_note.py,sha256=4SKwbF18wuLVvZ5g4rNhVTBjbwZ86QSNBEAlN13svqc,2442
100
+ basic_memory/mcp/tools/write_note.py,sha256=iqhin7hKZyUsAsvQUyketQQBbB4DLqJmtSjm-QaMiSU,8611
101
+ basic_memory/models/__init__.py,sha256=j0C4dtFi-FOEaQKR8dQWEG-dJtdQ15NBTiJg4nbIXNU,333
102
+ basic_memory/models/base.py,sha256=4hAXJ8CE1RnjKhb23lPd-QM7G_FXIdTowMJ9bRixspU,225
103
+ basic_memory/models/knowledge.py,sha256=bDb8AetU1wc_4Q2orK0YfJBhpAl6Ld-CUsGPt2RKljM,8052
104
+ basic_memory/models/project.py,sha256=fZKMvAfZ6nZYVWNkuL_rBcZ_rHiGOqWFVm4BECFqFxM,3101
105
+ basic_memory/models/search.py,sha256=PhQ8w4taApSvjh1DpPhB4cH9GTt2E2po-DFZzhnoZkY,1300
106
+ basic_memory/repository/__init__.py,sha256=MWK-o8QikqzOpe5SyPbKQ2ioB5BWA0Upz65tgg-E0DU,327
107
+ basic_memory/repository/entity_repository.py,sha256=LTF11JwMGmcJyN0ySBQ9setzM-k9Sb0JtoaEHAWVsPc,13101
108
+ basic_memory/repository/observation_repository.py,sha256=qhMvHLSjaoT3Fa_cQOKsT5jYPj66GXSytEBMwLAgygQ,2943
109
+ basic_memory/repository/project_info_repository.py,sha256=8XLVAYKkBWQ6GbKj1iqA9OK0FGPHdTlOs7ZtfeUf9t8,338
110
+ basic_memory/repository/project_repository.py,sha256=Fvo_pCylz8okFiv3FD3nv6PNQknLuC7f3S11fJNQkic,3795
111
+ basic_memory/repository/relation_repository.py,sha256=tpgyg5MTXAkdDgNpLYnHFQsYeiVSyfk3lasniw3DuRc,3718
112
+ basic_memory/repository/repository.py,sha256=GUKlgBOFvMeFBkmqh80MNyC2YKQdMdPQjlT_vAYlvwo,15638
113
+ basic_memory/repository/search_repository.py,sha256=bs9FXekHY_AYDOzA7L6ZCzf1EtHi1Q3k8HjjCbBXl8E,23989
114
+ basic_memory/schemas/__init__.py,sha256=6bZUVwc-Bvd6yKdNigUslYS3jFYgIQ9eqT-eujtEXY4,1785
115
+ basic_memory/schemas/base.py,sha256=t7F7f40EeQEQVJswMdoQJDd2Uh8LUgLHXVFIP6ugx8U,9551
116
+ basic_memory/schemas/cloud.py,sha256=4cxS5-Lo0teASdP5q9N6dYlR5TdCpO2_5h2zdB84nu8,1847
117
+ basic_memory/schemas/delete.py,sha256=UAR2JK99WMj3gP-yoGWlHD3eZEkvlTSRf8QoYIE-Wfw,1180
118
+ basic_memory/schemas/directory.py,sha256=F9_LrJqRqb_kO08GDKJzXLb2nhbYG2PdVUo5eDD_Kf4,881
119
+ basic_memory/schemas/importer.py,sha256=rDPfQjyjKyjOe26pwp1UH4eDqGwMKfeNs1Fjv5PxOc0,693
120
+ basic_memory/schemas/memory.py,sha256=LMAb4HfAAvosy9GrYzBM_lnviWHSS4Lez67zhgT9bf4,8894
121
+ basic_memory/schemas/project_info.py,sha256=1D9Q0QyWdizw44vk_eQX1UUAcBCiLjbfM-R_BYAads4,6832
122
+ basic_memory/schemas/prompt.py,sha256=SpIVfZprQT8E5uP40j3CpBc2nHKflwOo3iZD7BFPIHE,3648
123
+ basic_memory/schemas/request.py,sha256=Mv5EvrLZlFIiPr8dOjo_4QXvkseYhQI7cd_X2zDsxQM,3760
124
+ basic_memory/schemas/response.py,sha256=XupGYKKr5I2D7Qg9HCSD_c-0A-C1BPA8FNIvHK6Gars,6450
125
+ basic_memory/schemas/search.py,sha256=ywMsDGAQK2sO2TT5lc-da_k67OKW1x1TenXormHHWv4,3657
126
+ basic_memory/schemas/sync_report.py,sha256=fD2wjIr2l9NOlxE9XeTSdpcMDc65sfTSUJlJhJfEgow,2585
127
+ basic_memory/services/__init__.py,sha256=XGt8WX3fX_0K9L37Msy8HF8nlMZYIG3uQ6mUX6_iJtg,259
128
+ basic_memory/services/context_service.py,sha256=73meCXDdDvW7LXlnTvQG_rU-Yp-ogAZoPgyw0WEX2Yw,15742
129
+ basic_memory/services/directory_service.py,sha256=VCVPYN8WVMIlh6o-Qsutb7eZsM7eI0-j9ABtVUjvEgo,11216
130
+ basic_memory/services/entity_service.py,sha256=TmkhWlY_Us7nwmU99CKbVhU_GP5XSxlrOpOXI7OLuO0,35237
131
+ basic_memory/services/exceptions.py,sha256=PWrdv9_oKHW-7LfGy930nSfmaquZoRbIuRmdE6_7oNw,819
132
+ basic_memory/services/file_service.py,sha256=hdDqx9i-pGbuVxNNPZbsDSPPhk-cWTWFTWHoK7jnEEA,15687
133
+ basic_memory/services/initialization.py,sha256=2SNIKNRndNJZ9dSYLJOPSdwMlW5N67UnFOcoqmBfSoI,7004
134
+ basic_memory/services/link_resolver.py,sha256=1-_VFsvqdT5rVBHe8Jrq63U59XQ0hxGezxY8c24Tiow,4594
135
+ basic_memory/services/project_service.py,sha256=e812027P-jEJ0kNr-RVCX2V2dKSt0kQaTp5n4QaeguE,35406
136
+ basic_memory/services/search_service.py,sha256=Ld0fyWKF2PZq2ni0rZimKslOsH5K_psi0qq8ty3_1Co,13159
137
+ basic_memory/services/service.py,sha256=V-d_8gOV07zGIQDpL-Ksqs3ZN9l3qf3HZOK1f_YNTag,336
138
+ basic_memory/sync/__init__.py,sha256=CVHguYH457h2u2xoM8KvOilJC71XJlZ-qUh8lHcjYj4,156
139
+ basic_memory/sync/background_sync.py,sha256=VJr2SukRKLdsbfB-9Re4LehcpK15a-RLXAFB-sAdRRM,726
140
+ basic_memory/sync/sync_service.py,sha256=uolp_CaSF0ccyfqvpzKLzush5PKe8Cml3raWphBUBqw,53128
141
+ basic_memory/sync/watch_service.py,sha256=1OpCv-MJk6jkDjTYALI7peRweIv3KwipRWFbNURrW-4,20409
142
+ basic_memory/templates/prompts/continue_conversation.hbs,sha256=trrDHSXA5S0JCbInMoUJL04xvCGRB_ku1RHNQHtl6ZI,3076
143
+ basic_memory/templates/prompts/search.hbs,sha256=H1cCIsHKp4VC1GrH2KeUB8pGe5vXFPqb2VPotypmeCA,3098
144
+ basic_memory-0.16.1.dist-info/METADATA,sha256=UvgSFYULu78lt57n7oOYhVhWjfrmt48DV06eSNPBu-E,16171
145
+ basic_memory-0.16.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
146
+ basic_memory-0.16.1.dist-info/entry_points.txt,sha256=wvE2mRF6-Pg4weIYcfQ-86NOLZD4WJg7F7TIsRVFLb8,90
147
+ basic_memory-0.16.1.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
148
+ basic_memory-0.16.1.dist-info/RECORD,,
@@ -1,2 +1,3 @@
1
1
  [console_scripts]
2
2
  basic-memory = basic_memory.cli.main:app
3
+ bm = basic_memory.cli.main:app
@@ -1 +0,0 @@
1
- Generic single-database configuration.