basic-memory 0.14.0__py3-none-any.whl → 0.14.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.

basic_memory/__init__.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """basic-memory - Local-first knowledge management combining Zettelkasten with knowledge graphs"""
2
2
 
3
3
  # Package version - updated by release automation
4
- __version__ = "0.14.0"
4
+ __version__ = "0.14.1"
5
5
 
6
6
  # API version for FastAPI - independent of package version
7
7
  __api_version__ = "v0"
@@ -20,24 +20,24 @@ from basic_memory.mcp.tools.edit_note import edit_note
20
20
  from basic_memory.mcp.tools.move_note import move_note
21
21
  from basic_memory.mcp.tools.sync_status import sync_status
22
22
  from basic_memory.mcp.tools.project_management import (
23
- list_projects,
23
+ list_memory_projects,
24
24
  switch_project,
25
25
  get_current_project,
26
26
  set_default_project,
27
- create_project,
27
+ create_memory_project,
28
28
  delete_project,
29
29
  )
30
30
 
31
31
  __all__ = [
32
32
  "build_context",
33
33
  "canvas",
34
- "create_project",
34
+ "create_memory_project",
35
35
  "delete_note",
36
36
  "delete_project",
37
37
  "edit_note",
38
38
  "get_current_project",
39
39
  "list_directory",
40
- "list_projects",
40
+ "list_memory_projects",
41
41
  "move_note",
42
42
  "read_content",
43
43
  "read_note",
@@ -19,7 +19,7 @@ from basic_memory.utils import generate_permalink
19
19
 
20
20
 
21
21
  @mcp.tool("list_memory_projects")
22
- async def list_projects(ctx: Context | None = None) -> str:
22
+ async def list_memory_projects(ctx: Context | None = None) -> str:
23
23
  """List all available projects with their status.
24
24
 
25
25
  Shows all Basic Memory projects that are available, indicating which one
@@ -29,7 +29,7 @@ async def list_projects(ctx: Context | None = None) -> str:
29
29
  Formatted list of projects with status indicators
30
30
 
31
31
  Example:
32
- list_projects()
32
+ list_memory_projects()
33
33
  """
34
34
  if ctx: # pragma: no cover
35
35
  await ctx.info("Listing all available projects")
@@ -144,13 +144,13 @@ async def switch_project(project_name: str, ctx: Context | None = None) -> str:
144
144
  Your session remains on the previous project.
145
145
 
146
146
  ## Troubleshooting:
147
- 1. **Check available projects**: Use `list_projects()` to see valid project names
147
+ 1. **Check available projects**: Use `list_memory_projects()` to see valid project names
148
148
  2. **Verify spelling**: Ensure the project name is spelled correctly
149
149
  3. **Check permissions**: Verify you have access to the requested project
150
150
  4. **Try again**: The error might be temporary
151
151
 
152
152
  ## Available options:
153
- - See all projects: `list_projects()`
153
+ - See all projects: `list_memory_projects()`
154
154
  - Stay on current project: `get_current_project()`
155
155
  - Try different project: `switch_project("correct-project-name")`
156
156
 
@@ -231,7 +231,7 @@ async def set_default_project(project_name: str, ctx: Context | None = None) ->
231
231
 
232
232
 
233
233
  @mcp.tool("create_memory_project")
234
- async def create_project(
234
+ async def create_memory_project(
235
235
  project_name: str, project_path: str, set_default: bool = False, ctx: Context | None = None
236
236
  ) -> str:
237
237
  """Create a new Basic Memory project.
@@ -248,8 +248,8 @@ async def create_project(
248
248
  Confirmation message with project details
249
249
 
250
250
  Example:
251
- create_project("my-research", "~/Documents/research")
252
- create_project("work-notes", "/home/user/work", set_default=True)
251
+ create_memory_project("my-research", "~/Documents/research")
252
+ create_memory_project("work-notes", "/home/user/work", set_default=True)
253
253
  """
254
254
  if ctx: # pragma: no cover
255
255
  await ctx.info(f"Creating project: {project_name} at {project_path}")
@@ -54,7 +54,7 @@ def _format_search_error_response(error_message: str, query: str, search_type: s
54
54
  ```
55
55
 
56
56
  ## Alternative search strategies:
57
- - Break into simpler terms: `search_notes("{' '.join(clean_query.split()[:2])}")`
57
+ - Break into simpler terms: `search_notes("{" ".join(clean_query.split()[:2])}")`
58
58
  - Try different search types: `search_notes("{clean_query}", search_type="title")`
59
59
  - Use filtering: `search_notes("{clean_query}", types=["entity"])`
60
60
  """).strip()
@@ -105,7 +105,7 @@ def _format_search_error_response(error_message: str, query: str, search_type: s
105
105
  - **Permalink search**: `search_notes("{query}", search_type="permalink")` (searches file paths)
106
106
 
107
107
  4. **Try boolean operators for broader results**:
108
- - OR search: `search_notes("{' OR '.join(query.split()[:3])}")`
108
+ - OR search: `search_notes("{" OR ".join(query.split()[:3])}")`
109
109
  - Remove restrictive terms: Focus on the most important keywords
110
110
 
111
111
  5. **Use filtering to narrow scope**:
@@ -183,7 +183,7 @@ Error searching for '{query}': {error_message}
183
183
  - Permalink patterns: `search_notes("{query}*", search_type="permalink")`
184
184
  - **With filters**: `search_notes("{query}", types=["entity"])`
185
185
  - **Recent content**: `search_notes("{query}", after_date="1 week")`
186
- - **Boolean variations**: `search_notes("{' OR '.join(query.split()[:2])}")`
186
+ - **Boolean variations**: `search_notes("{" OR ".join(query.split()[:2])}")`
187
187
 
188
188
  ## Explore your content:
189
189
  - **Browse files**: `list_directory("/")` - See all available content
@@ -224,7 +224,7 @@ async def search_notes(
224
224
  - `search_notes("keyword")` - Find any content containing "keyword"
225
225
  - `search_notes("exact phrase")` - Search for exact phrase match
226
226
 
227
- ### Advanced Boolean Searches
227
+ ### Advanced Boolean Searches
228
228
  - `search_notes("term1 term2")` - Find content with both terms (implicit AND)
229
229
  - `search_notes("term1 AND term2")` - Explicit AND search (both terms required)
230
230
  - `search_notes("term1 OR term2")` - Either term can be present
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: basic-memory
3
- Version: 0.14.0
3
+ Version: 0.14.1
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
@@ -13,7 +13,7 @@ Requires-Dist: aiosqlite>=0.20.0
13
13
  Requires-Dist: alembic>=1.14.1
14
14
  Requires-Dist: dateparser>=1.2.0
15
15
  Requires-Dist: fastapi[standard]>=0.115.8
16
- Requires-Dist: fastmcp>=2.3.4
16
+ Requires-Dist: fastmcp<2.10.0,>=2.3.4
17
17
  Requires-Dist: greenlet>=3.1.1
18
18
  Requires-Dist: icecream>=2.1.3
19
19
  Requires-Dist: loguru>=0.7.3
@@ -71,6 +71,10 @@ https://github.com/user-attachments/assets/a55d8238-8dd0-454a-be4c-8860dbbd0ddc
71
71
  # Install with uv (recommended)
72
72
  uv tool install basic-memory
73
73
 
74
+ # or with Homebrew
75
+ brew tap basicmachines-co/basic-memory
76
+ brew install basic-memory
77
+
74
78
  # Configure Claude Desktop (edit ~/Library/Application Support/Claude/claude_desktop_config.json)
75
79
  # Add this to your config:
76
80
  {
@@ -104,6 +108,13 @@ npx -y @smithery/cli install @basicmachines-co/basic-memory --client claude
104
108
 
105
109
  This installs and configures Basic Memory without requiring manual edits to the Claude Desktop configuration file. Note: The Smithery installation uses their hosted MCP server, while your data remains stored locally as Markdown files.
106
110
 
111
+ ### Add to Cursor
112
+
113
+ Once you have installed Basic Memory revisit this page for the 1-click installer for Cursor:
114
+
115
+ [![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=basic-memory&config=eyJjb21tYW5kIjoiL1VzZXJzL2RyZXcvLmxvY2FsL2Jpbi91dnggYmFzaWMtbWVtb3J5IG1jcCJ9)
116
+
117
+
107
118
  ### Glama.ai
108
119
 
109
120
  <a href="https://glama.ai/mcp/servers/o90kttu9ym">
@@ -252,7 +263,7 @@ title: <Entity title>
252
263
  type: <The type of Entity> (e.g. note)
253
264
  permalink: <a uri slug>
254
265
 
255
- - <optional metadata> (such as tags)
266
+ - <optional metadata> (such as tags)
256
267
  ```
257
268
 
258
269
  ### Observations
@@ -1,4 +1,4 @@
1
- basic_memory/__init__.py,sha256=phj9zB3zwkTMlXZjjZftGxQzXzJk2uu7D5f9a_HxnA0,256
1
+ basic_memory/__init__.py,sha256=hfiF4S7DnKnU1fPTg8BkApjCXgHyFw6opKiNlNvz_2Y,256
2
2
  basic_memory/config.py,sha256=YX6pP8aOMlIx9NoCeKLS0b5cgOnegbWhX2ijJzimLQg,11828
3
3
  basic_memory/db.py,sha256=bFuJHj_PGEhaj5ZgRItIUSW0ujAFCGgYKO7nZsjbYD0,7582
4
4
  basic_memory/deps.py,sha256=zXOhqXCoSVIa1iIcO8U6uUiofJn5eT4ycwJkH9I2kX4,12102
@@ -72,18 +72,18 @@ basic_memory/mcp/prompts/sync_status.py,sha256=0F6YowgqIbAFmGE3vFFJ-D-q1SrTqzGLK
72
72
  basic_memory/mcp/prompts/utils.py,sha256=VacrbqwYtySpIlYIrKHo5s6jtoTMscYJqrFRH3zpC6Q,5431
73
73
  basic_memory/mcp/resources/ai_assistant_guide.md,sha256=qnYWDkYlb-JmKuOoZ5llmRas_t4dWDXB_i8LE277Lgs,14777
74
74
  basic_memory/mcp/resources/project_info.py,sha256=LcUkTx4iXBfU6Lp4TVch78OqLopbOy4ljyKnfr4VXso,1906
75
- basic_memory/mcp/tools/__init__.py,sha256=lCCOC0jElvL2v53WI_dxRs4qABq4Eo-YGm6j2XeZ6AQ,1591
75
+ basic_memory/mcp/tools/__init__.py,sha256=hyt3HdUuw7djZForr24Qpw8EnOMQaDCm0_BTs-CaX-Y,1619
76
76
  basic_memory/mcp/tools/build_context.py,sha256=ckKAt3uPXz5hzT_e68PuZuK8_tquo2OOai4uM_yxl44,4611
77
77
  basic_memory/mcp/tools/canvas.py,sha256=22F9G9gfPb-l8i1B5ra4Ja_h9zYY83rPY9mDA5C5gkY,3738
78
78
  basic_memory/mcp/tools/delete_note.py,sha256=tSyRc_VgBmLyVeenClwX1Sk--LKcGahAMzTX2mK2XIs,7346
79
79
  basic_memory/mcp/tools/edit_note.py,sha256=q4x-f7-j_l-wzm17-AVFT1_WGCo0Cq4lI3seYSe21aY,13570
80
80
  basic_memory/mcp/tools/list_directory.py,sha256=-FxDsCru5YD02M4qkQDAurEJWyRaC7YI4YR6zg0atR8,5236
81
81
  basic_memory/mcp/tools/move_note.py,sha256=jAsCFXrcWXPoBWlWcW8y3Tli5MkKwCQK-n6IwUZoOK8,17357
82
- basic_memory/mcp/tools/project_management.py,sha256=sZQbak0jIQ6k03Syz6X6Zsy-C9z8KdPnEQcpJLCxPwM,12779
82
+ basic_memory/mcp/tools/project_management.py,sha256=a9pS1CPr5g_o-M7nKR2RJLxlYBON2EeBeaeJA6_oxC0,12828
83
83
  basic_memory/mcp/tools/read_content.py,sha256=4FTw13B8UjVVhR78NJB9HKeJb_nA6-BGT1WdGtekN5Q,8596
84
84
  basic_memory/mcp/tools/read_note.py,sha256=V08NdBqWY8Y0Q4zuwK--zN3VK7fmuCH1mOYZKwL1IT4,7614
85
85
  basic_memory/mcp/tools/recent_activity.py,sha256=XVjNJAJnmxvzx9_Ls1A-QOd2yTR7pJlSTTuRxSivmN4,4833
86
- basic_memory/mcp/tools/search.py,sha256=-mhpLKk3wXctABclJYq4KowQFJQC7HavtN9lKEDFdSU,15885
86
+ basic_memory/mcp/tools/search.py,sha256=hRmwBXRoxEUOtUOi9WG80NfLluHOG5XpSOArMJumt8o,15883
87
87
  basic_memory/mcp/tools/sync_status.py,sha256=mt0DdcaAlyiKW4NK4gy6psajSqcez0bOm_4MzG1NOdg,10486
88
88
  basic_memory/mcp/tools/utils.py,sha256=qVAEkR4naCLrqIo_7xXFubqGGxypouz-DB4_svTvARY,20892
89
89
  basic_memory/mcp/tools/view_note.py,sha256=ddNXxyETsdA5SYflIaQVj_Cbd7I7CLVs3atRRDMbGmg,2499
@@ -131,8 +131,8 @@ basic_memory/sync/sync_service.py,sha256=AxC5J1YTcPWTmA0HdzvOZBthi4-_LZ44kNF0KQo
131
131
  basic_memory/sync/watch_service.py,sha256=JAumrHUjV1lF9NtEK32jgg0myWBfLXotNXxONeIV9SM,15316
132
132
  basic_memory/templates/prompts/continue_conversation.hbs,sha256=trrDHSXA5S0JCbInMoUJL04xvCGRB_ku1RHNQHtl6ZI,3076
133
133
  basic_memory/templates/prompts/search.hbs,sha256=H1cCIsHKp4VC1GrH2KeUB8pGe5vXFPqb2VPotypmeCA,3098
134
- basic_memory-0.14.0.dist-info/METADATA,sha256=wYKNGqaPHXCccVFXgrsaKwg1NaAtT-Vv1F1xI8kJcx8,17224
135
- basic_memory-0.14.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
136
- basic_memory-0.14.0.dist-info/entry_points.txt,sha256=wvE2mRF6-Pg4weIYcfQ-86NOLZD4WJg7F7TIsRVFLb8,90
137
- basic_memory-0.14.0.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
138
- basic_memory-0.14.0.dist-info/RECORD,,
134
+ basic_memory-0.14.1.dist-info/METADATA,sha256=PR1mlNQAOnNS7K7KmYDRrR9uWkPmJebIBbwKrRcy4SM,17639
135
+ basic_memory-0.14.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
136
+ basic_memory-0.14.1.dist-info/entry_points.txt,sha256=wvE2mRF6-Pg4weIYcfQ-86NOLZD4WJg7F7TIsRVFLb8,90
137
+ basic_memory-0.14.1.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
138
+ basic_memory-0.14.1.dist-info/RECORD,,