squish-memory 0.7.2 → 0.7.3
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/README.md +55 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -3
- package/dist/config.js.map +1 -1
- package/package.json +1 -1
- package/skills/squish-memory/SKILL.md +26 -56
package/README.md
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
# Squish - Two-Tier Memory System for Claude Code
|
|
2
2
|
|
|
3
|
-
A persistent, context-aware memory plugin for Claude Code (v0.7.
|
|
3
|
+
A persistent, context-aware memory plugin for Claude Code (v0.7.2) that provides intelligent memory management with a two-tier architecture: always-in-context core memory (2KB) plus context paging for selective memory loading.
|
|
4
4
|
|
|
5
|
-
**
|
|
6
|
-
- **
|
|
7
|
-
- **
|
|
8
|
-
|
|
5
|
+
**Dual-Mode Operation:**
|
|
6
|
+
- **MCP Server** for Claude Code (default, no args)
|
|
7
|
+
- **CLI Commands** for OpenClaw/bash execution
|
|
8
|
+
|
|
9
|
+
**What's New in v0.7.2:**
|
|
10
|
+
- **CLI Mode**: Execute `squish remember`, `search`, `recall` directly from terminal
|
|
11
|
+
- **Local Embeddings**: Zero-dependency TF-IDF embeddings (works offline, no Ollama needed)
|
|
12
|
+
- **OpenClaw Ready**: Install via npm, use via bash commands
|
|
9
13
|
|
|
10
14
|
## Features
|
|
11
15
|
|
|
@@ -175,6 +179,52 @@ SQUISH_DEFAULT_VISIBILITY=private # private|project|team|global
|
|
|
175
179
|
|
|
176
180
|
## Quick Start
|
|
177
181
|
|
|
182
|
+
### CLI Usage (OpenClaw/Bash)
|
|
183
|
+
|
|
184
|
+
Install and use directly from terminal:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
npm install -g squish-memory
|
|
188
|
+
|
|
189
|
+
# Store memories
|
|
190
|
+
squish remember "User prefers TypeScript for all projects" --type preference
|
|
191
|
+
squish remember "API uses JWT authentication" --type fact
|
|
192
|
+
|
|
193
|
+
# Search memories
|
|
194
|
+
squish search "authentication" --limit 5
|
|
195
|
+
squish search "TypeScript" --type fact
|
|
196
|
+
|
|
197
|
+
# View core memory
|
|
198
|
+
squish core_memory view
|
|
199
|
+
|
|
200
|
+
# Retrieve by ID
|
|
201
|
+
squish recall <memory-id>
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Memory Types:** `fact`, `decision`, `preference`, `observation`, `context`
|
|
205
|
+
|
|
206
|
+
**Embedding Options:**
|
|
207
|
+
|
|
208
|
+
By default, Squish uses local TF-IDF embeddings (zero dependencies, works offline).
|
|
209
|
+
|
|
210
|
+
For better semantic search, configure an embedding provider:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
# OpenAI embeddings (best quality)
|
|
214
|
+
export SQUISH_OPENAI_API_KEY=sk-...
|
|
215
|
+
export SQUISH_EMBEDDINGS_PROVIDER=openai
|
|
216
|
+
|
|
217
|
+
# Ollama local embeddings (good quality, runs locally)
|
|
218
|
+
export SQUISH_EMBEDDINGS_PROVIDER=ollama
|
|
219
|
+
export SQUISH_OLLAMA_URL=http://localhost:11434
|
|
220
|
+
|
|
221
|
+
# Or set in your shell profile (~/.bashrc or ~/.zshrc)
|
|
222
|
+
echo "export SQUISH_OPENAI_API_KEY=sk-..." >> ~/.bashrc
|
|
223
|
+
echo "export SQUISH_EMBEDDINGS_PROVIDER=openai" >> ~/.bashrc
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### MCP Server (Claude Code)
|
|
227
|
+
|
|
178
228
|
### 1. Initialize Core Memory
|
|
179
229
|
|
|
180
230
|
Store basic information that will always be available:
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,IAAI,MAAM,CAMnC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAiDD,eAAO,MAAM,MAAM;;;;wBAMD,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ;;;;;;;;;;;;4BAkBO,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ;;;;;;qBAYrF,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY;;CAEzF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -14,15 +14,17 @@ const openAiApiKey = process.env.SQUISH_OPENAI_API_KEY || process.env.OPENAI_API
|
|
|
14
14
|
// - Priority: QMD > Ollama (nomic-embed-text-v1.5) > OpenAI > Local TF-IDF
|
|
15
15
|
// - QMD provides hybrid BM25+vector+rerank search for best quality
|
|
16
16
|
// - Nomic provides excellent quality for memory systems with local inference
|
|
17
|
+
// - Local TF-IDF requires zero external dependencies (default for OpenClaw/VPS)
|
|
17
18
|
const embeddingsProvider = (() => {
|
|
18
19
|
const explicit = process.env.SQUISH_EMBEDDINGS_PROVIDER?.toLowerCase();
|
|
19
20
|
// If explicitly set, respect the user's choice
|
|
20
21
|
if (explicit && ['openai', 'ollama', 'local', 'none', 'qmd', 'hybrid'].includes(explicit)) {
|
|
21
22
|
return explicit;
|
|
22
23
|
}
|
|
23
|
-
// Default:
|
|
24
|
-
//
|
|
25
|
-
|
|
24
|
+
// Default: Local TF-IDF for zero-dependency operation
|
|
25
|
+
// Works offline, no API calls, fast on any hardware
|
|
26
|
+
// Override with SQUISH_EMBEDDINGS_PROVIDER=ollama for better quality
|
|
27
|
+
return 'local';
|
|
26
28
|
})();
|
|
27
29
|
// QMD Integration (v0.7.0)
|
|
28
30
|
const qmdEnabled = process.env.SQUISH_QMD_ENABLED === 'true';
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE3C,MAAM,UAAU,UAAU;IACxB,yDAAyD;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACxE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;AACtE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;AAE3F,uBAAuB;AACvB,2EAA2E;AAC3E,mEAAmE;AACnE,6EAA6E;AAC7E,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,WAAW,EAAE,CAAC;IAEvE,+CAA+C;IAC/C,IAAI,QAAQ,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,92 +1,62 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: squish-memory
|
|
3
|
-
description: Persistent memory system with semantic search. Store and retrieve information across sessions.
|
|
4
|
-
version: 0.7.
|
|
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
5
|
author: michielhdoteth
|
|
6
|
-
tags: [memory, persistence, search, semantic-search, ai-assistant, openclaw]
|
|
6
|
+
tags: [memory, persistence, search, semantic-search, ai-assistant, openclaw, mcp]
|
|
7
7
|
emoji: brain
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Squish Memory
|
|
11
11
|
|
|
12
|
-
Persistent memory for AI assistants. Store facts, decisions, and context
|
|
12
|
+
Persistent memory for AI assistants. Store facts, decisions, and context with semantic search.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
**Dual-mode:** MCP server for Claude Code, CLI commands for OpenClaw.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
- Remember user preferences, decisions, or important facts
|
|
18
|
-
- Search across previously stored information
|
|
19
|
-
- Maintain context across conversations
|
|
20
|
-
- Store technical decisions or observations
|
|
16
|
+
## For Claude Code (MCP Mode)
|
|
21
17
|
|
|
22
|
-
|
|
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
23
|
|
|
24
|
-
|
|
25
|
-
- **Recall**: Retrieve specific memories by ID
|
|
26
|
-
- **Search**: Find relevant information semantically
|
|
27
|
-
- **Core Memory**: Keep important context always visible
|
|
24
|
+
## For OpenClaw (CLI Commands)
|
|
28
25
|
|
|
29
|
-
|
|
26
|
+
Execute via bash:
|
|
30
27
|
|
|
28
|
+
### Remember
|
|
31
29
|
```bash
|
|
32
|
-
|
|
30
|
+
squish remember "content to remember" --type fact
|
|
33
31
|
```
|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### Store Information
|
|
38
|
-
|
|
33
|
+
### Search
|
|
39
34
|
```bash
|
|
40
|
-
squish
|
|
41
|
-
squish remember "API returns paginated results" --type fact
|
|
42
|
-
squish remember "Using JWT for auth" --type decision
|
|
35
|
+
squish search "query terms" --limit 10
|
|
43
36
|
```
|
|
44
37
|
|
|
45
|
-
###
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
squish search "authentication" --limit 5
|
|
49
|
-
squish search "database schema" --type fact
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Core Memory (Always Visible)
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
# View all core memory
|
|
56
|
-
squish core_memory view
|
|
57
|
-
|
|
58
|
-
# Edit a section
|
|
59
|
-
squish core_memory edit --section persona --content "I am a helpful coding assistant"
|
|
60
|
-
|
|
61
|
-
# Append to a section
|
|
62
|
-
squish core_memory append --section user_info --text "Prefers TypeScript over JavaScript"
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Retrieve by ID
|
|
66
|
-
|
|
38
|
+
### Recall
|
|
67
39
|
```bash
|
|
68
40
|
squish recall <memory-id>
|
|
69
41
|
```
|
|
70
42
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
Enable WebSocket gateway for OpenClaw integration:
|
|
74
|
-
|
|
43
|
+
### Core Memory
|
|
75
44
|
```bash
|
|
76
|
-
|
|
77
|
-
squish
|
|
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"
|
|
78
48
|
```
|
|
79
49
|
|
|
80
|
-
Gateway runs on port 18789. Messages: search, remember, recall, status.
|
|
81
|
-
|
|
82
50
|
## Memory Types
|
|
83
|
-
|
|
84
51
|
- **fact**: Technical information, specifications
|
|
85
52
|
- **decision**: Choices made with reasoning
|
|
86
53
|
- **preference**: User likes/dislikes
|
|
87
54
|
- **observation**: Patterns noticed
|
|
88
55
|
- **context**: Project/domain information
|
|
89
56
|
|
|
90
|
-
##
|
|
57
|
+
## Installation
|
|
58
|
+
```bash
|
|
59
|
+
npm install -g squish-memory
|
|
60
|
+
```
|
|
91
61
|
|
|
92
62
|
GitHub: https://github.com/michielhdoteth/squish
|