@pcircle/memesh 4.0.2 โ†’ 4.1.0

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 (63) hide show
  1. package/README.de.md +115 -86
  2. package/README.es.md +107 -78
  3. package/README.fr.md +111 -82
  4. package/README.ja.md +117 -88
  5. package/README.ko.md +111 -82
  6. package/README.md +54 -3
  7. package/README.pt.md +103 -74
  8. package/README.th.md +117 -88
  9. package/README.vi.md +113 -84
  10. package/README.zh-CN.md +114 -85
  11. package/README.zh-TW.md +115 -86
  12. package/dashboard/dist/index.html +4 -4
  13. package/dist/core/config.d.ts.map +1 -1
  14. package/dist/core/config.js +6 -10
  15. package/dist/core/config.js.map +1 -1
  16. package/dist/core/doctor.d.ts +40 -0
  17. package/dist/core/doctor.d.ts.map +1 -0
  18. package/dist/core/doctor.js +217 -0
  19. package/dist/core/doctor.js.map +1 -0
  20. package/dist/core/embedder.js.map +1 -1
  21. package/dist/core/install-channel.d.ts +30 -0
  22. package/dist/core/install-channel.d.ts.map +1 -0
  23. package/dist/core/install-channel.js +83 -0
  24. package/dist/core/install-channel.js.map +1 -0
  25. package/dist/core/schema-export.d.ts.map +1 -1
  26. package/dist/core/schema-export.js +34 -0
  27. package/dist/core/schema-export.js.map +1 -1
  28. package/dist/core/skill-usage-log.d.ts +11 -0
  29. package/dist/core/skill-usage-log.d.ts.map +1 -0
  30. package/dist/core/skill-usage-log.js +121 -0
  31. package/dist/core/skill-usage-log.js.map +1 -0
  32. package/dist/core/updater.d.ts +11 -0
  33. package/dist/core/updater.d.ts.map +1 -0
  34. package/dist/core/updater.js +28 -0
  35. package/dist/core/updater.js.map +1 -0
  36. package/dist/core/verifier.d.ts +37 -0
  37. package/dist/core/verifier.d.ts.map +1 -0
  38. package/dist/core/verifier.js +142 -0
  39. package/dist/core/verifier.js.map +1 -0
  40. package/dist/core/version-check.d.ts +28 -4
  41. package/dist/core/version-check.d.ts.map +1 -1
  42. package/dist/core/version-check.js +167 -21
  43. package/dist/core/version-check.js.map +1 -1
  44. package/dist/transports/cli/cli.js +154 -16
  45. package/dist/transports/cli/cli.js.map +1 -1
  46. package/dist/transports/http/server.d.ts.map +1 -1
  47. package/dist/transports/http/server.js +48 -1
  48. package/dist/transports/http/server.js.map +1 -1
  49. package/dist/transports/mcp/handlers.d.ts +93 -0
  50. package/dist/transports/mcp/handlers.d.ts.map +1 -1
  51. package/dist/transports/mcp/handlers.js +51 -1
  52. package/dist/transports/mcp/handlers.js.map +1 -1
  53. package/dist/transports/schemas.d.ts +28 -0
  54. package/dist/transports/schemas.d.ts.map +1 -1
  55. package/dist/transports/schemas.js +25 -0
  56. package/dist/transports/schemas.js.map +1 -1
  57. package/hooks/hooks.json +10 -0
  58. package/package.json +5 -3
  59. package/plugin.json +2 -2
  60. package/scripts/hooks/pre-bash-orchestration-nudge.js +150 -0
  61. package/scripts/hooks/pre-edit-recall.js +0 -0
  62. package/scripts/hooks/session-start.js +55 -2
  63. package/skills/agentic-orchestration/SKILL.md +399 -0
package/README.ko.md CHANGED
@@ -1,10 +1,13 @@
1
+ <!-- translated from README.md @ ab9d25f8d9cb7c78c4cc271717709e2efb4bac76 -->
2
+ <!-- DO NOT edit this file by hand. The maintainer regenerates it from README.md via a private toolkit script (see internal docs). Manual edits will be overwritten on next sync. -->
3
+
1
4
  ๐ŸŒ [English](README.md) | [็น้ซ”ไธญๆ–‡](README.zh-TW.md) | [็ฎ€ไฝ“ไธญๆ–‡](README.zh-CN.md) | [ๆ—ฅๆœฌ่ชž](README.ja.md) | [ํ•œ๊ตญ์–ด](README.ko.md) | [Portuguรชs](README.pt.md) | [Franรงais](README.fr.md) | [Deutsch](README.de.md) | [Tiแบฟng Viแป‡t](README.vi.md) | [Espaรฑol](README.es.md) | [เธ เธฒเธฉเธฒเน„เธ—เธข](README.th.md)
2
5
 
3
6
  <p align="center">
4
7
  <h1 align="center">MeMesh LLM Memory</h1>
5
8
  <p align="center">
6
- <strong>๊ฐ€์žฅ ๊ฐ€๋ฒผ์šด ๋ฒ”์šฉ AI ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์–ด.</strong><br />
7
- SQLite ํŒŒ์ผ ํ•˜๋‚˜. ์–ด๋–ค LLM์ด๋“ . ํด๋ผ์šฐ๋“œ ์—†์ด.
9
+ <strong>Claude Code์™€ MCP ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ.</strong><br />
10
+ SQLite ํŒŒ์ผ ํ•˜๋‚˜. Docker ์—†์Œ. ํด๋ผ์šฐ๋“œ ํ•„์ˆ˜ ์•„๋‹˜.
8
11
  </p>
9
12
  <p align="center">
10
13
  <a href="https://www.npmjs.com/package/@pcircle/memesh"><img src="https://img.shields.io/npm/v/@pcircle/memesh?style=flat-square&color=3b82f6&label=npm" alt="npm" /></a>
@@ -16,15 +19,17 @@
16
19
 
17
20
  ---
18
21
 
19
- ## ๋ฌธ์ œ์˜ ๋ณธ์งˆ
22
+ ## ๋ฌธ์ œ์ 
23
+
24
+ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋Š” ์„ธ์…˜์ด ๋๋‚˜๋ฉด ๋ชจ๋“  ๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •, ๋ฒ„๊ทธ ์ˆ˜์ •, ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ, ํž˜๋“ค๊ฒŒ ์–ป์€ ๊ตํ›ˆ โ€” ๋งค๋ฒˆ ๋‹ค์‹œ ์„ค๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Claude Code๋Š” ๋งค๋ฒˆ ์ƒˆ๋กœ ์‹œ์ž‘ํ•˜๊ณ , ์ด๋ฏธ ์•Œ์•„์•ผ ํ•  ์ œ์•ฝ ์กฐ๊ฑด์„ ๋‹ค์‹œ ๋ฐœ๊ฒฌํ•˜๋ฉฐ, ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ปจํ…์ŠคํŠธ๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.
20
25
 
21
- AI๋Š” ์„ธ์…˜์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค ๋ชจ๋“  ๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒฐ์ •, ๋ชจ๋“  ๋ฒ„๊ทธ ์ˆ˜์ •, ๋ชจ๋“  ๊ตํ›ˆโ€”โ€”์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ฐ™์€ ๋งฅ๋ฝ์„ ๋ฐ˜๋ณตํ•ด์„œ ์„ค๋ช…ํ•˜๊ณ , Claude๋Š” ๊ฐ™์€ ํŒจํ„ด์„ ๋‹ค์‹œ ๋ฐœ๊ฒฌํ•˜๋ฉฐ, ํŒ€์˜ AI ์ง€์‹์€ ๋งค๋ฒˆ ์ œ๋กœ๋กœ ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
26
+ **MeMesh๋Š” ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์—๊ฒŒ ์˜๊ตฌ์ ์ด๊ณ  ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ง„ํ™”ํ•˜๋Š” ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.**
22
27
 
