squish-memory 0.8.2 → 0.9.1

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.
Files changed (266) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/.env.mcp +30 -0
  4. package/.mcp.json +2 -5
  5. package/CHANGELOG.md +111 -0
  6. package/QUICK-START.md +65 -0
  7. package/README.md +188 -530
  8. package/commands/managed-sync.ts +69 -0
  9. package/commands/mcp-server.ts +519 -0
  10. package/config/mcp-cli-fallback-policy.json +22 -0
  11. package/config/mcp-migration-map.json +22 -0
  12. package/config/mcp-mode-semantics.json +21 -0
  13. package/config/mcp-remote-auth.json +36 -0
  14. package/config/mcp-universal.schema.json +48 -0
  15. package/config/mcp.json +38 -0
  16. package/config/remote-memory-policy.json +32 -0
  17. package/dist/algorithms/merge/detection/hash-filters.js +2 -2
  18. package/dist/algorithms/merge/detection/hash-filters.js.map +1 -1
  19. package/dist/algorithms/merge/detection/two-stage-detector.d.ts +5 -2
  20. package/dist/algorithms/merge/detection/two-stage-detector.d.ts.map +1 -1
  21. package/dist/algorithms/merge/detection/two-stage-detector.js +139 -22
  22. package/dist/algorithms/merge/detection/two-stage-detector.js.map +1 -1
  23. package/dist/commands/managed-sync.d.ts +10 -0
  24. package/dist/commands/managed-sync.d.ts.map +1 -0
  25. package/dist/commands/managed-sync.js +64 -0
  26. package/dist/commands/managed-sync.js.map +1 -0
  27. package/dist/commands/mcp-server.d.ts +3 -0
  28. package/dist/commands/mcp-server.d.ts.map +1 -0
  29. package/dist/commands/mcp-server.js +389 -0
  30. package/dist/commands/mcp-server.js.map +1 -0
  31. package/dist/config.d.ts +24 -1
  32. package/dist/config.d.ts.map +1 -1
  33. package/dist/config.js +32 -1
  34. package/dist/config.js.map +1 -1
  35. package/dist/core/associations.d.ts +1 -1
  36. package/dist/core/associations.d.ts.map +1 -1
  37. package/dist/core/consolidation.d.ts +31 -0
  38. package/dist/core/consolidation.d.ts.map +1 -1
  39. package/dist/core/consolidation.js +237 -29
  40. package/dist/core/consolidation.js.map +1 -1
  41. package/dist/core/embeddings/google-multimodal.d.ts +14 -0
  42. package/dist/core/embeddings/google-multimodal.d.ts.map +1 -0
  43. package/dist/core/embeddings/google-multimodal.js +142 -0
  44. package/dist/core/embeddings/google-multimodal.js.map +1 -0
  45. package/dist/core/embeddings.d.ts +3 -2
  46. package/dist/core/embeddings.d.ts.map +1 -1
  47. package/dist/core/embeddings.js +61 -39
  48. package/dist/core/embeddings.js.map +1 -1
  49. package/dist/core/mcp/client.d.ts +17 -0
  50. package/dist/core/mcp/client.d.ts.map +1 -0
  51. package/dist/core/mcp/client.js +101 -0
  52. package/dist/core/mcp/client.js.map +1 -0
  53. package/dist/core/mcp/index.d.ts +6 -0
  54. package/dist/core/mcp/index.d.ts.map +1 -0
  55. package/dist/core/mcp/index.js +6 -0
  56. package/dist/core/mcp/index.js.map +1 -0
  57. package/dist/core/mcp/server.d.ts +18 -0
  58. package/dist/core/mcp/server.d.ts.map +1 -0
  59. package/dist/core/mcp/server.js +131 -0
  60. package/dist/core/mcp/server.js.map +1 -0
  61. package/dist/core/mcp/standalone-server.d.ts +13 -0
  62. package/dist/core/mcp/standalone-server.d.ts.map +1 -0
  63. package/dist/core/mcp/standalone-server.js +46 -0
  64. package/dist/core/mcp/standalone-server.js.map +1 -0
  65. package/dist/core/mcp/tools.d.ts +9 -0
  66. package/dist/core/mcp/tools.d.ts.map +1 -0
  67. package/dist/core/mcp/tools.js +262 -0
  68. package/dist/core/mcp/tools.js.map +1 -0
  69. package/dist/core/mcp/types.d.ts +315 -0
  70. package/dist/core/mcp/types.d.ts.map +1 -0
  71. package/dist/core/mcp/types.js +48 -0
  72. package/dist/core/mcp/types.js.map +1 -0
  73. package/dist/core/memory/categorizer.d.ts +27 -0
  74. package/dist/core/memory/categorizer.d.ts.map +1 -0
  75. package/dist/core/memory/categorizer.js +304 -0
  76. package/dist/core/memory/categorizer.js.map +1 -0
  77. package/dist/core/memory/conflict-detector.d.ts +7 -0
  78. package/dist/core/memory/conflict-detector.d.ts.map +1 -0
  79. package/dist/core/memory/conflict-detector.js +43 -0
  80. package/dist/core/memory/conflict-detector.js.map +1 -0
  81. package/dist/core/memory/context-collector.d.ts +10 -0
  82. package/dist/core/memory/context-collector.d.ts.map +1 -0
  83. package/dist/core/memory/context-collector.js +55 -0
  84. package/dist/core/memory/context-collector.js.map +1 -0
  85. package/dist/core/memory/contradiction-resolver.d.ts +40 -0
  86. package/dist/core/memory/contradiction-resolver.d.ts.map +1 -0
  87. package/dist/core/memory/contradiction-resolver.js +368 -0
  88. package/dist/core/memory/contradiction-resolver.js.map +1 -0
  89. package/dist/core/memory/edit-workflow.d.ts +19 -0
  90. package/dist/core/memory/edit-workflow.d.ts.map +1 -0
  91. package/dist/core/memory/edit-workflow.js +120 -0
  92. package/dist/core/memory/edit-workflow.js.map +1 -0
  93. package/dist/core/memory/feedback-tracker.d.ts +12 -0
  94. package/dist/core/memory/feedback-tracker.d.ts.map +1 -0
  95. package/dist/core/memory/feedback-tracker.js +151 -0
  96. package/dist/core/memory/feedback-tracker.js.map +1 -0
  97. package/dist/core/memory/hybrid-retrieval.d.ts +11 -12
  98. package/dist/core/memory/hybrid-retrieval.d.ts.map +1 -1
  99. package/dist/core/memory/hybrid-retrieval.js +56 -28
  100. package/dist/core/memory/hybrid-retrieval.js.map +1 -1
  101. package/dist/core/memory/hybrid-scorer.d.ts +5 -16
  102. package/dist/core/memory/hybrid-scorer.d.ts.map +1 -1
  103. package/dist/core/memory/hybrid-scorer.js +161 -125
  104. package/dist/core/memory/hybrid-scorer.js.map +1 -1
  105. package/dist/core/memory/hybrid-search.js +53 -19
  106. package/dist/core/memory/hybrid-search.js.map +1 -1
  107. package/dist/core/memory/memories.d.ts +4 -0
  108. package/dist/core/memory/memories.d.ts.map +1 -1
  109. package/dist/core/memory/memories.js +133 -60
  110. package/dist/core/memory/memories.js.map +1 -1
  111. package/dist/core/memory/progressive-disclosure.d.ts +43 -0
  112. package/dist/core/memory/progressive-disclosure.d.ts.map +1 -0
  113. package/dist/core/memory/progressive-disclosure.js +280 -0
  114. package/dist/core/memory/progressive-disclosure.js.map +1 -0
  115. package/dist/core/memory/query-rewriter.d.ts +13 -0
  116. package/dist/core/memory/query-rewriter.d.ts.map +1 -0
  117. package/dist/core/memory/query-rewriter.js +118 -0
  118. package/dist/core/memory/query-rewriter.js.map +1 -0
  119. package/dist/core/memory/response-analyzer.d.ts +9 -0
  120. package/dist/core/memory/response-analyzer.d.ts.map +1 -0
  121. package/dist/core/memory/response-analyzer.js +61 -0
  122. package/dist/core/memory/response-analyzer.js.map +1 -0
  123. package/dist/core/memory/stats.d.ts +17 -0
  124. package/dist/core/memory/stats.d.ts.map +1 -0
  125. package/dist/core/memory/stats.js +87 -0
  126. package/dist/core/memory/stats.js.map +1 -0
  127. package/dist/core/memory/telemetry.d.ts +69 -0
  128. package/dist/core/memory/telemetry.d.ts.map +1 -0
  129. package/dist/core/memory/telemetry.js +313 -0
  130. package/dist/core/memory/telemetry.js.map +1 -0
  131. package/dist/core/memory/temporal-facts.d.ts +41 -0
  132. package/dist/core/memory/temporal-facts.d.ts.map +1 -0
  133. package/dist/core/memory/temporal-facts.js +262 -0
  134. package/dist/core/memory/temporal-facts.js.map +1 -0
  135. package/dist/core/memory/trigger-detector.d.ts +14 -0
  136. package/dist/core/memory/trigger-detector.d.ts.map +1 -0
  137. package/dist/core/memory/trigger-detector.js +42 -0
  138. package/dist/core/memory/trigger-detector.js.map +1 -0
  139. package/dist/core/memory/write-gate.d.ts +54 -0
  140. package/dist/core/memory/write-gate.d.ts.map +1 -0
  141. package/dist/core/memory/write-gate.js +210 -0
  142. package/dist/core/memory/write-gate.js.map +1 -0
  143. package/dist/core/projects.d.ts +2 -0
  144. package/dist/core/projects.d.ts.map +1 -1
  145. package/dist/core/projects.js +33 -0
  146. package/dist/core/projects.js.map +1 -1
  147. package/dist/core/scheduler/cron-scheduler.d.ts +32 -0
  148. package/dist/core/scheduler/cron-scheduler.d.ts.map +1 -0
  149. package/dist/core/scheduler/cron-scheduler.js +238 -0
  150. package/dist/core/scheduler/cron-scheduler.js.map +1 -0
  151. package/dist/core/scheduler/heartbeat.d.ts +11 -0
  152. package/dist/core/scheduler/heartbeat.d.ts.map +1 -0
  153. package/dist/core/scheduler/heartbeat.js +73 -0
  154. package/dist/core/scheduler/heartbeat.js.map +1 -0
  155. package/dist/core/scheduler/index.d.ts +8 -0
  156. package/dist/core/scheduler/index.d.ts.map +1 -0
  157. package/dist/core/scheduler/index.js +8 -0
  158. package/dist/core/scheduler/index.js.map +1 -0
  159. package/dist/core/scheduler/job-runner.d.ts +11 -0
  160. package/dist/core/scheduler/job-runner.d.ts.map +1 -0
  161. package/dist/core/scheduler/job-runner.js +161 -0
  162. package/dist/core/scheduler/job-runner.js.map +1 -0
  163. package/dist/core/session/auto-load.d.ts +6 -0
  164. package/dist/core/session/auto-load.d.ts.map +1 -0
  165. package/dist/core/session/auto-load.js +119 -0
  166. package/dist/core/session/auto-load.js.map +1 -0
  167. package/dist/core/session/index.d.ts +7 -0
  168. package/dist/core/session/index.d.ts.map +1 -0
  169. package/dist/core/session/index.js +7 -0
  170. package/dist/core/session/index.js.map +1 -0
  171. package/dist/core/session/types.d.ts +26 -0
  172. package/dist/core/session/types.d.ts.map +1 -0
  173. package/dist/core/session/types.js +10 -0
  174. package/dist/core/session/types.js.map +1 -0
  175. package/dist/core/snapshots/comparison.d.ts.map +1 -1
  176. package/dist/core/snapshots/comparison.js +8 -2
  177. package/dist/core/snapshots/comparison.js.map +1 -1
  178. package/dist/core/utils/content-extraction.d.ts.map +1 -1
  179. package/dist/core/utils/content-extraction.js +11 -1
  180. package/dist/core/utils/content-extraction.js.map +1 -1
  181. package/dist/core/utils/summarization-helpers.d.ts.map +1 -1
  182. package/dist/core/utils/summarization-helpers.js +4 -1
  183. package/dist/core/utils/summarization-helpers.js.map +1 -1
  184. package/dist/core/utils.d.ts.map +1 -1
  185. package/dist/core/utils.js +26 -3
  186. package/dist/core/utils.js.map +1 -1
  187. package/dist/core/worker.d.ts +20 -0
  188. package/dist/core/worker.d.ts.map +1 -1
  189. package/dist/core/worker.js +86 -0
  190. package/dist/core/worker.js.map +1 -1
  191. package/dist/db/adapter.d.ts +1 -5
  192. package/dist/db/adapter.d.ts.map +1 -1
  193. package/dist/db/adapter.js +125 -12
  194. package/dist/db/adapter.js.map +1 -1
  195. package/dist/db/bootstrap.d.ts.map +1 -1
  196. package/dist/db/bootstrap.js +178 -3
  197. package/dist/db/bootstrap.js.map +1 -1
  198. package/dist/db/index.d.ts +1 -5
  199. package/dist/db/index.d.ts.map +1 -1
  200. package/dist/db/index.js +7 -4
  201. package/dist/db/index.js.map +1 -1
  202. package/dist/drizzle/schema-sqlite.d.ts +1953 -612
  203. package/dist/drizzle/schema-sqlite.d.ts.map +1 -1
  204. package/dist/drizzle/schema-sqlite.js +134 -0
  205. package/dist/drizzle/schema-sqlite.js.map +1 -1
  206. package/dist/drizzle/schema.d.ts +684 -3
  207. package/dist/drizzle/schema.d.ts.map +1 -1
  208. package/dist/drizzle/schema.js +81 -1
  209. package/dist/drizzle/schema.js.map +1 -1
  210. package/dist/index.d.ts +3 -3
  211. package/dist/index.js +152 -13
  212. package/dist/index.js.map +1 -1
  213. package/package.json +125 -103
  214. package/scripts/build-release.sh +33 -0
  215. package/scripts/db/check-db.mjs +88 -0
  216. package/scripts/db/fix-all-columns.mjs +52 -0
  217. package/scripts/db/fix-schema-all.mjs +55 -0
  218. package/scripts/db/fix-schema-full.mjs +46 -0
  219. package/scripts/db/fix-schema.mjs +38 -0
  220. package/scripts/db/init-db.mjs +13 -0
  221. package/scripts/db/recreate-db.mjs +14 -0
  222. package/scripts/generate-mcp.mjs +264 -0
  223. package/scripts/github-release.sh +61 -0
  224. package/scripts/init-dirs.mjs +13 -0
  225. package/scripts/init-dirs.ts +15 -0
  226. package/scripts/install-mcp.mjs +116 -0
  227. package/scripts/install-web.sh +120 -0
  228. package/scripts/install.mjs +340 -0
  229. package/scripts/openclaw-bootstrap.mjs +127 -0
  230. package/scripts/package-release.sh +71 -0
  231. package/scripts/remote-preflight.mjs +62 -0
  232. package/scripts/squish-fallback.mjs +132 -0
  233. package/scripts/test/test-all-systems.mjs +139 -0
  234. package/scripts/test/test-memory-system.mjs +139 -0
  235. package/scripts/test/test-v0.5.0.mjs +210 -0
  236. package/scripts/verify-mcp.mjs +214 -0
  237. package/skills/memory-guide/SKILL.md +181 -123
  238. package/skills/squish-cli/SKILL.md +200 -0
  239. package/skills/squish-mcp/SKILL.md +311 -0
  240. package/skills/squish-memory/SKILL.md +100 -62
  241. package/skills/squish-memory/claude-desktop.json +12 -0
  242. package/skills/squish-memory/install.mjs +335 -0
  243. package/skills/squish-memory/install.sh +94 -62
  244. package/skills/squish-memory/openclaw.json +13 -0
  245. package/skills/squish-memory/opencode.json +14 -0
  246. package/skills/squish-memory/skill.json +32 -0
  247. package/dist/adapters/claude-code/capture.d.ts +0 -11
  248. package/dist/adapters/claude-code/capture.d.ts.map +0 -1
  249. package/dist/adapters/claude-code/capture.js +0 -100
  250. package/dist/adapters/claude-code/capture.js.map +0 -1
  251. package/dist/adapters/claude-code/index.d.ts +0 -5
  252. package/dist/adapters/claude-code/index.d.ts.map +0 -1
  253. package/dist/adapters/claude-code/index.js +0 -6
  254. package/dist/adapters/claude-code/index.js.map +0 -1
  255. package/dist/adapters/claude-code/injection.d.ts +0 -34
  256. package/dist/adapters/claude-code/injection.d.ts.map +0 -1
  257. package/dist/adapters/claude-code/injection.js +0 -127
  258. package/dist/adapters/claude-code/injection.js.map +0 -1
  259. package/dist/adapters/claude-code/plugin-wrapper.d.ts +0 -21
  260. package/dist/adapters/claude-code/plugin-wrapper.d.ts.map +0 -1
  261. package/dist/adapters/claude-code/plugin-wrapper.js +0 -239
  262. package/dist/adapters/claude-code/plugin-wrapper.js.map +0 -1
  263. package/dist/adapters/claude-code/types.d.ts +0 -46
  264. package/dist/adapters/claude-code/types.d.ts.map +0 -1
  265. package/dist/adapters/claude-code/types.js +0 -6
  266. package/dist/adapters/claude-code/types.js.map +0 -1
