persnally 2.0.0 → 2.0.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.
- package/README.md +23 -8
- package/build/src/mcp/index.js +4 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# Persnally
|
|
2
2
|
|
|
3
|
-
[](https://github.com/sidpan2011/persnally/actions/workflows/ci.yml)
|
|
4
|
-
|
|
5
3
|
**So every AI finally knows you.**
|
|
6
4
|
|
|
7
5
|
Persnally is a local-first personal context engine. It learns who you are from your AI activity — your Claude and ChatGPT history, your code — and serves that context to every AI tool you use, so they stop treating you like a stranger.
|
|
@@ -20,15 +18,24 @@ The fix isn't a better model. It's a layer underneath all of them that holds *yo
|
|
|
20
18
|
|
|
21
19
|
```bash
|
|
22
20
|
npm install -g persnally
|
|
21
|
+
persnally setup
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
One command builds your mirror: it finds Claude/ChatGPT exports in `~/Downloads`, reads your local Claude Code sessions and git repos, synthesizes an evidence-linked profile, connects your AI clients (Claude Desktop, Claude Code, Cursor), and opens the dashboard.
|
|
25
|
+
|
|
26
|
+
For the richest result, export your data first ([claude.ai](https://claude.com) / [chatgpt.com](https://chatgpt.com) → Settings → Data export) and drop it in `~/Downloads` — then read a description of yourself that's sharper than your own bio, every sentence traceable to the conversations it came from.
|
|
27
|
+
|
|
28
|
+
Prefer each step explicit?
|
|
29
|
+
|
|
30
|
+
```bash
|
|
23
31
|
persnallyd start # the local daemon
|
|
24
32
|
persnallyd import claude ~/Downloads/<your-claude-export>
|
|
33
|
+
persnallyd import claude-code # your local Claude Code sessions
|
|
25
34
|
persnallyd import git ~/Projects # offline, no API needed
|
|
26
35
|
persnallyd profile # synthesize who you are
|
|
27
36
|
open http://127.0.0.1:4983 # see it, with evidence for every claim
|
|
28
37
|
```
|
|
29
38
|
|
|
30
|
-
Export your data ([claude.ai](https://claude.com) / [chatgpt.com](https://chatgpt.com) → Settings → Data export), point Persnally at it, and read a description of yourself that's sharper than your own bio — every sentence traceable to the conversations it came from.
|
|
31
|
-
|
|
32
39
|
## How it works
|
|
33
40
|
|
|
34
41
|
```
|
|
@@ -50,7 +57,11 @@ Export your data ([claude.ai](https://claude.com) / [chatgpt.com](https://chatgp
|
|
|
50
57
|
|
|
51
58
|
## Make your AI tools use it
|
|
52
59
|
|
|
53
|
-
|
|
60
|
+
```bash
|
|
61
|
+
persnallyd connect --all # writes the MCP config for Claude Desktop, Claude Code, Cursor
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Or add the MCP server to any client manually. It exposes four tools backed by the daemon:
|
|
54
65
|
|
|
55
66
|
| Tool | What it does |
|
|
56
67
|
|------|-------------|
|
|
@@ -74,10 +85,14 @@ Add the MCP server to any client (Claude Desktop, Cursor, Claude Code). It expos
|
|
|
74
85
|
## CLI
|
|
75
86
|
|
|
76
87
|
```
|
|
77
|
-
|
|
88
|
+
persnally setup # one command: import, synthesize, connect
|
|
89
|
+
persnallyd start | stop | status # daemon lifecycle
|
|
78
90
|
persnallyd autostart [--remove] # run at login (macOS)
|
|
79
|
-
persnallyd
|
|
91
|
+
persnallyd connect [client|--all] # add to claude-code | claude-desktop | cursor
|
|
92
|
+
persnallyd import claude|claude-code|chatgpt|git <path>
|
|
93
|
+
persnallyd scope <client> <categories> # limit what a client can read
|
|
80
94
|
persnallyd profile # synthesize the profile
|
|
95
|
+
persnallyd consolidate # reflect now: refresh decay, add behavior patterns
|
|
81
96
|
persnallyd show [topics|events|profile]
|
|
82
97
|
persnallyd forget <topic> | --all | --batch <id>
|
|
83
98
|
persnallyd config set-key <sk-ant-…> # key for the background daemon
|
|
@@ -85,7 +100,7 @@ persnallyd config set-key <sk-ant-…> # key for the background daemon
|
|
|
85
100
|
|
|
86
101
|
## Status
|
|
87
102
|
|
|
88
|
-
Early and moving fast — see [ROADMAP.md](./ROADMAP.md). Today: import from Claude
|
|
103
|
+
Early and moving fast — see [ROADMAP.md](./ROADMAP.md). Today: import from Claude, ChatGPT, Claude Code, and git; a decay-weighted interest graph; an evidence-linked profile; a local dashboard; per-client permission scoping; nightly consolidation; and the MCP layer that serves it all. Next: cross-tool context everywhere, then a behavior model that can answer *what would I do here?*
|
|
89
104
|
|
|
90
105
|
## License
|
|
91
106
|
|
package/build/src/mcp/index.js
CHANGED
|
@@ -7,13 +7,16 @@
|
|
|
7
7
|
* NLP engine: it fills persnally_track's structured schema from conversation
|
|
8
8
|
* context, so signal extraction costs zero extra inference.
|
|
9
9
|
*/
|
|
10
|
+
import { readFileSync } from "node:fs";
|
|
10
11
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
11
12
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
12
13
|
import { z } from "zod";
|
|
13
14
|
import { DAEMON_HINT, DaemonUnreachable, daemonDelete, daemonGet, daemonPost } from "./daemon-client.js";
|
|
14
15
|
import { migrateV1Graph } from "./migrate-v1.js";
|
|
15
16
|
import { getClient, logEvent, setClient } from "./telemetry.js";
|
|
16
|
-
|
|
17
|
+
// Handshake version tracks package.json — same rule as the daemon's VERSION.
|
|
18
|
+
const pkg = JSON.parse(readFileSync(new URL("../../../package.json", import.meta.url), "utf-8"));
|
|
19
|
+
const server = new McpServer({ name: "persnally", version: pkg.version });
|
|
17
20
|
function text(s) {
|
|
18
21
|
return { content: [{ type: "text", text: s }] };
|
|
19
22
|
}
|