23
- **MeMesh๋Š” ๋ชจ๋“  AI์—๊ฒŒ ์ง€์†์ ์ด๊ณ , ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ง„ํ™”ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.**
28
+ ์ด ํŒจํ‚ค์ง€๋Š” MeMesh ์ œํ’ˆ๊ตฐ์˜ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค. ์˜๋„์ ์œผ๋กœ ์ž‘๊ณ  ์˜คํ”ˆ์†Œ์Šค์ž…๋‹ˆ๋‹ค: npm์œผ๋กœ ์„ค์น˜ํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ๋Š” `~/.memesh/knowledge-graph.db`์— ๋ณด๊ด€ํ•˜๋ฉฐ, Claude Code ๋˜๋Š” MCP ํ˜ธํ™˜ ํด๋ผ์ด์–ธํŠธ์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŒ… ์›Œํฌ์ŠคํŽ˜์ด์Šค์™€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ OS ์ œํ’ˆ์€ ์ด ํŒจํ‚ค์ง€์˜ README์™€ ๋กœ๋“œ๋งต๊ณผ ๋ณ„๊ฐœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
24
29
 
25
30
  ---
26
31
 
27
- ## 60์ดˆ ๋งŒ์— ์‹œ์ž‘ํ•˜๊ธฐ
32
+ ## 60์ดˆ ์•ˆ์— ์‹œ์ž‘ํ•˜๊ธฐ
28
33
 
29
34
  ### 1๋‹จ๊ณ„: ์„ค์น˜
30
35
 
@@ -32,33 +37,39 @@ AI๋Š” ์„ธ์…˜์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค ๋ชจ๋“  ๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒฐ์ •
32
37
  npm install -g @pcircle/memesh
33
38
  ```
34
39
 
35
- ### 2๋‹จ๊ณ„: AI๊ฐ€ ๊ธฐ์–ตํ•˜๊ธฐ
40
+ ### 2๋‹จ๊ณ„: ์˜์‚ฌ๊ฒฐ์ • ์ €์žฅ
36
41
 
37
42
  ```bash
38
43
  memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
39
44
  ```
40
45
 
41
- ### 3๋‹จ๊ณ„: AI๊ฐ€ ๋– ์˜ฌ๋ฆฌ๊ธฐ
46
+ ### 3๋‹จ๊ณ„: ๋‚˜์ค‘์— ํšŒ์ƒ
42
47
 
43
48
  ```bash
44
49
  memesh recall "login security"
45
- # โ†’ ๋‹ค๋ฅธ ๋‹จ์–ด๋กœ ๊ฒ€์ƒ‰ํ•ด๋„ "OAuth 2.0 with PKCE"๋ฅผ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค
50
+ # โ†’ ๋‹ค๋ฅธ ๋‹จ์–ด๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์–ด๋„ "OAuth 2.0 with PKCE"๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค
46
51
  ```
47
52
 
48
- **๋์ž…๋‹ˆ๋‹ค.** MeMesh๊ฐ€ ์„ธ์…˜์„ ๋„˜๋‚˜๋“ค๋ฉฐ ๊ธฐ์–ตํ•˜๊ณ  ๋– ์˜ฌ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
53
+ **์ด๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค.** MeMesh๊ฐ€ ์ด์ œ ์„ธ์…˜ ๊ฐ„์— ๊ธฐ์–ตํ•˜๊ณ  ํšŒ์ƒํ•ฉ๋‹ˆ๋‹ค.
49
54
 
50
- ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์—ด์–ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํƒ์ƒ‰ํ•ด๋ณด์„ธ์š”:
55
+ ์„ค์น˜์™€ ๋กœ์ปฌ ์—ฐ๊ฒฐ์„ ํ™•์ธํ•˜๋ ค๋ฉด:
56
+
57
+ ```bash
58
+ memesh doctor
59
+ ```
60
+
61
+ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์—ด์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค:
51
62
 
52
63
  ```bash
53
64
  memesh
54
65
  ```
55
66
 
56
67
  <p align="center">
57
- <img src="docs/images/dashboard-search.png" alt="MeMesh Search โ€” ์–ด๋–ค ๋ฉ”๋ชจ๋ฆฌ๋„ ์ฆ‰์‹œ ๊ฒ€์ƒ‰" width="100%" />
68
+ <img src="docs/images/dashboard-search.png" alt="MeMesh Search โ€” ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฆ‰์‹œ ์ฐพ์Šต๋‹ˆ๋‹ค" width="100%" />
58
69
  </p>
59
70
 
60
71
  <p align="center">
61
- <img src="docs/images/dashboard-analytics.png" alt="MeMesh Analytics โ€” AI์˜ ์ง€์‹์„ ํ•œ๋ˆˆ์— ํŒŒ์•…" width="100%" />
72
+ <img src="docs/images/dashboard-analytics.png" alt="MeMesh Analytics โ€” ๊ฑด๊ฐ• ์ ์ˆ˜, ํƒ€์ž„๋ผ์ธ, ํŒจํ„ด, ์ง€์‹ ์ปค๋ฒ„๋ฆฌ์ง€" width="100%" />
62
73
  </p>
63
74
 
64
75
  <p align="center">
@@ -67,18 +78,18 @@ memesh
67
78
 
68
79
  ---
69
80
 
70
- ## ๋ˆ„๊ตฌ๋ฅผ ์œ„ํ•œ ๋„๊ตฌ์ธ๊ฐ€?
81
+ ## ๋ˆ„๊ฐ€ ์‚ฌ์šฉํ• ๊นŒ์š”?
71
82
 
72
- | ๋‹น์‹ ์ดโ€ฆ๋ผ๋ฉด | MeMesh๊ฐ€ ์ด๋ ‡๊ฒŒ ๋„์™€์ค๋‹ˆ๋‹ค |
73
- |---------------|---------------------|
74
- | **Claude Code๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž** | ๊ฒฐ์ •, ํŒจํ„ด, ๊ตํ›ˆ์„ ์„ธ์…˜์„ ๋„˜๋‚˜๋“ค๋ฉฐ ์ž๋™์œผ๋กœ ๊ธฐ์–ต |
75
- | **LLM์œผ๋กœ ์ œํ’ˆ์„ ๋งŒ๋“œ๋Š” ํŒ€** | ๋‚ด๋ณด๋‚ด๊ธฐ/๊ฐ€์ ธ์˜ค๊ธฐ๋กœ ํŒ€ ์ง€์‹์„ ๊ณต์œ ํ•˜๊ณ  ๋ชจ๋‘์˜ AI ๋งฅ๋ฝ์„ ์ •๋ ฌ |
76
- | **AI ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ์ž** | MCP, HTTP API, Python SDK๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ์— ์ง€์† ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์—ฌ |
77
- | **์—ฌ๋Ÿฌ AI ๋„๊ตฌ๋ฅผ ์“ฐ๋Š” ํŒŒ์›Œ ์œ ์ €** | Claude, GPT, LLaMA, Ollama ๋˜๋Š” ๋ชจ๋“  MCP ํด๋ผ์ด์–ธํŠธ์™€ ์ž‘๋™ํ•˜๋Š” ๋‹จ์ผ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์–ด |
83
+ | ์ด๋Ÿฐ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด | MeMesh๊ฐ€ ๋„์™€์ค๋‹ˆ๋‹ค |
84
+ |---|---|
85
+ | **Claude Code๋ฅผ ์‚ฌ์šฉ ์ค‘** | ํ”„๋กœ์ ํŠธ ๊ฒฐ์ •, ํŒŒ์ผ๋ณ„ ๊ตํ›ˆ, ๊ณผ๊ฑฐ ์‹คํŒจ๋ฅผ ์ž‘์—… ์ค‘์— ์ž๋™์œผ๋กœ ํšŒ์ƒ |
86
+ | **์ฝ”๋”ฉ ์—์ด์ „ํŠธ ํŒŒ์›Œ ์œ ์ €** | MCP ํ˜ธํ™˜ ๋„๊ตฌ ์ „์ฒด์—์„œ ํ•˜๋‚˜์˜ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์–ด ๊ณต์œ  |
87
+ | **ํŒ€์ด AI ์ฝ”๋”ฉ ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ—˜ ์ค‘** | ํ˜ธ์ŠคํŒ… ์ธํ”„๋ผ ๋„์ž… ์—†์ด ํ”„๋กœ์ ํŠธ ์ง€์‹ ๋‚ด๋ณด๋‚ด๊ธฐ/๊ฐ€์ ธ์˜ค๊ธฐ |
88
+ | **์—์ด์ „ํŠธ ๊ฐœ๋ฐœ์ž** | MCP, HTTP, CLI, Python SDK๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์ถ”๊ฐ€ |
78
89
 
79
90
  ---
80
91
 
81
- ## ๋ชจ๋“  ๊ฒƒ๊ณผ ์—ฐ๋™
92
+ ## ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋ฅผ ์šฐ์„ ์œผ๋กœ ์„ค๊ณ„
82
93
 
83
94
  <table>
84
95
  <tr>
@@ -88,18 +99,18 @@ memesh
88
99
  ```bash