@@ -0,0 +1,200 @@
1
+ ---
2
+ name: squish-cli
3
+ description: Squish CLI commands for OpenClaw and other CLI-based agents. Use for bash execution, scripting, and automation.
4
+ version: 0.9.0
5
+ author: michielhdoteth
6
+ tags: [cli, memory, persistence, command-line, openclaw, bash, automation]
7
+ emoji: terminal
8
+ ---
9
+
10
+ # Squish CLI Commands
11
+
12
+ Use these CLI commands when MCP is not available or when working with OpenClaw, CLI-based agents, or bash scripting.
13
+
14
+ ## Install
15
+
16
+ ```bash
17
+ npm install -g squish-memory
18
+ # or
19
+ bun add -g squish-memory
20
+ ```
21
+
22
+ ## Commands
23
+
24
+ ### squish remember
25
+
26
+ Store a memory.
27
+
28
+ ```bash
29
+ squish remember "User prefers TypeScript" --type preference
30
+ squish remember "API uses JWT tokens" --type fact --tags auth,api
31
+ squish remember "Chose PostgreSQL" --type decision --project /path/to/project
32
+ ```
33
+
34
+ Options:
35
+ - `-t, --type <type>` - Memory type: observation, fact, decision, context, preference (default: observation)
36
+ - `-T, --tags <tags>` - Comma-separated tags
37
+ - `-p, --project <project>` - Project path (default: current directory)
38
+
39
+ ### squish search
40
+
41
+ Search memories.
42
+
43
+ ```bash
44
+ squish search "authentication patterns"
45
+ squish search "database schema" --limit 10
46
+ squish search "user preferences" --type preference
47
+ squish search "" --project /path/to/project # List recent
48
+ ```
49
+
50
+ Options:
51
+ - `-t, --type <type>` - Filter by memory type
52
+ - `-l, --limit <number>` - Max results (default: 10)
53
+ - `-p, --project <project>` - Project path
54
+
55
+ ### squish recall
56
+
57
+ Retrieve a memory by ID.
58
+
59
+ ```bash
60
+ squish recall <memory-uuid>
61
+ ```
62
+
63
+ ### squish core_memory
64
+
65
+ Manage core memory (always-visible context).
66
+
67
+ ```bash
68
+ # View all sections
69
+ squish core_memory view
70
+
71
+ # Edit a section
72
+ squish core_memory edit persona --content "I am a helpful coding assistant"
73
+ squish core_memory edit user_info --content "User likes TypeScript"
74
+ squish core_memory edit project_context --content "Stack: React, Node.js, PostgreSQL"
75
+ squish core_memory edit working_notes --content "TODO: Implement auth"
76
+
77
+ # Append to a section
78
+ squish core_memory append user_info --text "Also prefers dark mode"
79
+ ```
80
+
81
+ Options:
82
+ - `-s, --section <section>` - Section: persona, user_info, project_context, working_notes
83
+ - `-c, --content <content>` - New content (for edit)
84
+ - `-t, --text <text>` - Text to append (for append)
85
+ - `-p, --project <project>` - Project path
86
+
87
+ ### squish set-importance
88
+
89
+ Set importance score (0-100).
90
+
91
+ ```bash
92
+ squish set-importance <memory-id> --importance 80
93
+ ```
94
+
95
+ ### squish pin / squish unpin
96
+
97
+ Pin/unpin memory to prevent pruning.
98
+
99
+ ```bash
100
+ squish pin <memory-id>
101
+ squish unpin <memory-id>
102
+ ```
103
+
104
+ ### squish consolidate
105
+
106
+ Trigger manual memory consolidation.
107
+
108
+ ```bash
109
+ squish consolidate
110
+ squish consolidate --project-id <project-id>
111
+ squish consolidate --min-age 30 --threshold 0.8
112
+ ```
113
+
114
+ Options:
115
+ - `-p, --project-id <id>` - Project ID (default: current directory)
116
+ - `-a, --min-age <number>` - Minimum age in days (default: 90)
117
+ - `-i, --max-importance <number>` - Max importance to consolidate (default: 30)
118
+ - `-t, --threshold <number>` - Similarity threshold 0-1 (default: 0.7)
119
+ - `-l, --limit <number>` - Max memories to process (default: 100)
120
+
121
+ ### squish consolidation-stats
122
+
123
+ Get consolidation statistics.
124
+
125
+ ```bash
126
+ squish consolidation-stats
127
+ squish consolidation-stats --project-id <project-id>
128
+ ```
129
+
130
+ ### squish health
131
+
132
+ Check service health.
133
+
134
+ ```bash
135
+ squish health
136
+ squish health --json
137
+ ```
138
+
139
+ ### squish stats
140
+
141
+ Get memory statistics.
142
+
143
+ ```bash
144
+ squish stats
145
+ squish stats --project /path/to/project
146
+ ```
147
+
148
+ ### squish install
149
+
150
+ Self-install for OpenClaw.
151
+
152
+ ```bash
153
+ squish install
154
+ squish install --dry-run
155
+ squish install --skip-install
156
+ ```
157
+
158
+ Options:
159
+ - `-o, --openclaw-dir <dir>` - OpenClaw directory
160
+ - `-n, --dry-run` - Show what would be done
161
+ - `--skip-install` - Skip global npm install
162
+
163
+ ## Quick Reference
164
+
165
+ | Command | Purpose | Example |
166
+ |---------|---------|---------|
167
+ | remember | Store memory | `squish remember "text"` |
168
+ | search | Find memories | `squish search "query"` |
169
+ | recall | Get by ID | `squish recall <id>` |
170
+ | core_memory | Manage context | `squish core_memory view` |
171
+ | set-importance | Set score | `squish set-importance <id> 80` |
172
+ | pin/unpin | Prevent pruning | `squish pin <id>` |
173
+ | consolidate | Summarize old | `squish consolidate` |
174
+ | consolidation-stats | View stats | `squish consolidation-stats` |
175
+ | health | Check status | `squish health` |
176
+ | stats | View stats | `squish stats` |
177
+ | install | Setup OpenClaw | `squish install` |
178
+
179
+ ## Output Format
180
+
181
+ All commands output JSON by default:
182
+
183
+ ```json
184
+ {
185
+ "ok": true,
186
+ "id": "memory-uuid",
187
+ "content": "...",
188
+ "type": "observation"
189
+ }
190
+ ```
191
+
192
+ Use `--json` flag where available for JSON output.
193
+
194
+ ## Environment
195
+
196
+ ```bash
197
+ export SQUISH_MODE=local # or team
198
+ export SQUISH_DATA_DIR=~/.squish
199
+ export SQUISH_EMBEDDINGS_PROVIDER=local # or openai
200
+ ```
@@ -0,0 +1,311 @@
1
+ ---
2
+ name: squish-mcp
3
+ description: Squish MCP tools for Claude Code, OpenCode, Cursor and other MCP clients. 16 tools for persistent memory storage, search, and context management.
4
+ version: 0.9.0
5
+ author: michielhdoteth
6
+ tags: [mcp, memory, persistence, search, semantic-search, claude-code, opencode, cursor]
7
+ emoji: plug
8
+ ---
9
+
10
+ # Squish MCP Tools
11
+
12
+ Use these MCP tools when working with Claude Code, OpenCode, Cursor, or any MCP-compatible client.
13
+
14
+ ## Install
15
+
16
+ ```bash
17
+ npm install -g squish-memory
18
+ ```
19
+
20
+ Configure in your client's MCP settings.
21
+
22
+ ## MCP Tools (16 Tools)
23
+
24
+ ### 1. squish_remember
25
+ Store a new memory with automatic embedding.
26
+
27
+ ```typescript
28
+ {
29
+ name: "squish_remember",
30
+ description: "Store a new memory in Squish with automatic embedding",
31
+ inputSchema: {
32
+ type: "object",
33
+ properties: {
34
+ content: { type: "string", description: "Memory content to store" },
35
+ type: {
36
+ type: "string",
37
+ enum: ["observation", "fact", "decision", "context", "preference"],
38
+ description: "Memory type (default: observation)"
39
+ },
40
+ tags: {
41
+ type: "array",
42
+ items: { type: "string" },
43
+ description: "Optional tags"
44
+ },
45
+ project: { type: "string", description: "Project path" }
46
+ },
47
+ required: ["content"]
48
+ }
49
+ }
50
+ ```
51
+
52
+ ### 2. squish_search
53
+ Hybrid search across QMD, SQLite DB, and embeddings.
54
+
55
+ ```typescript
56
+ {
57
+ name: "squish_search",
58
+ description: "Hybrid search across QMD, SQLite DB, and embeddings with graph expansion",
59
+ inputSchema: {
60
+ type: "object",
61
+ properties: {
62
+ query: { type: "string", description: "Search query" },
63
+ limit: { type: "number", description: "Max results (default: 5, max: 100)" },
64
+ project: { type: "string", description: "Project path filter" },
65
+ mode: {
66
+ type: "string",
67
+ enum: ["hybrid", "qmd", "db", "semantic"],
68
+ description: "Search mode (default: hybrid)"
69
+ }
70
+ },
71
+ required: ["query"]
72
+ }
73
+ }
74
+ ```
75
+
76
+ ### 3. squish_recall
77
+ Retrieve a specific memory by ID.
78
+
79
+ ```typescript
80
+ {
81
+ name: "squish_recall",
82
+ description: "Retrieve a specific memory by ID",
83
+ inputSchema: {
84
+ type: "object",
85
+ properties: {
86
+ memoryId: { type: "string", description: "Memory UUID to retrieve" }
87
+ },
88
+ required: ["memoryId"]
89
+ }
90
+ }
91
+ ```
92
+
93
+ ### 4. squish_forget
94
+ Delete a memory by ID.
95
+
96
+ ```typescript
97
+ {
98
+ name: "squish_forget",
99
+ description: "Delete a memory by ID",
100
+ inputSchema: {
101
+ type: "object",
102
+ properties: {
103
+ memoryId: { type: "string", description: "Memory UUID to delete" }
104
+ },
105
+ required: ["memoryId"]
106
+ }
107
+ }
108
+ ```
109
+
110
+ ### 5. squish_update
111
+ Update an existing memory.
112
+
113
+ ```typescript
114
+ {
115
+ name: "squish_update",
116
+ description: "Update an existing memory",
117
+ inputSchema: {
118
+ type: "object",
119
+ properties: {
120
+ memoryId: { type: "string", description: "Memory UUID to update" },
121
+ content: { type: "string", description: "New content" },
122
+ tags: { type: "array", items: { type: "string" }, description: "New tags" },
123
+ type: {
124
+ type: "string",
125
+ enum: ["observation", "fact", "decision", "context", "preference"],
126
+ description: "New type"
127
+ }
128
+ },
129
+ required: ["memoryId"]
130
+ }
131
+ }
132
+ ```
133
+
134
+ ### 6. squish_associate
135
+ Create association between two memories.
136
+
137
+ ```typescript
138
+ {
139
+ name: "squish_associate",
140
+ description: "Create an association between two memories in the graph",
141
+ inputSchema: {
142
+ type: "object",
143
+ properties: {
144
+ fromMemoryId: { type: "string", description: "Source memory UUID" },
145
+ toMemoryId: { type: "string", description: "Target memory UUID" },
146
+ type: {
147
+ type: "string",
148
+ enum: ["relates_to", "supersedes", "contradicts", "supports", "duplicate", "merged"],
149
+ description: "Association type"
150
+ },
151
+ weight: { type: "number", description: "Strength 0-1 (default: 0.5)" }
152
+ },
153
+ required: ["fromMemoryId", "toMemoryId", "type"]
154
+ }
155
+ }
156
+ ```
157
+
158
+ ### 7. squish_related
159
+ Find related memories via graph.
160
+
161
+ ```typescript
162
+ {
163
+ name: "squish_related",
164
+ description: "Get related memories via graph traversal",
165
+ inputSchema: {
166
+ type: "object",
167
+ properties: {
168
+ memoryId: { type: "string", description: "Memory UUID" },
169
+ depth: { type: "number", description: "Graph depth 1-5 (default: 2)" },
170
+ minWeight: { type: "number", description: "Min weight 0-1 (default: 0.3)" }
171
+ },
172
+ required: ["memoryId"]
173
+ }
174
+ }
175
+ ```
176
+
177
+ ### 8. squish_context
178
+ Get project context.
179
+
180
+ ```typescript
181
+ {
182
+ name: "squish_context",
183
+ description: "Get project context with relevant memories",
184
+ inputSchema: {
185
+ type: "object",
186
+ properties: {
187
+ project: { type: "string", description: "Project path" },
188
+ limit: { type: "number", description: "Max memories (default: 10)" }
189
+ },
190
+ required: ["project"]
191
+ }
192
+ }
193
+ ```
194
+
195
+ ### 9. squish_observe
196
+ Record observations.
197
+
198
+ ```typescript
199
+ {
200
+ name: "squish_observe",
201
+ description: "Store an observation about tool usage, patterns, or insights",
202
+ inputSchema: {
203
+ type: "object",
204
+ properties: {
205
+ type: {
206
+ type: "string",
207
+ enum: ["tool_use", "file_change", "error", "pattern", "insight"],
208
+ description: "Observation type"
209
+ },
210
+ action: { type: "string", description: "Action performed" },
211
+ summary: { type: "string", description: "Summary of observation" },
212
+ target: { type: "string", description: "Target file or resource" },
213
+ project: { type: "string", description: "Project path" }
214
+ },
215
+ required: ["type", "action", "summary"]
216
+ }
217
+ }
218
+ ```
219
+
220
+ ### 10. squish_qmd_search
221
+ Search markdown files.
222
+
223
+ ```typescript
224
+ {
225
+ name: "squish_qmd_search",
226
+ description: "Search markdown files using QMD (BM25 + vector)",
227
+ inputSchema: {
228
+ type: "object",
229
+ properties: {
230
+ query: { type: "string", description: "Search query" },
231
+ collection: { type: "string", description: "QMD collection name" },
232
+ limit: { type: "number", description: "Max results (default: 10)" }
233
+ },
234
+ required: ["query"]
235
+ }
236
+ }
237
+ ```
238
+
239
+ ### 11. squish_embed
240
+ Generate embeddings.
241
+
242
+ ```typescript
243
+ {
244
+ name: "squish_embed",
245
+ description: "Generate embeddings for text using configured provider",
246
+ inputSchema: {
247
+ type: "object",
248
+ properties: {
249
+ text: { type: "string", description: "Text to embed" }
250
+ },
251
+ required: ["text"]
252
+ }
253
+ }
254
+ ```
255
+
256
+ ### 12. squish_health
257
+ Check system health. No input required.
258
+
259
+ ### 13. squish_stats
260
+ Get memory statistics.
261
+
262
+ ```typescript
263
+ {
264
+ name: "squish_stats",
265
+ description: "Get memory statistics for a project",
266
+ inputSchema: {
267
+ type: "object",
268
+ properties: {
269
+ project: { type: "string", description: "Project path (defaults to current)" }
270
+ }
271
+ }
272
+ }
273
+ ```
274
+
275
+ ### 14. squish_projects
276
+ List all projects. No input required.
277
+
278
+ ## Quick Reference
279
+
280
+ | Tool | Purpose | Required Input |
281
+ |------|---------|----------------|
282
+ | squish_remember | Store memory | content |
283
+ | squish_search | Find memories | query |
284
+ | squish_recall | Get by ID | memoryId |
285
+ | squish_forget | Delete memory | memoryId |
286
+ | squish_update | Edit memory | memoryId |
287
+ | squish_associate | Link memories | fromMemoryId, toMemoryId, type |
288
+ | squish_related | Find related | memoryId |
289
+ | squish_context | Project overview | project |
290
+ | squish_observe | Record observation | type, action, summary |
291
+ | squish_qmd_search | Search docs | query |
292
+ | squish_embed | Generate embedding | text |
293
+ | squish_health | Check status | - |
294
+ | squish_stats | View stats | project (optional) |
295
+ | squish_projects | List projects | - |
296
+
297
+ ## Configuration
298
+
299
+ ```json
300
+ {
301
+ "mcpServers": {
302
+ "squish": {
303
+ "command": "squish-mcp",
304
+ "env": {
305
+ "SQUISH_MODE": "local",
306
+ "SQUISH_DATA_DIR": "~/.squish"
307
+ }
308
+ }
309
+ }
310
+ }
311
+ ```
@@ -1,62 +1,100 @@
1
- ---
2
- name: squish-memory
3
- description: Persistent memory system with semantic search. Store and retrieve information across sessions. Works with Claude Code (MCP) and OpenClaw (CLI).
4
- version: 0.7.2
5
- author: michielhdoteth
6
- tags: [memory, persistence, search, semantic-search, ai-assistant, openclaw, mcp]
7
- emoji: brain
8
- ---
9
-
10
- # Squish Memory
11
-
12
- Persistent memory for AI assistants. Store facts, decisions, and context with semantic search.
13
-
14
- **Dual-mode:** MCP server for Claude Code, CLI commands for OpenClaw.
15
-
16
- ## For Claude Code (MCP Mode)
17
-
18
- When running in Claude Code, use the MCP tools directly:
19
- - `remember` - Store information
20
- - `search` - Find memories
21
- - `recall` - Retrieve by ID
22
- - `core_memory` - Manage always-visible context
23
-
24
- ## For OpenClaw (CLI Commands)
25
-
26
- Execute via bash:
27
-
28
- ### Remember
29
- ```bash
30
- squish remember "content to remember" --type fact
31
- ```
32
-
33
- ### Search
34
- ```bash
35
- squish search "query terms" --limit 10
36
- ```
37
-
38
- ### Recall
39
- ```bash
40
- squish recall <memory-id>
41
- ```
42
-
43
- ### Core Memory
44
- ```bash
45
- squish core_memory view
46
- squish core_memory edit --section persona --content "text"
47
- squish core_memory append --section user_info --text "more text"
48
- ```
49
-
50
- ## Memory Types
51
- - **fact**: Technical information, specifications
52
- - **decision**: Choices made with reasoning
53
- - **preference**: User likes/dislikes
54
- - **observation**: Patterns noticed
55
- - **context**: Project/domain information
56
-
57
- ## Installation
58
- ```bash
59
- npm install -g squish-memory
60
- ```
61
-
62
- GitHub: https://github.com/michielhdoteth/squish
1
+ ---
2
+ name: squish-memory
3
+ description: Squish - Persistent memory system for AI assistants. Store facts, decisions, and context with semantic search. Works with Claude Code, OpenCode, OpenClaw, and any MCP client.
4
+ version: 0.9.0
5
+ author: michielhdoteth
6
+ tags: [memory, persistence, search, semantic-search, ai-assistant, mcp, cli]
7
+ emoji: brain
8
+ ---
9
+
10
+ # Squish Memory v0.9.0
11
+
12
+ Persistent memory system for AI coding assistants. Store facts, decisions, context, and preferences with semantic search.
13
+
14
+ ## What is Squish?
15
+
16
+ Squish provides persistent memory for AI agents with:
17
+ - **Hybrid Search**: BM25 + vector embeddings with graph expansion
18
+ - **Memory Types**: observation, fact, decision, context, preference
19
+ - **Graph Associations**: Link related memories together
20
+ - **Core Memory**: Always-visible context sections
21
+ - **Importance Scoring**: Auto-score memories with temporal decay
22
+ - **Consolidation**: Summarize old, low-importance memories
23
+
24
+ ## Install
25
+
26
+ ```bash
27
+ npm install -g squish-memory
28
+ # or
29
+ bun add -g squish-memory
30
+ ```
31
+
32
+ ## Quick Setup
33
+
34
+ ### Claude Code
35
+ ```bash
36
+ npx squish-memory install claude
37
+ ```
38
+
39
+ ### OpenCode
40
+ ```bash
41
+ npx squish-memory install opencode
42
+ ```
43
+
44
+ ### OpenClaw
45
+ ```bash
46
+ npx squish-memory install openclaw
47
+ ```
48
+
49
+ ## Skills Available
50
+
51
+ This repo contains 4 skills for different use cases:
52
+
53
+ | Skill | Description | Install |
54
+ |-------|-------------|---------|
55
+ | `squish-memory` | Overview & quick start | `npx skills add michielhdoteth/squish --skill squish-memory` |
56
+ | `squish-mcp` | MCP tools (16 tools) | `npx skills add michielhdoteth/squish --skill squish-mcp` |
57
+ | `squish-cli` | CLI commands | `npx skills add michielhdoteth/squish --skill squish-cli` |
58
+ | `memory-guide` | Usage guide & best practices | `npx skills add michielhdoteth/squish --skill memory-guide` |
59
+
60
+ ## MCP Tools (16)
61
+
62
+ - squish_remember - Store memory
63
+ - squish_search - Hybrid search
64
+ - squish_recall - Get by ID
65
+ - squish_forget - Delete memory
66
+ - squish_update - Update memory
67
+ - squish_associate - Link memories
68
+ - squish_related - Find related
69
+ - squish_context - Project context
70
+ - squish_observe - Record observation
71
+ - squish_qmd_search - Search docs
72
+ - squish_embed - Generate embeddings
73
+ - squish_health - Check status
74
+ - squish_stats - View stats
75
+ - squish_projects - List projects
76
+
77
+ ## CLI Commands
78
+
79
+ - `squish remember` - Store memory
80
+ - `squish search` - Find memories
81
+ - `squish recall` - Get by ID
82
+ - `squish core_memory` - Manage context
83
+ - `squish set-importance` - Set score
84
+ - `squish pin/unpin` - Prevent pruning
85
+ - `squish consolidate` - Summarize old
86
+ - `squish health` - Check status
87
+ - `squish stats` - View stats
88
+
89
+ ## Configuration
90
+
91
+ | Env Variable | Description | Default |
92
+ |--------------|-------------|---------|
93
+ | SQUISH_MODE | local or team | local |
94
+ | SQUISH_DATA_DIR | Data directory | ~/.squish |
95
+ | SQUISH_EMBEDDINGS_PROVIDER | local or openai | local |
96
+
97
+ ## More Info
98
+
99
+ - GitHub: https://github.com/michielhdoteth/squish
100
+ - npm: https://www.npmjs.com/package/squish-memory
@@ -0,0 +1,12 @@
1
+ {
2
+ "mcpServers": {
3
+ "squish": {
4
+ "command": "npx",
5
+ "args": ["-y", "squish-memory", "mcp"],
6
+ "env": {
7
+ "SQUISH_MODE": "local",
8
+ "SQUISH_DATA_DIR": "~/.squish"
9
+ }
10
+ }
11
+ }
12
+ }