recallmem 0.1.4 → 0.1.5
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 +6 -2
- package/bin/commands/start.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
<strong>Your Persistent Private AI that actually remembers you.</strong>
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
|
+
<p align="center">
|
|
13
|
+
<code>npx recallmem</code>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
12
16
|
<p align="center">
|
|
13
17
|
Chatbots like ChatGPT, Claude, and Gemini tend to forget you the moment you end your session. RecallMEM doesn't. It builds a profile of who you are, extracts facts after every conversation, and runs vector search across your entire history to find relevant context. By the time you've used it for a week, it knows you better than any AI ever will.
|
|
14
18
|
</p>
|
|
@@ -31,7 +35,7 @@
|
|
|
31
35
|
|
|
32
36
|
A personal AI chatbot with REAL memory. Plug in any LLM you want and RecallMEM gives it persistent memory of who you are, what you've talked about, and what's currently true vs historical. All your memory is stored in a local Postgres database on your machine, with pgvector powering the semantic search across your past conversations.
|
|
33
37
|
|
|
34
|
-
The best part is that the LLM
|
|
38
|
+
The best part is that **the LLM proposes, TypeScript decides.** Retrieval is deterministic SQL + cosine similarity, built by TypeScript before the model ever sees it. On the write side, an LLM proposes candidate facts and contradictions, but a 6-step TypeScript validator decides what actually gets stored. Facts have timestamps and get auto-retired when the truth changes ("works at Acme" → "left Acme"). [Deep dive on the architecture →](./docs/ARCHITECTURE.md)
|
|
35
39
|
|
|
36
40
|
You can run it three ways:
|
|
37
41
|
|
|
@@ -64,7 +68,7 @@ You need Node.js 20+ and [Homebrew](https://brew.sh). The installer uses Homebre
|
|
|
64
68
|
npx recallmem
|
|
65
69
|
```
|
|
66
70
|
|
|
67
|
-
The installer sets up Postgres, pgvector, and Ollama (for the embedding model that powers memory). When the browser opens to `localhost:
|
|
71
|
+
The installer sets up Postgres, pgvector, and Ollama (for the embedding model that powers memory). When the browser opens to `localhost:1337`:
|
|
68
72
|
|
|
69
73
|
1. Click **Settings** in the top right
|
|
70
74
|
2. Click **Providers**
|
package/bin/commands/start.js
CHANGED
|
@@ -33,15 +33,15 @@ async function startCommand(opts = {}) {
|
|
|
33
33
|
const command = hasBuild ? "start" : "dev";
|
|
34
34
|
|
|
35
35
|
info(hasBuild ? "Production build detected, running next start" : "No build found, running next dev");
|
|
36
|
-
info("Opening http://localhost:
|
|
36
|
+
info("Opening http://localhost:1337 in your browser...");
|
|
37
37
|
console.log("");
|
|
38
38
|
console.log(color.dim(" (Press Ctrl+C to stop)"));
|
|
39
39
|
console.log("");
|
|
40
40
|
|
|
41
41
|
// Open the browser shortly after starting (give Next a moment to be ready)
|
|
42
|
-
setTimeout(() => openBrowser("http://localhost:
|
|
42
|
+
setTimeout(() => openBrowser("http://localhost:1337"), 2000);
|
|
43
43
|
|
|
44
|
-
const child = spawn("npx", ["next", command], {
|
|
44
|
+
const child = spawn("npx", ["next", command, "-p", "1337"], {
|
|
45
45
|
cwd: installPath,
|
|
46
46
|
stdio: "inherit",
|
|
47
47
|
env: process.env,
|