89
100
  memesh-mcp
90
101
  ```
91
- MCP ํ”„๋กœํ† ์ฝœ (์ž๋™ ์„ค์ •)
102
+ MCP ๋„๊ตฌ + Claude Code ํ›…
92
103
 
93
104
  </td>
94
105
  <td width="33%" align="center">
95
106
 
96
- **Python / LangChain**
97
- ```python
98
- from memesh import MeMesh
99
- m = MeMesh()
100
- m.recall("auth")
107
+ **๋ชจ๋“  HTTP ํด๋ผ์ด์–ธํŠธ**
108
+ ```bash
109
+ curl localhost:3737/v1/recall \
110
+ -H "Content-Type: application/json" \
111
+ -d '{"query":"auth"}'
101
112
  ```
102
- `pip install memesh`
113
+ `memesh serve` (REST API)
103
114
 
104
115
  </td>
105
116
  <td width="33%" align="center">
@@ -109,7 +120,7 @@ m.recall("auth")
109
120
  memesh export-schema \
110
121
  --format openai
111
122
  ```
112
- ์–ด๋–ค API ํ˜ธ์ถœ์—๋„ ๋ถ™์—ฌ๋„ฃ๊ธฐ
123
+ ๋ชจ๋“  API ํ˜ธ์ถœ์— ๋„๊ตฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ
113
124
 
114
125
  </td>
115
126
  </tr>
@@ -117,103 +128,120 @@ memesh export-schema \
117
128
 
118
129
  ---
119
130
 
120
- ## ์™œ Mem0 / Zep๊ฐ€ ์•„๋‹Œ๊ฐ€?
131
+ ## OpenMemory, Cursor Memories, Mem0, Zep์™€๋Š” ์™œ ๋‹ค๋ฅผ๊นŒ์š”?
121
132
 
122
- | | **MeMesh** | Mem0 | Zep |
123
- |---|---|---|---|
124
- | **์„ค์น˜ ์‹œ๊ฐ„** | 5์ดˆ | 30~60๋ถ„ | 30๋ถ„ ์ด์ƒ |
125
- | **์„ค์ • ๋ฐฉ๋ฒ•** | `npm i -g` โ€” ์™„๋ฃŒ | Neo4j + VectorDB + API ํ‚ค | Neo4j + ์„ค์ • |
126
- | **์ €์žฅ์†Œ** | SQLite ํŒŒ์ผ ํ•˜๋‚˜ | Neo4j + Qdrant | Neo4j |
127
- | **์˜คํ”„๋ผ์ธ ์‚ฌ์šฉ** | ํ•ญ์ƒ ๊ฐ€๋Šฅ | ๋ถˆ๊ฐ€ | ๋ถˆ๊ฐ€ |
128
- | **๋Œ€์‹œ๋ณด๋“œ** | ๋‚ด์žฅ (7๊ฐœ ํƒญ + ๋ถ„์„) | ์—†์Œ | ์—†์Œ |
129
- | **์˜์กด์„ฑ** | 6๊ฐœ | 20๊ฐœ ์ด์ƒ | 10๊ฐœ ์ด์ƒ |
130
- | **๊ฐ€๊ฒฉ** | ์˜๊ตฌ ๋ฌด๋ฃŒ | ๋ฌด๋ฃŒ ํ‹ฐ์–ด / ์œ ๋ฃŒ | ๋ฌด๋ฃŒ ํ‹ฐ์–ด / ์œ ๋ฃŒ |
133
+ | | **MeMesh** | OpenMemory | Cursor Memories | Mem0 | Zep / Graphiti |
134
+ |---|---|---|---|---|---|
135
+ | **์ตœ์ ํ™” ๋Œ€์ƒ** | ์ฝ”๋”ฉ ์—์ด์ „ํŠธ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ | ๋กœ์ปฌ/ํฌ๋กœ์Šค ํด๋ผ์ด์–ธํŠธ MCP ๋ฉ”๋ชจ๋ฆฌ | Cursor ๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋กœ์ ํŠธ ๋ฉ”๋ชจ๋ฆฌ | ๊ด€๋ฆฌํ˜• ์•ฑ/์—์ด์ „ํŠธ ๋ฉ”๋ชจ๋ฆฌ | ์‹œ๊ณ„์—ด ์ง€์‹ ๊ทธ๋ž˜ํ”„ |
136
+ | **์„ค์น˜ ๋ฐฉ์‹** | `npm install -g @pcircle/memesh` | ๋กœ์ปฌ ์•ฑ/์„œ๋ฒ„ ํ๋ฆ„ | Cursor ๋‚ด์žฅ | ํด๋ผ์šฐ๋“œ API / SDK / MCP | ์„œ๋น„์Šค/ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌ์„ฑ |
137
+ | **์ €์žฅ์†Œ** | ๋กœ์ปฌ SQLite ํŒŒ์ผ ํ•˜๋‚˜ | ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์Šคํƒ | Cursor ๊ด€๋ฆฌ ๊ทœ์น™/๋ฉ”๋ชจ๋ฆฌ | ํ˜ธ์ŠคํŒ… ๋˜๋Š” ์…€ํ”„ ํ˜ธ์ŠคํŒ… ์Šคํƒ | ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค |
138
+ | **ํด๋ผ์šฐ๋“œ ํ•„์ˆ˜** | ์•„๋‹ˆ์˜ค | ๋กœ์ปฌ ๋ชจ๋“œ๋Š” ์•„๋‹ˆ์˜ค | Cursor ๊ณ„์ •/์„ค์ •์— ๋”ฐ๋ผ | ํ”Œ๋žซํผ์„ ์œ„ํ•ด์„œ ํ•„์ˆ˜ | ๋ณดํ†ต ํ•„์ˆ˜/์…€ํ”„ ํ˜ธ์ŠคํŒ… |
139
+ | **Claude Code ํ›…** | 1์ˆœ์œ„ | MCP ๋„๊ตฌ | ์—†์Œ | MCP ๋„๊ตฌ | Claude Code ํŠนํ™” ์•„๋‹˜ |
140
+ | **๋Œ€์‹œ๋ณด๋“œ** | ๋‚ด์žฅ | ๋‚ด์žฅ | Cursor ์„ค์ • | ํ”Œ๋žซํผ ๋Œ€์‹œ๋ณด๋“œ | ํ”Œ๋žซํผ/๊ทธ๋ž˜ํ”„ ๋„๊ตฌ |
141
+ | **ํŠธ๋ ˆ์ด๋“œ์˜คํ”„** | ๊ฐ„๋‹จํ•œ ๋กœ์ปฌ ์†”๋ฃจ์…˜, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ทœ๋ชจ ์•„๋‹˜ | ๋” ๋„“์€ ๋กœ์ปฌ ์•ฑ ํ’‹ํ”„๋ฆฐํŠธ | Cursor์— ์ข…์† | ๊ฐ•๋ ฅํ•œ ๊ด€๋ฆฌํ˜• ํ”Œ๋žซํผ, ๋กœ์ปฌ ์šฐ์„  ์•„๋‹˜ | ๊ฐ•๋ ฅํ•œ ๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ, ๋ณต์žกํ•œ ๊ตฌ์„ฑ |
131
142
 
132
- **MeMesh์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„:** ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋ฉ€ํ‹ฐํ…Œ๋„ŒํŠธ ๊ธฐ๋Šฅ์„ ํฌ๊ธฐํ•˜๋Š” ๋Œ€์‹  **์ฆ‰์‹œ ์„ค์น˜, ์ œ๋กœ ์ธํ”„๋ผ, 100% ํ”„๋ผ์ด๋ฒ„์‹œ**๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.
143
+ **MeMesh๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๊ด€๋ฆฌ ์ธํ”„๋ผ๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ์ฆ‰๊ฐ์ ์ธ ๋กœ์ปฌ ๊ตฌ์„ฑ, ๊ฒ€์‚ฌ ๊ฐ€๋Šฅํ•œ ์ €์žฅ์†Œ, ์ฝ”๋”ฉ ์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ ํ›…์„ ์–ป์Šต๋‹ˆ๋‹ค.**
133
144
 
134
145
  ---
135
146
 
136
- ## ์ž๋™์œผ๋กœ ์ผ์–ด๋‚˜๋Š” ์ผ๋“ค
147
+ ## Claude Code์—์„œ ์ž๋™์œผ๋กœ ์ผ์–ด๋‚˜๋Š” ์ผ
137
148
 
138
- ๋ชจ๋“  ๊ฒƒ์„ ์ง์ ‘ ๊ธฐ์–ตํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. MeMesh์—๋Š” **4๊ฐœ์˜ ํ›…**์ด ์žˆ์–ด ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์•„๋„ ์ง€์‹์„ ์ž๋™์œผ๋กœ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค:
149
+ ๋ชจ๋“  ๊ฒƒ์„ ์ˆ˜๋™์œผ๋กœ ๊ธฐ์–ตํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. MeMesh๋Š” ์ž‘์—… ์ค‘์— ์ง€์‹์„ ์บก์ฒ˜ํ•˜๊ณ  ์ฃผ์ž…ํ•˜๋Š” **6๊ฐ€์ง€ ํ›…**์ด ์žˆ์Šต๋‹ˆ๋‹ค:
139
150
 
140
- | ์–ธ์ œ | MeMesh๊ฐ€ ํ•˜๋Š” ์ผ |
141
- |------|------------------|
142
- | **๋ชจ๋“  ์„ธ์…˜ ์‹œ์ž‘ ์‹œ** | ๊ฐ€์žฅ ๊ด€๋ จ์„ฑ ๋†’์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋กœ๋“œ + ๊ณผ๊ฑฐ ๊ตํ›ˆ์œผ๋กœ๋ถ€ํ„ฐ์˜ ์‚ฌ์ „ ๊ฒฝ๊ณ  |
143
- | **๋ชจ๋“  `git commit` ํ›„** | ๋ณ€๊ฒฝ ๋‚ด์šฉ๊ณผ diff ํ†ต๊ณ„๋ฅผ ๊ธฐ๋ก |
144
- | **Claude ์ข…๋ฃŒ ์‹œ** | ํŽธ์ง‘ํ•œ ํŒŒ์ผ, ์ˆ˜์ •ํ•œ ์˜ค๋ฅ˜๋ฅผ ํฌ์ฐฉํ•˜๊ณ  ์‹คํŒจ๋กœ๋ถ€ํ„ฐ ๊ตฌ์กฐํ™”๋œ ๊ตํ›ˆ์„ ์ž๋™ ์ƒ์„ฑ |
145
- | **์ปจํ…์ŠคํŠธ ์••์ถ• ์ „** | ์ปจํ…์ŠคํŠธ ํ•œ๊ณ„๋กœ ์‚ฌ๋ผ์ง€๊ธฐ ์ „์— ์ง€์‹์„ ์ €์žฅ |
151
+ | ์‹œ์  | MeMesh๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—… |
152
+ |------|---|
153
+ | **๋งค ์„ธ์…˜ ์‹œ์ž‘** | ๊ฐ€์žฅ ๊ด€๋ จ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ + ๊ณผ๊ฑฐ ๊ตํ›ˆ์˜ ์‚ฌ์ „ ๊ฒฝ๊ณ  + ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋ฐฐ๋„ˆ ๋กœ๋“œ |
154
+ | **ํŒŒ์ผ ํŽธ์ง‘ ์ „** | Claude๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ํŒŒ์ผ ๋˜๋Š” ํ”„๋กœ์ ํŠธ์™€ ์—ฐ๊ฒฐ๋œ ๋ฉ”๋ชจ๋ฆฌ ํšŒ์ƒ |
155
+ | **Bash ๋ช…๋ น ์ „** | Claude๊ฐ€ ๋†’์€ ๊ฒ€์ฆ ๊ฐ€๋Šฅ์„ฑ์˜ ๋ช…๋ น์–ด(ํ…Œ์ŠคํŠธ, ๋นŒ๋“œ, ๋ฆฐํŠธ, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜, ๋ฐฐํฌ, ๋ฒค์น˜๋งˆํฌ)๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์—์ด์ „ํŠธ๋กœ ์‹คํ–‰ํ•˜๋„๋ก ์œ ๋„ |
156
+ | **๋ชจ๋“  `git commit` ํ›„** | ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ diff ํ†ต๊ณ„์™€ ํ•จ๊ป˜ ๊ธฐ๋ก |
157
+ | **Claude๊ฐ€ ๋ฉˆ์ถœ ๋•Œ** | ํŽธ์ง‘๋œ ํŒŒ์ผ, ์ˆ˜์ •๋œ ์—๋Ÿฌ, ์‹คํŒจ๋กœ๋ถ€ํ„ฐ ์ž๋™ ์ƒ์„ฑ๋œ ๊ตฌ์กฐํ™”๋œ ๊ตํ›ˆ ์บก์ฒ˜ |
158
+ | **์ปจํ…์ŠคํŠธ ์••์ถ• ์ „** | ์ปจํ…์ŠคํŠธ ์ œํ•œ์œผ๋กœ ์†์‹ค๋˜๊ธฐ ์ „์— ์ง€์‹ ์ €์žฅ |
146
159
 
147
- > **์–ธ์ œ๋“  ๋น„ํ™œ์„ฑํ™”:** `export MEMESH_AUTO_CAPTURE=false`
160
+ > **์–ธ์ œ๋“  ํ•ด์ œ ๊ฐ€๋Šฅ:** `export MEMESH_AUTO_CAPTURE=false`
148
161
 
149
162
  ---
150
163
 
151
164
  ## ๋Œ€์‹œ๋ณด๋“œ
152
165
 
153
- 7๊ฐœ ํƒญ, 11๊ฐœ ์–ธ์–ด, ์™ธ๋ถ€ ์˜์กด์„ฑ ์ œ๋กœ. ์„œ๋ฒ„ ์‹คํ–‰ ์ค‘ `http://localhost:3737/dashboard`์—์„œ ์ ‘๊ทผ.
166
+ 7๊ฐœ ํƒญ, 11๊ฐœ ์–ธ์–ด, ์™ธ๋ถ€ ์˜์กด์„ฑ ์—†์Œ. ์„œ๋ฒ„ ์‹คํ–‰ ์ค‘ `http://localhost:3737/dashboard`์—์„œ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
154
167
 
