squish-memory 0.8.2 → 0.9.2
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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +2 -2
- package/.env.mcp +30 -0
- package/.mcp.json +2 -5
- package/CHANGELOG.md +111 -0
- package/QUICK-START.md +65 -0
- package/README.md +188 -530
- package/commands/managed-sync.ts +69 -0
- package/commands/mcp-server.ts +519 -0
- package/config/mcp-cli-fallback-policy.json +22 -0
- package/config/mcp-migration-map.json +22 -0
- package/config/mcp-mode-semantics.json +21 -0
- package/config/mcp-remote-auth.json +36 -0
- package/config/mcp-universal.schema.json +48 -0
- package/config/mcp.json +38 -0
- package/config/remote-memory-policy.json +32 -0
- package/dist/algorithms/merge/detection/hash-filters.js +2 -2
- package/dist/algorithms/merge/detection/hash-filters.js.map +1 -1
- package/dist/algorithms/merge/detection/two-stage-detector.d.ts +5 -2
- package/dist/algorithms/merge/detection/two-stage-detector.d.ts.map +1 -1
- package/dist/algorithms/merge/detection/two-stage-detector.js +139 -22
- package/dist/algorithms/merge/detection/two-stage-detector.js.map +1 -1
- package/dist/api/web/index.d.ts +3 -0
- package/dist/api/web/index.d.ts.map +1 -0
- package/dist/api/web/index.js +4 -0
- package/dist/api/web/index.js.map +1 -0
- package/dist/api/web/web-server.d.ts +3 -0
- package/dist/api/web/web-server.d.ts.map +1 -0
- package/dist/api/web/web-server.js +6 -0
- package/dist/api/web/web-server.js.map +1 -0
- package/dist/api/web/web.d.ts.map +1 -1
- package/dist/api/web/web.js +227 -78
- package/dist/api/web/web.js.map +1 -1
- package/dist/commands/managed-sync.d.ts +10 -0
- package/dist/commands/managed-sync.d.ts.map +1 -0
- package/dist/commands/managed-sync.js +64 -0
- package/dist/commands/managed-sync.js.map +1 -0
- package/dist/commands/mcp-server.d.ts +3 -0
- package/dist/commands/mcp-server.d.ts.map +1 -0
- package/dist/commands/mcp-server.js +389 -0
- package/dist/commands/mcp-server.js.map +1 -0
- package/dist/config.d.ts +24 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +32 -1
- package/dist/config.js.map +1 -1
- package/dist/core/associations.d.ts +1 -1
- package/dist/core/associations.d.ts.map +1 -1
- package/dist/core/consolidation.d.ts +31 -0
- package/dist/core/consolidation.d.ts.map +1 -1
- package/dist/core/consolidation.js +237 -29
- package/dist/core/consolidation.js.map +1 -1
- package/dist/core/embeddings/google-multimodal.d.ts +14 -0
- package/dist/core/embeddings/google-multimodal.d.ts.map +1 -0
- package/dist/core/embeddings/google-multimodal.js +142 -0
- package/dist/core/embeddings/google-multimodal.js.map +1 -0
- package/dist/core/embeddings.d.ts +3 -2
- package/dist/core/embeddings.d.ts.map +1 -1
- package/dist/core/embeddings.js +61 -39
- package/dist/core/embeddings.js.map +1 -1
- package/dist/core/mcp/client.d.ts +17 -0
- package/dist/core/mcp/client.d.ts.map +1 -0
- package/dist/core/mcp/client.js +101 -0
- package/dist/core/mcp/client.js.map +1 -0
- package/dist/core/mcp/index.d.ts +6 -0
- package/dist/core/mcp/index.d.ts.map +1 -0
- package/dist/core/mcp/index.js +6 -0
- package/dist/core/mcp/index.js.map +1 -0
- package/dist/core/mcp/server.d.ts +18 -0
- package/dist/core/mcp/server.d.ts.map +1 -0
- package/dist/core/mcp/server.js +131 -0
- package/dist/core/mcp/server.js.map +1 -0
- package/dist/core/mcp/standalone-server.d.ts +13 -0
- package/dist/core/mcp/standalone-server.d.ts.map +1 -0
- package/dist/core/mcp/standalone-server.js +46 -0
- package/dist/core/mcp/standalone-server.js.map +1 -0
- package/dist/core/mcp/tools.d.ts +9 -0
- package/dist/core/mcp/tools.d.ts.map +1 -0
- package/dist/core/mcp/tools.js +262 -0
- package/dist/core/mcp/tools.js.map +1 -0
- package/dist/core/mcp/types.d.ts +315 -0
- package/dist/core/mcp/types.d.ts.map +1 -0
- package/dist/core/mcp/types.js +48 -0
- package/dist/core/mcp/types.js.map +1 -0
- package/dist/core/memory/categorizer.d.ts +27 -0
- package/dist/core/memory/categorizer.d.ts.map +1 -0
- package/dist/core/memory/categorizer.js +304 -0
- package/dist/core/memory/categorizer.js.map +1 -0
- package/dist/core/memory/conflict-detector.d.ts +7 -0
- package/dist/core/memory/conflict-detector.d.ts.map +1 -0
- package/dist/core/memory/conflict-detector.js +43 -0
- package/dist/core/memory/conflict-detector.js.map +1 -0
- package/dist/core/memory/context-collector.d.ts +10 -0
- package/dist/core/memory/context-collector.d.ts.map +1 -0
- package/dist/core/memory/context-collector.js +55 -0
- package/dist/core/memory/context-collector.js.map +1 -0
- package/dist/core/memory/contradiction-resolver.d.ts +40 -0
- package/dist/core/memory/contradiction-resolver.d.ts.map +1 -0
- package/dist/core/memory/contradiction-resolver.js +368 -0
- package/dist/core/memory/contradiction-resolver.js.map +1 -0
- package/dist/core/memory/edit-workflow.d.ts +19 -0
- package/dist/core/memory/edit-workflow.d.ts.map +1 -0
- package/dist/core/memory/edit-workflow.js +120 -0
- package/dist/core/memory/edit-workflow.js.map +1 -0
- package/dist/core/memory/feedback-tracker.d.ts +12 -0
- package/dist/core/memory/feedback-tracker.d.ts.map +1 -0
- package/dist/core/memory/feedback-tracker.js +151 -0
- package/dist/core/memory/feedback-tracker.js.map +1 -0
- package/dist/core/memory/hybrid-retrieval.d.ts +11 -12
- package/dist/core/memory/hybrid-retrieval.d.ts.map +1 -1
- package/dist/core/memory/hybrid-retrieval.js +56 -28
- package/dist/core/memory/hybrid-retrieval.js.map +1 -1
- package/dist/core/memory/hybrid-scorer.d.ts +5 -16
- package/dist/core/memory/hybrid-scorer.d.ts.map +1 -1
- package/dist/core/memory/hybrid-scorer.js +161 -125
- package/dist/core/memory/hybrid-scorer.js.map +1 -1
- package/dist/core/memory/hybrid-search.js +64 -22
- package/dist/core/memory/hybrid-search.js.map +1 -1
- package/dist/core/memory/memories.d.ts +4 -0
- package/dist/core/memory/memories.d.ts.map +1 -1
- package/dist/core/memory/memories.js +138 -60
- package/dist/core/memory/memories.js.map +1 -1
- package/dist/core/memory/progressive-disclosure.d.ts +43 -0
- package/dist/core/memory/progressive-disclosure.d.ts.map +1 -0
- package/dist/core/memory/progressive-disclosure.js +280 -0
- package/dist/core/memory/progressive-disclosure.js.map +1 -0
- package/dist/core/memory/query-rewriter.d.ts +13 -0
- package/dist/core/memory/query-rewriter.d.ts.map +1 -0
- package/dist/core/memory/query-rewriter.js +118 -0
- package/dist/core/memory/query-rewriter.js.map +1 -0
- package/dist/core/memory/response-analyzer.d.ts +9 -0
- package/dist/core/memory/response-analyzer.d.ts.map +1 -0
- package/dist/core/memory/response-analyzer.js +61 -0
- package/dist/core/memory/response-analyzer.js.map +1 -0
- package/dist/core/memory/stats.d.ts +17 -0
- package/dist/core/memory/stats.d.ts.map +1 -0
- package/dist/core/memory/stats.js +87 -0
- package/dist/core/memory/stats.js.map +1 -0
- package/dist/core/memory/telemetry.d.ts +69 -0
- package/dist/core/memory/telemetry.d.ts.map +1 -0
- package/dist/core/memory/telemetry.js +313 -0
- package/dist/core/memory/telemetry.js.map +1 -0
- package/dist/core/memory/temporal-facts.d.ts +41 -0
- package/dist/core/memory/temporal-facts.d.ts.map +1 -0
- package/dist/core/memory/temporal-facts.js +262 -0
- package/dist/core/memory/temporal-facts.js.map +1 -0
- package/dist/core/memory/trigger-detector.d.ts +14 -0
- package/dist/core/memory/trigger-detector.d.ts.map +1 -0
- package/dist/core/memory/trigger-detector.js +42 -0
- package/dist/core/memory/trigger-detector.js.map +1 -0
- package/dist/core/memory/write-gate.d.ts +54 -0
- package/dist/core/memory/write-gate.d.ts.map +1 -0
- package/dist/core/memory/write-gate.js +210 -0
- package/dist/core/memory/write-gate.js.map +1 -0
- package/dist/core/observations.d.ts.map +1 -1
- package/dist/core/observations.js +1 -0
- package/dist/core/observations.js.map +1 -1
- package/dist/core/projects.d.ts +2 -0
- package/dist/core/projects.d.ts.map +1 -1
- package/dist/core/projects.js +33 -0
- package/dist/core/projects.js.map +1 -1
- package/dist/core/scheduler/cron-scheduler.d.ts +32 -0
- package/dist/core/scheduler/cron-scheduler.d.ts.map +1 -0
- package/dist/core/scheduler/cron-scheduler.js +238 -0
- package/dist/core/scheduler/cron-scheduler.js.map +1 -0
- package/dist/core/scheduler/heartbeat.d.ts +11 -0
- package/dist/core/scheduler/heartbeat.d.ts.map +1 -0
- package/dist/core/scheduler/heartbeat.js +73 -0
- package/dist/core/scheduler/heartbeat.js.map +1 -0
- package/dist/core/scheduler/index.d.ts +8 -0
- package/dist/core/scheduler/index.d.ts.map +1 -0
- package/dist/core/scheduler/index.js +8 -0
- package/dist/core/scheduler/index.js.map +1 -0
- package/dist/core/scheduler/job-runner.d.ts +11 -0
- package/dist/core/scheduler/job-runner.d.ts.map +1 -0
- package/dist/core/scheduler/job-runner.js +161 -0
- package/dist/core/scheduler/job-runner.js.map +1 -0
- package/dist/core/session/auto-load.d.ts +6 -0
- package/dist/core/session/auto-load.d.ts.map +1 -0
- package/dist/core/session/auto-load.js +119 -0
- package/dist/core/session/auto-load.js.map +1 -0
- package/dist/core/session/index.d.ts +7 -0
- package/dist/core/session/index.d.ts.map +1 -0
- package/dist/core/session/index.js +7 -0
- package/dist/core/session/index.js.map +1 -0
- package/dist/core/session/types.d.ts +26 -0
- package/dist/core/session/types.d.ts.map +1 -0
- package/dist/core/session/types.js +10 -0
- package/dist/core/session/types.js.map +1 -0
- package/dist/core/snapshots/comparison.d.ts.map +1 -1
- package/dist/core/snapshots/comparison.js +8 -2
- package/dist/core/snapshots/comparison.js.map +1 -1
- package/dist/core/utils/content-extraction.d.ts.map +1 -1
- package/dist/core/utils/content-extraction.js +11 -1
- package/dist/core/utils/content-extraction.js.map +1 -1
- package/dist/core/utils/memory-operations.d.ts.map +1 -1
- package/dist/core/utils/memory-operations.js +3 -1
- package/dist/core/utils/memory-operations.js.map +1 -1
- package/dist/core/utils/summarization-helpers.d.ts.map +1 -1
- package/dist/core/utils/summarization-helpers.js +4 -1
- package/dist/core/utils/summarization-helpers.js.map +1 -1
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +26 -3
- package/dist/core/utils.js.map +1 -1
- package/dist/core/worker.d.ts +20 -0
- package/dist/core/worker.d.ts.map +1 -1
- package/dist/core/worker.js +86 -0
- package/dist/core/worker.js.map +1 -1
- package/dist/db/adapter.d.ts +1 -5
- package/dist/db/adapter.d.ts.map +1 -1
- package/dist/db/adapter.js +137 -12
- package/dist/db/adapter.js.map +1 -1
- package/dist/db/bootstrap.d.ts.map +1 -1
- package/dist/db/bootstrap.js +178 -3
- package/dist/db/bootstrap.js.map +1 -1
- package/dist/db/index.d.ts +1 -5
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +7 -4
- package/dist/db/index.js.map +1 -1
- package/dist/drizzle/schema-sqlite.d.ts +1953 -612
- package/dist/drizzle/schema-sqlite.d.ts.map +1 -1
- package/dist/drizzle/schema-sqlite.js +134 -0
- package/dist/drizzle/schema-sqlite.js.map +1 -1
- package/dist/drizzle/schema.d.ts +684 -3
- package/dist/drizzle/schema.d.ts.map +1 -1
- package/dist/drizzle/schema.js +81 -1
- package/dist/drizzle/schema.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +152 -13
- package/dist/index.js.map +1 -1
- package/package.json +126 -103
- package/scripts/build-release.sh +33 -0
- package/scripts/db/check-db.mjs +88 -0
- package/scripts/db/fix-all-columns.mjs +52 -0
- package/scripts/db/fix-schema-all.mjs +55 -0
- package/scripts/db/fix-schema-full.mjs +46 -0
- package/scripts/db/fix-schema.mjs +38 -0
- package/scripts/db/init-db.mjs +13 -0
- package/scripts/db/recreate-db.mjs +14 -0
- package/scripts/generate-mcp.mjs +264 -0
- package/scripts/github-release.sh +61 -0
- package/scripts/init-dirs.mjs +13 -0
- package/scripts/init-dirs.ts +15 -0
- package/scripts/install-mcp.mjs +116 -0
- package/scripts/install-web.sh +120 -0
- package/scripts/install.mjs +340 -0
- package/scripts/openclaw-bootstrap.mjs +127 -0
- package/scripts/package-release.sh +71 -0
- package/scripts/remote-preflight.mjs +62 -0
- package/scripts/squish-fallback.mjs +132 -0
- package/scripts/test/test-all-systems.mjs +139 -0
- package/scripts/test/test-memory-system.mjs +139 -0
- package/scripts/test/test-v0.5.0.mjs +210 -0
- package/scripts/verify-mcp.mjs +214 -0
- package/skills/memory-guide/SKILL.md +181 -123
- package/skills/squish-cli/SKILL.md +200 -0
- package/skills/squish-mcp/SKILL.md +311 -0
- package/skills/squish-memory/SKILL.md +100 -62
- package/skills/squish-memory/claude-desktop.json +12 -0
- package/skills/squish-memory/install.mjs +335 -0
- package/skills/squish-memory/install.sh +94 -62
- package/skills/squish-memory/openclaw.json +13 -0
- package/skills/squish-memory/opencode.json +14 -0
- package/skills/squish-memory/skill.json +32 -0
- package/dist/adapters/claude-code/capture.d.ts +0 -11
- package/dist/adapters/claude-code/capture.d.ts.map +0 -1
- package/dist/adapters/claude-code/capture.js +0 -100
- package/dist/adapters/claude-code/capture.js.map +0 -1
- package/dist/adapters/claude-code/index.d.ts +0 -5
- package/dist/adapters/claude-code/index.d.ts.map +0 -1
- package/dist/adapters/claude-code/index.js +0 -6
- package/dist/adapters/claude-code/index.js.map +0 -1
- package/dist/adapters/claude-code/injection.d.ts +0 -34
- package/dist/adapters/claude-code/injection.d.ts.map +0 -1
- package/dist/adapters/claude-code/injection.js +0 -127
- package/dist/adapters/claude-code/injection.js.map +0 -1
- package/dist/adapters/claude-code/plugin-wrapper.d.ts +0 -21
- package/dist/adapters/claude-code/plugin-wrapper.d.ts.map +0 -1
- package/dist/adapters/claude-code/plugin-wrapper.js +0 -239
- package/dist/adapters/claude-code/plugin-wrapper.js.map +0 -1
- package/dist/adapters/claude-code/types.d.ts +0 -46
- package/dist/adapters/claude-code/types.d.ts.map +0 -1
- package/dist/adapters/claude-code/types.js +0 -6
- 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
|
|
4
|
-
version: 0.
|
|
5
|
-
author: michielhdoteth
|
|
6
|
-
tags: [memory, persistence, search, semantic-search, ai-assistant,
|
|
7
|
-
emoji: brain
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Squish Memory
|
|
11
|
-
|
|
12
|
-
Persistent memory for AI assistants. Store facts, decisions, and
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
##
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
squish
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|