155
168
  | ํƒญ | ๋‚ด์šฉ |
156
- |----|------|
157
- | **Search** | ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ์ „๋ฌธ ๊ฒ€์ƒ‰ + ๋ฒกํ„ฐ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰ |
158
- | **Browse** | ๋ชจ๋“  ์—”ํ‹ฐํ‹ฐ์˜ ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ชฉ๋ก (์•„์นด์ด๋ธŒ/๋ณต์› ์ง€์›) |
159
- | **Analytics** | ๋ฉ”๋ชจ๋ฆฌ ๊ฑด๊ฐ• ์ ์ˆ˜ (0-100), 30์ผ ํƒ€์ž„๋ผ์ธ, ๊ฐ€์น˜ ์ง€ํ‘œ, ์ง€์‹ ์ปค๋ฒ„๋ฆฌ์ง€, ์ •๋ฆฌ ์ œ์•ˆ, ์ž‘์—… ํŒจํ„ด |
160
- | **Graph** | ํƒ€์ž… ํ•„ํ„ฐ, ๊ฒ€์ƒ‰, ์—๊ณ  ๋ชจ๋“œ, ์ตœ์‹ ์„ฑ ํžˆํŠธ๋งต์ด ์žˆ๋Š” ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ํฌ์Šค ๊ทธ๋ž˜ํ”„ |
161
- | **Lessons** | ๊ณผ๊ฑฐ ์‹คํŒจ๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋œ ๊ตฌ์กฐํ™”๋œ ๊ตํ›ˆ (์˜ค๋ฅ˜, ๊ทผ๋ณธ ์›์ธ, ์ˆ˜์ •, ์˜ˆ๋ฐฉ) |
162
- | **Manage** | ์—”ํ‹ฐํ‹ฐ ์•„์นด์ด๋ธŒ ๋ฐ ๋ณต์› |
163
- | **Settings** | LLM ์ œ๊ณต์ž ์„ค์ •, ์–ธ์–ด ์„ ํƒ |
169
+ |------|---|
170
+ | **Search** | ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ์— ๊ฑธ์นœ ์ „์ฒด ํ…์ŠคํŠธ + ๋ฒกํ„ฐ ์œ ์‚ฌ์„ฑ ๊ฒ€์ƒ‰ |
171
+ | **Browse** | ๋ณด๊ด€ ๋ฐ ๋ณต๊ตฌ ์˜ต์…˜์ด ์žˆ๋Š” ๋ชจ๋“  ์—”ํ‹ฐํ‹ฐ ํŽ˜์ด์ง€ ๋ฆฌ์ŠคํŠธ |
172
+ | **Analytics** | ๋ฉ”๋ชจ๋ฆฌ ๊ฑด๊ฐ• ์ ์ˆ˜(0-100), 30์ผ ํƒ€์ž„๋ผ์ธ, ๊ฐ€์น˜ ์ง€ํ‘œ, ์ง€์‹ ์ปค๋ฒ„๋ฆฌ์ง€, ์ •๋ฆฌ ์ œ์•ˆ, ์ž‘์—… ํŒจํ„ด |
173
+ | **Graph** | ํƒ€์ž… ํ•„ํ„ฐ, ๊ฒ€์ƒ‰, ์—๊ณ  ๋ชจ๋“œ, ์ตœ๊ทผ์„ฑ ํžˆํŠธ๋งต์ด ์žˆ๋Š” ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ํฌ์Šค ๋””๋ ‰์…˜ ์ง€์‹ ๊ทธ๋ž˜ํ”„ |
174
+ | **Lessons** | ๊ณผ๊ฑฐ ์‹คํŒจ๋กœ๋ถ€ํ„ฐ ๊ตฌ์กฐํ™”๋œ ๊ตํ›ˆ(์—๋Ÿฌ, ๊ทผ๋ณธ ์›์ธ, ์ˆ˜์ •, ์˜ˆ๋ฐฉ) |
175
+ | **Manage** | ์—”ํ‹ฐํ‹ฐ ๋ณด๊ด€ ๋ฐ ๋ณต๊ตฌ |
176
+ | **Settings** | LLM ํ”„๋กœ๋ฐ”์ด๋” ์„ค์ •, ์ฆ‰์‹œ ์–ธ์–ด ์„ ํƒ๊ธฐ |
164
177
 
165
178
  ---
166
179
 
167
180
  ## ์Šค๋งˆํŠธ ๊ธฐ๋Šฅ
168
181
 
169
- **๐Ÿง  ์Šค๋งˆํŠธ ๊ฒ€์ƒ‰** โ€” "login security"๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด "OAuth PKCE"์— ๊ด€ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค. ์„ค์ •ํ•œ LLM์„ ์ด์šฉํ•ด ์ฟผ๋ฆฌ๋ฅผ ๊ด€๋ จ ์šฉ์–ด๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.
182
+ **๐Ÿง  ์Šค๋งˆํŠธ ๊ฒ€์ƒ‰** โ€” "login security"๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด "OAuth PKCE"์— ๊ด€ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. MeMesh๋Š” ์„ค์ •๋œ LLM์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ๊ด€๋ จ ์šฉ์–ด๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.
170
183
 
171
- **๐Ÿ“Š ์ ์ˆ˜ ๊ธฐ๋ฐ˜ ์ˆœ์œ„** โ€” ๊ฒฐ๊ณผ๋Š” ๊ด€๋ จ์„ฑ(35%) + ์ตœ๊ทผ ์‚ฌ์šฉ ์‹œ๊ฐ(25%) + ์‚ฌ์šฉ ๋นˆ๋„(20%) + ์‹ ๋ขฐ๋„(15%) + ์ •๋ณด ์œ ํšจ์„ฑ(5%)์œผ๋กœ ์ˆœ์œ„๋ฅผ ๋งค๊น๋‹ˆ๋‹ค.
184
+ **๐Ÿ“Š ์ ์ˆ˜ ์ˆœ์œ„ ๋งค๊น€** โ€” ๊ฒฐ๊ณผ๋Š” ๊ด€๋ จ์„ฑ(30%) + ์ตœ๊ทผ์„ฑ(25%) + ๋นˆ๋„(15%) + ์‹ ๋ขฐ๋„(15%) + ํšŒ์ƒ ์˜ํ–ฅ(10%) + ์‹œ๊ณ„์—ด ์œ ํšจ์„ฑ(5%)์œผ๋กœ ์ˆœ์œ„ ๋งค๊ฒจ์ง‘๋‹ˆ๋‹ค.
172
185
 
173
- **๐Ÿ”„ ์ง€์‹ ์ง„ํ™”** โ€” ๊ฒฐ์ •์€ ๋ฐ”๋€๋‹ˆ๋‹ค. `forget`์€ ์˜ค๋ž˜๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•„์นด์ด๋ธŒํ•ฉ๋‹ˆ๋‹ค(์ ˆ๋Œ€ ์‚ญ์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค). `supersedes` ๊ด€๊ณ„๊ฐ€ ์ด์ „ ๊ฒƒ๊ณผ ์ƒˆ ๊ฒƒ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. AI๋Š” ํ•ญ์ƒ ์ตœ์‹  ๋ฒ„์ „์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.
186
+ **๐Ÿ”„ ์ง€์‹ ์ง„ํ™”** โ€” ๊ฒฐ์ •์€ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค. `forget`์œผ๋กœ ์˜ค๋ž˜๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ณด๊ด€(์ ˆ๋Œ€ ์‚ญ์ œ ์•ˆ ํ•จ). `supersedes` ๊ด€๊ณ„๊ฐ€ ๊ตฌ โ†’ ์‹  ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. AI๋Š” ํ•ญ์ƒ ์ตœ์‹  ๋ฒ„์ „์„ ๋ด…๋‹ˆ๋‹ค.
174
187
 
175
- **โš ๏ธ ์ถฉ๋Œ ๊ฐ์ง€** โ€” ๋‘ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์„œ๋กœ ๋ชจ์ˆœ๋  ๊ฒฝ์šฐ MeMesh๊ฐ€ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
188
+ **โš ๏ธ ์ถฉ๋Œ ๊ฐ์ง€** โ€” ์„œ๋กœ ๋ชจ์ˆœ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‘ ๊ฐœ๊ฐ€ ์žˆ์œผ๋ฉด MeMesh๊ฐ€ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
176
189
 
177
190
  **๐Ÿ“ฆ ํŒ€ ๊ณต์œ ** โ€” `memesh export > team-knowledge.json` โ†’ ํŒ€๊ณผ ๊ณต์œ  โ†’ `memesh import team-knowledge.json`
191
+ ์ž„ํฌํŠธ๋œ ๋ฒˆ๋“ค์€ ๊ณ„์† ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, MeMesh๋Š” ๊ฒ€ํ† ํ•˜๊ฑฐ๋‚˜ ๋กœ์ปฌ์— ๋‹ค์‹œ ์ €์žฅํ•  ๋•Œ๊นŒ์ง€ Claude ํ›…์— ์ž„ํฌํŠธ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™ ์ฃผ์ž…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
192
+
193
+ ---
194
+
195
+ ## ์‚ฌ์šฉ ์˜ˆ์‹œ
196
+
197
+ > "MeMesh๊ฐ€ 3์ฃผ ์ „์— ์•”์‹œ์  ํ๋ฆ„๋ณด๋‹ค PKCE๋ฅผ ์„ ํƒํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ธ์ฆ์— ๋Œ€ํ•ด Claude์—๊ฒŒ ๋ฌผ์—ˆ์„ ๋•Œ, ์ด๋ฏธ ์•Œ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค โ€” ์„ค๋ช…ํ•  ํ•„์š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค."
198
+ > โ€” **SaaS๋ฅผ ๋งŒ๋“œ๋Š” ๊ฐœ๋ณ„ ๊ฐœ๋ฐœ์ž**
199
+
200
+ > "๋งค์ฃผ ๊ธˆ์š”์ผ ํŒ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ  ์›”์š”์ผ์— ์ž„ํฌํŠธํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  Claude๊ฐ€ ์ฃผ๊ฐ„ ์‹œ์ž‘ ์‹œ ํŒ€์ด ์ง€๋‚œ์ฃผ์— ๋ฐฐ์šด ๊ฒƒ์„ ์•Œ๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค."
201
+ > โ€” **3๋ช… ์Šคํƒ€ํŠธ์—…, ๊ณต์œ  ์ง€์‹๋ฒ ์ด์Šค**
202
+
203
+ > "๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋ณด๋‹ˆ ๋ฉ”๋ชจ๋ฆฌ์˜ 90%๊ฐ€ ์ž๋™ ์ƒ์„ฑ๋œ ์„ธ์…˜ ๋กœ๊ทธ์˜€์Šต๋‹ˆ๋‹ค. `remember`๋ฅผ ์˜์‹์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์„ ์ €์žฅํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ •๋ง ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค."
204
+ > โ€” **Analytics ํƒญ์„ ๋ฐœ๊ฒฌํ•œ ๊ฐœ๋ฐœ์ž**
178
205
 
179
206
  ---
180
207
 
181
- ## ์Šค๋งˆํŠธ ๋ชจ๋“œ ํ™œ์„ฑํ™” (์„ ํƒ ์‚ฌํ•ญ)
208
+ ## ์Šค๋งˆํŠธ ๋ชจ๋“œ ์–ธ์ž ๊ธˆ (์„ ํƒ)
182
209
 
183
- MeMesh๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์™„์ „ํžˆ ์˜คํ”„๋ผ์ธ์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. LLM API ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋” ์Šค๋งˆํŠธํ•œ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
210
+ MeMesh๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜คํ”„๋ผ์ธ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ํ™•์žฅ, ๋” ์Šค๋งˆํŠธํ•œ ์ถ”์ถœ, ์••์ถ•์„ ์›ํ•  ๋•Œ๋งŒ LLM API ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:
184
211
 
185
212
  ```bash
186
213
  memesh config set llm.provider anthropic
187
214
  memesh config set llm.api-key sk-ant-...
188
215
  ```
189
216
 
190
- ๋˜๋Š” ๋Œ€์‹œ๋ณด๋“œ ์„ค์ • ํƒญ์—์„œ ์‹œ๊ฐ์ ์œผ๋กœ ์„ค์ •:
217
+ ๋˜๋Š” ๋Œ€์‹œ๋ณด๋“œ Settings ํƒญ ์‚ฌ์šฉ (๋น„์ฃผ์–ผ ์„ค์ •):
191
218
 
192
219
  ```bash
193
- memesh # ๋Œ€์‹œ๋ณด๋“œ ์—ด๊ธฐ โ†’ ์„ค์ • ํƒญ
220
+ memesh # ๋Œ€์‹œ๋ณด๋“œ ์—ด๊ธฐ โ†’ Settings ํƒญ
194
221
  ```
195
222
 
196
- | | ๋ ˆ๋ฒจ 0 (๊ธฐ๋ณธ๊ฐ’) | ๋ ˆ๋ฒจ 1 (์Šค๋งˆํŠธ ๋ชจ๋“œ) |
223
+ | | Level 0 (๊ธฐ๋ณธ) | Level 1 (์Šค๋งˆํŠธ ๋ชจ๋“œ) |
197
224
  |---|---|---|
198
- | **๊ฒ€์ƒ‰** | FTS5 ํ‚ค์›Œ๋“œ ๋งค์นญ | + LLM ์ฟผ๋ฆฌ ํ™•์žฅ (~97% ์žฌํ˜„์œจ) |
199
- | **์ž๋™ ํฌ์ฐฉ** | ๊ทœ์น™ ๊ธฐ๋ฐ˜ ํŒจํ„ด | + LLM์ด ๊ฒฐ์ • & ๊ตํ›ˆ ์ถ”์ถœ |
225
+ | **๊ฒ€์ƒ‰** | FTS5 ํ‚ค์›Œ๋“œ ๋งค์นญ | + LLM ์ฟผ๋ฆฌ ํ™•์žฅ (~97% ํšŒ์ƒ์œจ) |
226
+ | **์ž๋™ ์บก์ฒ˜** | ๊ทœ์น™ ๊ธฐ๋ฐ˜ ํŒจํ„ด | + LLM์ด ๊ฒฐ์ •๊ณผ ๊ตํ›ˆ ์ถ”์ถœ |
200
227
  | **์••์ถ•** | ์‚ฌ์šฉ ๋ถˆ๊ฐ€ | `consolidate`๋กœ ์žฅํ™ฉํ•œ ๋ฉ”๋ชจ๋ฆฌ ์••์ถ• |
201
- | **๋น„์šฉ** | ๋ฌด๋ฃŒ, API ํ‚ค ๋ถˆํ•„์š” | ๊ฒ€์ƒ‰๋‹น ~$0.0001 (Haiku) |
228
+ | **๋น„์šฉ** | ๋ฌด๋ฃŒ, API ํ‚ค ๋ถˆํ•„์š” | ~$0.0001 ๊ฒ€์ƒ‰๋‹น (Haiku) |
202
229
 
203
230
  ---
204
231
 
205
- ## ์ „์ฒด 8๊ฐ€์ง€ ๋ฉ”๋ชจ๋ฆฌ ๋„๊ตฌ
232
+ ## 9๊ฐ€์ง€ ๋ฉ”๋ชจ๋ฆฌ ๋„๊ตฌ ์ „์ฒด
206
233
 
207
- | ๋„๊ตฌ | ๊ธฐ๋Šฅ |
208
- |------|-------------|
209
- | `remember` | ๊ด€์ฐฐ ๊ธฐ๋ก, ๊ด€๊ณ„, ํƒœ๊ทธ์™€ ํ•จ๊ป˜ ์ง€์‹ ์ €์žฅ |
210
- | `recall` | ๋‹ค์ค‘ ์š”์†Œ ์Šค์ฝ”์–ด๋ง๊ณผ LLM ์ฟผ๋ฆฌ ํ™•์žฅ์„ ํ™œ์šฉํ•œ ์Šค๋งˆํŠธ ๊ฒ€์ƒ‰ |
211
- | `forget` | ์†Œํ”„ํŠธ ์•„์นด์ด๋ธŒ(์ ˆ๋Œ€ ์‚ญ์ œ ์—†์Œ) ๋˜๋Š” ํŠน์ • ๊ด€์ฐฐ ๊ธฐ๋ก ์ œ๊ฑฐ |
234
+ | ๋„๊ตฌ | ์—ญํ•  |
235
+ |---|---|
236
+ | `remember` | ๊ด€์ฐฐ, ๊ด€๊ณ„, ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•œ ์ง€์‹ ์ €์žฅ |
237
+ | `recall` | ๋‹ค์ค‘ ์š”์†Œ ์ ์ˆ˜ ๋งค๊น€๊ณผ LLM ์ฟผ๋ฆฌ ํ™•์žฅ์ด ์žˆ๋Š” ์Šค๋งˆํŠธ ๊ฒ€์ƒ‰ |
238
+ | `forget` | ์†Œํ”„ํŠธ ๋ณด๊ด€(์ ˆ๋Œ€ ์‚ญ์ œ ์•ˆ ํ•จ) ๋˜๋Š” ํŠน์ • ๊ด€์ฐฐ ์ œ๊ฑฐ |
212
239
  | `consolidate` | LLM ๊ธฐ๋ฐ˜ ์žฅํ™ฉํ•œ ๋ฉ”๋ชจ๋ฆฌ ์••์ถ• |
213
- | `export` | ๋ฉ”๋ชจ๋ฆฌ๋ฅผ JSON์œผ๋กœ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ํŒ€์›๊ณผ ๊ณต์œ  |
214
- | `import` | ๋ณ‘ํ•ฉ ์ „๋žต(๊ฑด๋„ˆ๋›ฐ๊ธฐ / ๋ฎ์–ด์“ฐ๊ธฐ / ์ถ”๊ฐ€)์„ ์„ ํƒํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์ ธ์˜ค๊ธฐ |
215
- | `learn` | ์‹ค์ˆ˜๋กœ๋ถ€ํ„ฐ ๊ตฌ์กฐํ™”๋œ ๊ตํ›ˆ ๊ธฐ๋ก (์˜ค๋ฅ˜, ๊ทผ๋ณธ ์›์ธ, ์ˆ˜์ •, ์˜ˆ๋ฐฉ) |
240
+ | `export` | ํ”„๋กœ์ ํŠธ๋‚˜ ํŒ€ ๋ฉค๋ฒ„ ๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ JSON ๊ณต์œ  |
241
+ | `import` | ๋ณ‘ํ•ฉ ์ „๋žต(์Šคํ‚ต/๋ฎ์–ด์“ฐ๊ธฐ/์ถ”๊ฐ€)์ด ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ž„ํฌํŠธ |
242
+ | `learn` | ์‹ค์ˆ˜๋กœ๋ถ€ํ„ฐ ๊ตฌ์กฐํ™”๋œ ๊ตํ›ˆ ๊ธฐ๋ก(์—๋Ÿฌ, ๊ทผ๋ณธ ์›์ธ, ์ˆ˜์ •, ์˜ˆ๋ฐฉ) |
216
243
  | `user_patterns` | ์ž‘์—… ํŒจํ„ด ๋ถ„์„ โ€” ์ผ์ •, ๋„๊ตฌ, ๊ฐ•์ , ํ•™์Šต ์˜์—ญ |
244
+ | `verify_agent_work` | ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์—์ด์ „ํŠธ ์ž‘์—…์— ๋Œ€ํ•œ ๊ฒ€์ฆ ๋ณด๊ณ ์„œ ์œ ์ง€; ์ฒญ๊ตฌ๋œ ํŒŒ์ผ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ `git diff`์™€ ํ˜„์‹ค ํ™•์ธ |
217
245
 
218
246
  ---
219
247
 
@@ -234,7 +262,7 @@ memesh # ๋Œ€์‹œ๋ณด๋“œ ์—ด๊ธฐ โ†’ ์„ค์ • ํƒญ
234
262
  (~/.memesh/knowledge-graph.db)
235
263
  ```
236
264
 
237
- ์ฝ”์–ด๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ๋…๋ฆฝ์ . ํ„ฐ๋ฏธ๋„, HTTP, MCP ์–ด๋””์„œ ํ˜ธ์ถœํ•ด๋„ ๋™์ผํ•œ ๋กœ์ง์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
265
+ ์ฝ”์–ด๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋กœ์ง์ด ํ„ฐ๋ฏธ๋„, HTTP, MCP์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
238
266
 
239
267
  ---
240
268
 
@@ -243,7 +271,8 @@ memesh # ๋Œ€์‹œ๋ณด๋“œ ์—ด๊ธฐ โ†’ ์„ค์ • ํƒญ
243
271
  ```bash
244
272
  git clone https://github.com/PCIRCLE-AI/memesh-llm-memory
245
273
  cd memesh-llm-memory && npm install && npm run build
246
- npm test -- --run # 413 tests
274
+ npm test # 489 tests
275
+ npm run test:e2e-dashboard
247
276
  ```
248
277
 
249
278
  ๋Œ€์‹œ๋ณด๋“œ: `cd dashboard && npm install && npm run dev`
@@ -251,5 +280,5 @@ npm test -- --run # 413 tests
251
280
  ---
252
281
 
253
282
  <p align="center">
254
- <strong>MIT</strong> โ€” <a href="https://pcircle.ai">PCIRCLE AI</a> ์ œ์ž‘
283
+ <strong>MIT</strong> โ€” Made by <a href="https://pcircle.ai">PCIRCLE AI</a>
255
284
  </p>
package/README.md CHANGED
@@ -26,6 +26,22 @@ This package is the local memory layer of the MeMesh product family. It is inten
26
26
 
27
27
  ---
28
28
 
29
+ ## Proof โ€” 95.40% R@5 on LongMemEval-S
30
+
31
+ MeMesh's retrieval engine is **FTS5 alone** (no LLM, no embeddings on the hot path), measured against the public [LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval) benchmark (500 questions, MIT-licensed):
32
+
33
+ | System | R@5 | Source |
34
+ |---|---|---|
35
+ | **MeMesh (Mode A, FTS5)** | **95.40%** | [benchmarks/longmemeval/RESULTS.md](benchmarks/longmemeval/RESULTS.md) |
36
+ | MemPalace | 96.6% | Vendor self-report |
37
+ | Supermemory | ~82% | Vendor estimate |
38
+ | Zep | 63.8% | LongMemEval paper |
39
+ | Mem0 | 49.0% | LongMemEval paper |
40
+
41
+ Reproduction commands, dataset SHA256, raw per-question results, and known-failure analysis are all in [`benchmarks/longmemeval/`](benchmarks/longmemeval/). Re-runnable in ~10 seconds.
42
+
43
+ ---
44
+
29
45
  ## Get Started in 60 Seconds
30
46
 
31
47
  ### Step 1: Install
@@ -34,12 +50,22 @@ This package is the local memory layer of the MeMesh product family. It is inten
34
50
  npm install -g @pcircle/memesh
35
51
  ```
36
52
 
53
+ > **First-install notes (one-time):**
54
+ > - **Native modules** โ€” `better-sqlite3` and `sqlite-vec` install via prebuilt binaries on macOS (arm64/x64), Linux (x64/arm64), and Windows x64. On uncommon platforms or when prebuilds fail, you'll need a working C/C++ toolchain.
55
+ > - **Embedding model** โ€” the first call that triggers a local embedding (e.g. `recall` with semantic mode) downloads `Xenova/all-MiniLM-L6-v2` (~80 MB) into `~/.memesh/models/`. Subsequent calls are instant. The default retrieval path (FTS5) does not require this download.
56
+
37
57
  ### Step 2: Store a decision
38
58
 
39
59
  ```bash
40
60
  memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
41
61
  ```
42
62
 
63
+ Or quick-capture in one line:
64
+
65
+ ```bash
66
+ memesh remember "Use OAuth 2.0 with PKCE for the new auth"
67
+ ```
68
+
43
69
  ### Step 3: Recall it later
44
70
 
45
71
  ```bash
@@ -49,6 +75,12 @@ memesh recall "login security"
49
75
 
50
76
  **That's it.** MeMesh is now remembering and recalling across sessions.
51
77
 
78
+ If you want to verify the install and local wiring end to end:
79
+
80
+ ```bash
81
+ memesh doctor
82
+ ```
83
+
52
84
  Open the dashboard to explore your memory:
53
85
 
54
86
  ```bash
@@ -137,12 +169,13 @@ Paste tools into any API call
137
169
 
138
170
  ## What Happens Automatically In Claude Code
139
171
 
140
- You don't need to manually remember everything. MeMesh has **5 hooks** that capture and inject knowledge while you work:
172
+ You don't need to manually remember everything. MeMesh has **6 hooks** that capture and inject knowledge while you work:
141
173
 
142
174
  | When | What MeMesh does |
143
175
  |------|------------------|
144
176
  | **Every session start** | Loads your most relevant memories + proactive warnings from past lessons |
145
177
  | **Before editing files** | Recalls memories tied to the file or project before Claude writes code |
178
+ | **Before bash commands** | (Opt-in) Nudges Claude to dispatch high-verifiability commands (test, build, lint, migrate, deploy, benchmark) as background agents |
146
179
  | **After every `git commit`** | Records what you changed, with diff stats |
147
180
  | **When Claude stops** | Captures files edited, errors fixed, and auto-generates structured lessons from failures |
148
181
  | **Before context compaction** | Saves knowledge before it's lost to context limits |
@@ -151,6 +184,23 @@ You don't need to manually remember everything. MeMesh has **5 hooks** that capt
151
184
 
152
185
  ---
153
186
 
187
+ ## Configuration
188
+
189
+ All configuration is via environment variables. Defaults are local-only and zero-network โ€” you don't need to set anything to get a working system.
190
+
191
+ | Variable | Default | What it does |
192
+ |---|---|---|
193
+ | `MEMESH_DB_PATH` | `~/.memesh/knowledge-graph.db` | Override the SQLite database location. |
194
+ | `MEMESH_AUTO_CAPTURE` | `true` | Disable the auto-capture hooks (`Stop`, `PreCompact`) entirely. |
195
+ | `MEMESH_AUTO_DETECT_LLM` | unset | Set to `1` to let memesh auto-detect a provider from your shell env (`OPENAI_API_KEY` etc.) and switch to BYOK embeddings. **Default fresh-install is local ONNX (384-dim) only** โ€” opt in if you want cloud embeddings. Without this flag set, an `OPENAI_API_KEY` lying around in your shell is ignored. |
196
+ | `MEMESH_ENABLE_AGENTIC_ORCHESTRATION` | unset | Set to `1` to enable an experimental working-model protocol (CTO / Orchestrator / Agents framing). Adds a session-start banner, a Bash command nudge, and `verify_agent_work` telemetry. The protocol's effectiveness is being instrumented, not yet proven โ€” opt in if you want to participate. **Default is OFF**: the core memory features work without this flag. |
197
+ | `OPENAI_API_KEY` | unset | Your OpenAI key. Only used when `MEMESH_AUTO_DETECT_LLM=1` or you explicitly configure the provider. |
198
+ | `OLLAMA_HOST` | `http://localhost:11434` | Override the Ollama endpoint when using a local Ollama provider. |
199
+
200
+ `memesh doctor` prints the resolved configuration so you can see what's active.
201
+
202
+ ---
203
+
154
204
  ## Dashboard
155
205
 
156
206
  7 tabs, 11 languages, zero external dependencies. Access at `http://localhost:3737/dashboard` when the server is running.
@@ -219,7 +269,7 @@ memesh # opens dashboard โ†’ Settings tab
219
269
 
220
270
  ---
221
271
 
222
- ## All 8 Memory Tools
272
+ ## All 9 Memory Tools
223
273
 
224
274
  | Tool | What it does |
225
275
  |------|-------------|
@@ -231,6 +281,7 @@ memesh # opens dashboard โ†’ Settings tab
231
281
  | `import` | Import memories with merge strategies (skip / overwrite / append) |
232
282
  | `learn` | Record structured lessons from mistakes (error, root cause, fix, prevention) |
233
283
  | `user_patterns` | Analyze your work patterns โ€” schedule, tools, strengths, learning areas |
284
+ | `verify_agent_work` | Persist a verification report for background-agent work; reality-checks claimed file changes against `git diff` |
234
285
 
235
286
  ---
236
287
 
@@ -260,7 +311,7 @@ Core is framework-agnostic. Same logic runs from terminal, HTTP, or MCP.
260
311
  ```bash
261
312
  git clone https://github.com/PCIRCLE-AI/memesh-llm-memory
262
313
  cd memesh-llm-memory && npm install && npm run build
263
- npm test # 463 tests
314
+ npm test # 489 tests
264
315
  npm run test:e2e-dashboard
265
316
  ```
266
317