klypix-mcp 1.106.0 → 1.106.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.
Files changed (2) hide show
  1. package/README.md +236 -116
  2. package/package.json +10 -4
package/README.md CHANGED
@@ -1,84 +1,137 @@
1
- # klypix-mcp — shared project memory for Claude Code, Codex and Cursor
1
+ <div align="center">
2
+
3
+ # klypix-mcp
4
+
5
+ ### The shared project brain for your coding agents.
2
6
 
3
7
  **Every project gets a brain.**
4
8
 
5
- Shared project memory for **Claude Code, Codex, Cursor** and other MCP coding tools. One
6
- `brain.klypix` file, committed with your code, carries the project's decisions, corrections and open
7
- questions across sessions and between tools. Corrections supersede stale decisions; sessions declare
8
- the files they expect to touch and get warned about same-machine overlap. Versioned in Git. Served
9
- over MCP by a process on your machine. In the standalone setup, brain data stays in your files;
10
- your agent's provider can still receive what the agent reads. Integration depth differs by host — see
11
- [Supported hosts](#supported-hosts-and-their-integration-level).
12
-
13
- Klypix is a **portable project workspace with a shared brain**. This repository provides its
14
- local MCP server for shared project memory in coding tools. The **Apache-2.0 engine works without the KLYPIX
15
- desktop app or a KLYPIX account**. The optional
16
- [Windows workspace](https://klypix.com/developers) lets people inspect the same project brain
17
- beside their files. App-based sharing has its own cloud path; see [Security and permissions](#security-and-permissions).
18
-
19
- For the **Projects & Ideas** path — saved project materials in ChatGPT or Claude chat — follow
20
- [Save project materials and use them with your assistant](https://klypix.com/guides/connect-klypix-to-chatgpt-and-claude).
21
- That uses Klypix's separate hosted connection for the spaces you authorize. Installing this local
22
- MCP server does not set up that connection.
9
+ [![npm](https://img.shields.io/npm/v/klypix-mcp?style=flat-square)](https://www.npmjs.com/package/klypix-mcp)
10
+ [![CI](https://img.shields.io/github/actions/workflow/status/dahshanlabs/klypix-mcp/ci.yml?branch=master&style=flat-square&label=CI)](https://github.com/dahshanlabs/klypix-mcp/actions/workflows/ci.yml)
11
+ [![License](https://img.shields.io/github/license/dahshanlabs/klypix-mcp?style=flat-square)](LICENSE)
12
+ [![Node](https://img.shields.io/node/v/klypix-mcp?style=flat-square)](package.json)
13
+ [![MCP](https://img.shields.io/badge/MCP-server-475569?style=flat-square)](https://modelcontextprotocol.io)
14
+ [![Glama score](https://glama.ai/mcp/servers/dahshanlabs/klypix-mcp/badges/score.svg)](https://glama.ai/mcp/servers/dahshanlabs/klypix-mcp)
23
15
 
24
- [Install](#quick-start) · [Try your first decision](#your-first-decision-and-correction) ·
25
- [Supported hosts](#supported-hosts-and-their-integration-level) ·
26
- [Privacy](#security-and-permissions) · [Limits](#current-limitations) · [Uninstall](#uninstall)
16
+ </div>
27
17
 
28
- For a team walkthrough, read the [shared project memory setup guide](https://klypix.com/guides/shared-project-memory).
29
- Choosing an approach? Our [memory tools comparison](https://klypix.com/guides/shared-project-memory-tools)
30
- links each tool's official documentation and discloses that Klypix wrote it.
18
+ Shared project memory for **Claude Code, Codex, Cursor** and other MCP coding tools. One
19
+ `brain.klypix` file, committed with your code, holds the project's decisions, corrections and open
20
+ questions. Supported agents read it at the start of a task and add to it as they work; how much of
21
+ that happens on its own depends on the host. People can open the same file and correct it.
31
22
 
32
- ![Two real MCP sessions on one project: Session B declares a file Session A already declared, and the server's exact-file-overlap warning fires; Session A then records a correction that supersedes its stale card](docs/demo/demo.gif)
23
+ ![Two sessions, Claude Code and Codex, on one PC and one brain.klypix. Both plan to change src/checkout/Checkout.tsx, and each gets a heads-up from KLYPIX. Nothing is blocked. The film ends on the KLYPIX mark and "Every project gets a brain."](https://raw.githubusercontent.com/dahshanlabs/klypix-mcp/master/docs/media/klypix-sessions.gif)
33
24
 
34
- <sub>Real output, not a mockup: both panes run a real MCP client against this server
35
- ([docs/demo/](docs/demo/) — the GIF is rendered by CI from a scripted tape against this server, not
36
- hand-recorded, and re-rendered when the server's responses change).</sub>
25
+ <sub>A 14-second cut of the sessions film from klypix.com.
26
+ [Real terminal output](#60-seconds-two-agents-one-project) is further down.</sub>
37
27
 
38
- With **Node.js 20 or newer**, run this inside your project:
28
+ **▶ Watch:** [For coding teams (40 s, with sound)](https://klypix.com/media/films/sessions-16x9-en.mp4) ·
29
+ [Correct it once (20 s)](https://klypix.com/media/films/correct-16x9-en.mp4) ·
30
+ [Full tour (4 min)](https://klypix.com/media/films/tour-16x9-en.mp4) ·
31
+ [KLYPIX network](https://klypix.com/network)
39
32
 
40
- ```bash
41
- npx klypix-mcp install
42
- ```
33
+ ## Install in three steps
43
34
 
44
- It creates `brain.klypix` if the project has none, wires the editors it finds on this machine,
45
- registers the `.klypix` merge driver if this is a git repo, and exits only after a real MCP
46
- handshake has counted the tools that answered.
35
+ You need **Node.js 20 or newer** (`node -v`).
47
36
 
48
- Next, reconnect your coding host and [try your first decision and correction](#your-first-decision-and-correction).
49
- A successful trial means a fresh session finds your recorded decision and its reason, then finds
50
- the corrected decision as current. Check the returned source cards; a successful install alone
51
- does not prove that your host has loaded the tools or that a particular decision was retrieved.
37
+ 1. **Run this inside your project:**
52
38
 
53
- [![Claude Code](https://img.shields.io/badge/Claude_Code-5_lifecycle_hooks-475569?style=flat-square)](#supported-hosts-and-their-integration-level)
54
- [![Codex](https://img.shields.io/badge/Codex-native_MCP_%2B_presence-475569?style=flat-square)](#supported-hosts-and-their-integration-level)
55
- [![Cursor](https://img.shields.io/badge/Cursor-MCP_config_%2B_rules-475569?style=flat-square)](#supported-hosts-and-their-integration-level)
56
- [![Gemini CLI](https://img.shields.io/badge/Gemini_CLI-MCP_config_%2B_rules-475569?style=flat-square)](#supported-hosts-and-their-integration-level)
39
+ ```bash
40
+ npx klypix-mcp install
41
+ ```
57
42
 
58
- <sub>Host badges name the **integration level**, not a flat "compatible" — the levels and what is
59
- actually tested are in [Supported hosts](#supported-hosts-and-their-integration-level).</sub>
43
+ It gives the project a `brain.klypix` if it has none, wires the editors it finds on this
44
+ machine, and checks that the tools answer before it exits.
45
+
46
+ 2. **Reopen your coding tool**, or reconnect its MCP server, and allow the KLYPIX tools if it asks.
47
+
48
+ 3. **Check it.** Run `npx klypix-mcp doctor`, then
49
+ [record your first decision and correction](#your-first-decision-and-correction) and ask for it
50
+ from a fresh session.
51
+
52
+ ## What you get
53
+
54
+ - **Decisions that carry over.** The next session, in the same tool or another one, starts from
55
+ what the project already decided: on its own in Claude Code, and when the agent calls
56
+ `brain_sync` in other hosts. A correction replaces the old decision, and the old card stays as
57
+ history.
58
+ - **A heads-up when work overlaps.** Each session says what it is doing and which files it expects
59
+ to touch. When two sessions name the same file, both are warned. KLYPIX warns; it never blocks an
60
+ edit. This works on one computer. With [KLYPIX network](https://klypix.com/network)
61
+ installed on both computers (klypix-mcp 1.106.0 or later), it also lists sessions in the same
62
+ project on a teammate's computer.
63
+ - **Notes and handoffs between sessions.** An agent can leave a note for another session, even one
64
+ that has closed. The note arrives at that session's next KLYPIX action, so you are not the one
65
+ copying it across. When a session stops before its work is done, the next session on this
66
+ computer is shown what it was doing, and a handoff card in the brain carries the next steps
67
+ through Git.
68
+ - **A git guard for a shared checkout (Claude Code).** When several sessions share one checkout, a
69
+ git command that would sweep another live session's uncommitted work into your commit is stopped.
70
+ A command that would throw work away saves a rescue copy first, then asks you. It covers git
71
+ commands run through Claude Code's tools, on one computer.
72
+ - **A file you own.** The brain is one `.klypix` file in your repo: a plain ZIP, versioned with
73
+ Git. The engine is Apache-2.0, runs on your machine, and works without the KLYPIX app or an
74
+ account. Brain data stays in your files; your agent's model provider still receives what the
75
+ agent reads.
76
+
77
+ ## Hosts
78
+
79
+ How deep the integration goes depends on the host. The [full table](#supported-hosts-and-their-integration-level)
80
+ has the details.
81
+
82
+ | Host | What it gets | Set up by |
83
+ |---|---|---|
84
+ | **Claude Code** | Six lifecycle hooks (1.105.0 and later): a brief at session start, context on each prompt, automatic capture at turn end, presence and the git guard | `install` |
85
+ | **Codex** | Native MCP tools, presence and `brain_sync`; optional hooks with `--codex-hooks`. No automatic capture | `install` |
86
+ | **Cursor, Cline, VS Code (Copilot / Continue), Gemini CLI, Antigravity** | MCP config and an always-on rules file. The agent calls `brain_sync` and `brain_note` itself | `install`, for the editors it finds, or `link` |
87
+ | **Windsurf, Aider** | A rules file. Windsurf uses its own global MCP config; Aider uses the command line | `link` |
88
+ | **Claude Desktop** | A one-time config entry | The KLYPIX app's Settings, or by hand |
89
+ | **Claude, as a plugin** | One pinned version, keyword search, no hooks | [klypix-plugin](https://github.com/dahshanlabs/klypix-plugin) |
60
90
 
61
- > **One project. Many agents. One current understanding.**
91
+ klypix-mcp 1.106.0 has 26 MCP tools on Linux and macOS and 27 on Windows, where `show_in_klypix` is
92
+ added. `npx klypix-mcp doctor` shows the count for your install.
62
93
 
63
- Klypix does not launch, run, supervise, or replace your agents. It is not an agent runtime, a model
64
- router, a worktree manager, or a replacement for Git. It holds what the project currently believes.
94
+ > **One project. Many agents. One current understanding.**
65
95
 
66
- [![CI](https://img.shields.io/github/actions/workflow/status/dahshanlabs/klypix-mcp/ci.yml?branch=master&style=flat-square&label=CI)](https://github.com/dahshanlabs/klypix-mcp/actions/workflows/ci.yml)
67
- [![npm](https://img.shields.io/npm/v/klypix-mcp?style=flat-square)](https://www.npmjs.com/package/klypix-mcp)
68
- [![License](https://img.shields.io/github/license/dahshanlabs/klypix-mcp?style=flat-square)](LICENSE)
69
- [![Node](https://img.shields.io/node/v/klypix-mcp?style=flat-square)](package.json)
70
- [![MCP](https://img.shields.io/badge/MCP-server-475569?style=flat-square)](https://modelcontextprotocol.io)
71
- [![Glama score](https://glama.ai/mcp/servers/dahshanlabs/klypix-mcp/badges/score.svg)](https://glama.ai/mcp/servers/dahshanlabs/klypix-mcp)
72
- [![bench](https://img.shields.io/badge/npx_klypix--mcp_bench-10_writers_%C2%B7_0_lost-475569?style=flat-square)](BENCHMARKS.md)
96
+ KLYPIX does not launch, run, supervise or replace your agents. It is not an agent runtime, a model
97
+ router, a worktree manager or a replacement for Git. It holds what the project currently believes.
73
98
 
74
- ## See the shared project brain in action
99
+ KLYPIX is a **portable project workspace with a shared brain**. This repository is its local MCP
100
+ server. The optional [Windows workspace](https://klypix.com/developers) lets people inspect the same
101
+ brain beside their files; app-based sharing has its own cloud path (see
102
+ [Security and permissions](#security-and-permissions)). For the **Projects & Ideas** path, saved
103
+ project materials in ChatGPT or Claude chat, follow
104
+ [Save project materials and use them with your assistant](https://klypix.com/guides/connect-klypix-to-chatgpt-and-claude).
105
+ That uses KLYPIX's separate hosted connection for the spaces you authorize; installing this local
106
+ server does not set it up.
75
107
 
76
- [![Watch the 2 minute 21 second KLYPIX Brain product walkthrough](https://raw.githubusercontent.com/dahshanlabs/klypix-mcp/master/docs/assets/klypix-brain-showcase-readme.jpg)](https://klypix.com/developers#demo)
108
+ **Guides:** [shared project memory setup](https://klypix.com/guides/shared-project-memory) ·
109
+ [memory tools comparison](https://klypix.com/guides/shared-project-memory-tools) (it links each
110
+ tool's official documentation and says that KLYPIX wrote it) · [klypix.com/klypix-mcp](https://klypix.com/klypix-mcp)
77
111
 
78
- Watch how current decisions, corrections, evidence, and active work stay visible to people and
79
- carry forward into supported coding-agent sessions.
112
+ ---
80
113
 
81
- **[Watch the 2:21 showcase with sound](https://klypix.com/developers#demo)**
114
+ ## Contents
115
+
116
+ - **Start:** [The problem](#the-problem) · [60 seconds: two agents, one project](#60-seconds-two-agents-one-project) ·
117
+ [Quick start](#quick-start) · [Your first decision and correction](#your-first-decision-and-correction)
118
+ - **[Reference](#reference):** [How the brain works](#how-the-brain-works) ·
119
+ [Supported hosts](#supported-hosts-and-their-integration-level) ·
120
+ [Running as a Claude plugin](#running-as-a-claude-plugin) · [Task briefing](#task-briefing) ·
121
+ [Capture and corrections](#capture-and-corrections) · [Presence and task intent](#presence-and-task-intent) ·
122
+ [Overlap warnings](#overlap-warnings) ·
123
+ [Teammates on other computers](#teammates-on-other-computers-klypix-network) ·
124
+ [Handoffs and messages](#handoffs-and-messages) · [Evidence-gated completion](#evidence-gated-completion) ·
125
+ [Human control in KLYPIX](#human-control-in-klypix) · [Measure it yourself](#measure-it-yourself) ·
126
+ [Git and concurrency](#git-and-concurrency) ·
127
+ [The git guard for a shared checkout](#whose-is-this-the-git-guard-for-a-shared-checkout) ·
128
+ [The command line](#the-command-line) · [The verbs](#the-verbs-26-and-27-on-windows) ·
129
+ [One file you can hold](#one-file-you-can-hold) · [Use it as a library](#use-it-as-a-library) ·
130
+ [A2A](#also-speaks-a2a-protocol-v030--experimental) ·
131
+ [Updates](#updates--the-propagation-contract) · [Security and permissions](#security-and-permissions) ·
132
+ [Current limitations](#current-limitations) · [Numbers and methodology](#numbers-and-methodology) ·
133
+ [Uninstall](#uninstall)
134
+ - [Contributing](#contributing) · [Why this exists](#why-this-exists) · [Licence](#licence)
82
135
 
83
136
  ---
84
137
 
@@ -100,6 +153,12 @@ Your agents may run independently. Their project understanding should not.
100
153
 
101
154
  ## 60 seconds: two agents, one project
102
155
 
156
+ ![Two real MCP sessions on one project: Session B declares a file Session A already declared, and the server's exact-file-overlap warning fires; Session A then records a correction that supersedes its stale card](https://raw.githubusercontent.com/dahshanlabs/klypix-mcp/master/docs/demo/demo.gif)
157
+
158
+ <sub>Real output, not a mockup: both panes run a real MCP client against this server
159
+ ([docs/demo/](docs/demo/) — the GIF is rendered by CI from a scripted tape against this server, not
160
+ hand-recorded, and re-rendered when the server's responses change).</sub>
161
+
103
162
  Illustrative calls and responses: replace `/absolute/path/to/project` with the same project root
104
163
  in both sessions (for example, `C:/work/api` on Windows).
105
164
 
@@ -189,8 +248,8 @@ broken entry dies in ~100ms with `Connection closed` and is reported, not shippe
189
248
 
190
249
  What goes where:
191
250
 
192
- - **Machine-global, once** — the engine + runtime in `~/.claude/project-brain`, Claude Code's five
193
- lifecycle hooks in `~/.claude/settings.json`, and the `~/.codex/AGENTS.md` guidance block. Claude
251
+ - **Machine-global, once** — the engine + runtime in `~/.claude/project-brain`, Claude Code's six
252
+ lifecycle hooks (five before 1.105.0) in `~/.claude/settings.json`, and the `~/.codex/AGENTS.md` guidance block. Claude
194
253
  Code is therefore covered in every project on that machine that has a `./brain.klypix`.
195
254
  - **Per project** — MCP config and rules for Cursor, Codex, Cline, Windsurf, Copilot, Gemini CLI /
196
255
  Antigravity and Aider. Run `install` once inside each project.
@@ -297,11 +356,18 @@ trial does not plan source-code edits.
297
356
 
298
357
  For a team on different machines, follow the [Git sharing steps](https://klypix.com/guides/shared-project-memory#team)
299
358
  and install in each clone. Standalone live presence and file-overlap warnings stay local to one
300
- machine and OS user. Keep approved architecture records and stable conventions alongside the brain.
359
+ machine and OS user; with [KLYPIX network](#teammates-on-other-computers-klypix-network) on each
360
+ computer, they also cover teammates' sessions in the same project. Keep approved architecture
361
+ records and stable conventions alongside the brain.
301
362
 
302
363
  ---
303
364
 
304
- ## How the brain works
365
+ ## Reference
366
+
367
+ Everything below is reference: how each part works, what it writes, and where it stops. The
368
+ [contents](#contents) list above links to each section.
369
+
370
+ ### How the brain works
305
371
 
306
372
  The difference from a folder of notes is not the shape — it is that this memory is a mechanism,
307
373
  not a filing convention.
@@ -339,7 +405,7 @@ not a filing convention.
339
405
  ("Getting this brain ready for search by meaning: 900 of 3,670 cards so far, about 5 min left").
340
406
  After that, only new or edited cards are prepared.
341
407
 
342
- ### Bounded semantic-memory runtime
408
+ #### Bounded semantic-memory runtime
343
409
 
344
410
  Long-lived MCP and A2A workers use the bounded semantic-memory runtime by default. Models load only
345
411
  when semantic work is requested, native inference is serialized per process, embedding work is
@@ -363,7 +429,7 @@ excludes the owning IDE/chat application's RAM, redacts command-line secrets, an
363
429
  brain or terminates a process. Multiple processes under one host are reported as parallel sessions,
364
430
  not called duplicates without an authoritative logical-session receipt.
365
431
 
366
- ### Project Map: current structure beside project understanding
432
+ #### Project Map: current structure beside project understanding
367
433
 
368
434
  If the project contains a compatible NetworkX node-link `graph.json`, agents can ask for bounded
369
435
  code-structure evidence and current brain context in one read-only call:
@@ -398,16 +464,14 @@ workflow has `contents: read`, pins every action by commit SHA, pins `graphifyy=
398
464
  the graph contract, and uploads `graphify-out/` as a 14-day build artifact. This is opt-in CI code:
399
465
  the local MCP tool still never installs or launches Graphify.
400
466
 
401
- ---
402
-
403
- ## Supported hosts and their integration level
467
+ ### Supported hosts and their integration level
404
468
 
405
469
  Levels are honest. Only the config-writing side is tested for the `link` hosts; their host-side
406
470
  behaviour is unverified.
407
471
 
408
472
  | Host | Level | Wired by | Brief into context | Decision capture | Live presence |
409
473
  |---|---|---|---|---|---|
410
- | **Claude Code** | Full automatic (5 lifecycle hooks) | `install` | Automatic at session start, task-ranked retrieval per prompt | **Automatic** at turn end | Yes |
474
+ | **Claude Code** | Full automatic (6 lifecycle hooks since 1.105.0) | `install` | Automatic at session start, task-ranked retrieval per prompt | **Automatic** at turn end | Yes |
411
475
  | **Codex** | Native MCP + presence + Context Gateway; optional `--codex-hooks` | `install` | Via `brain_sync`; per-prompt injection only with `--codex-hooks` | **Explicit only** (`brain_note`) — never automatic | Yes |
412
476
  | **Cursor** | MCP config + always-on rules file | `link` | Model must call `brain_sync` | Model must call `brain_note` | For the MCP connection |
413
477
  | **Cline** | MCP config + always-on rules file | `link` | Model must call `brain_sync` | Model must call `brain_note` | For the MCP connection |
@@ -438,11 +502,10 @@ it lists the tools:
438
502
  }
439
503
  ```
440
504
 
441
- ---
442
-
443
- ## Running as a Claude plugin
505
+ ### Running as a Claude plugin
444
506
 
445
- The KLYPIX Claude plugin starts this server as `npx -y klypix-mcp@1.93.0`: one exact version, never
507
+ The KLYPIX Claude plugin starts this server as `npx -y klypix-mcp@<version>`, with the version its
508
+ `.claude-plugin/plugin.json` names: one exact version, never
446
509
  a range or `latest`. It sets three variables: `KLYPIX_PLUGIN=1`,
447
510
  `KLYPIX_PLUGIN_DATA=${CLAUDE_PLUGIN_DATA}` and `KLYPIX_VAULT=${CLAUDE_PROJECT_DIR}`.
448
511
  `KLYPIX_PLUGIN=1` turns on **plugin mode**, which changes how the MCP server behaves and nothing
@@ -514,9 +577,7 @@ created in a project; and the presence lanes, write locks and restore points in
514
577
  `~/.claude/project-brain`. Other KLYPIX tools on this computer share that folder. If you use none,
515
578
  you can delete it.
516
579
 
517
- ---
518
-
519
- ## Task briefing
580
+ ### Task briefing
520
581
 
521
582
  Every Claude Code session starts already knowing the project: a bounded brief of at most 2KB in
522
583
  context, with the full brief written to disk for when broad history or status work needs it.
@@ -530,7 +591,7 @@ so fresh relevant findings are not crowded out by older area vocabulary.
530
591
  Briefs are **not** injected automatically on Cursor, Cline, Copilot, Gemini CLI or Antigravity —
531
592
  there are no lifecycle hooks on those hosts.
532
593
 
533
- ### The live projection — the file the agent obeys
594
+ #### The live projection — the file the agent obeys
534
595
 
535
596
  The coordination bench showed that an agent trusts the instruction file it was launched with
536
597
  over anything a tool or hook tells it, and that each host reads a different surface. So the
@@ -557,7 +618,7 @@ Sections for projects not touched in a day are pruned from the Codex file, at mo
557
618
  kept, and `uninstall unlink` strips the block (deleting `CLAUDE.local.md` only when nothing else
558
619
  is in it). `brain_sync` remains the live source; the block tells the agent to call it.
559
620
 
560
- ## Capture and corrections
621
+ ### Capture and corrections
561
622
 
562
623
  `brain_note` accepts structured supporting references and inert verification text:
563
624
 
@@ -623,7 +684,7 @@ only (explicit correction cues, opposite-polarity pairs), never mere topical sim
623
684
  means no contradiction signal was found — not verified consistency. A memory that cannot disagree
624
685
  with you is flattery.
625
686
 
626
- ## Presence and task intent
687
+ ### Presence and task intent
627
688
 
628
689
  An active session means an authorized MCP connection or host lifecycle adapter that heartbeated
629
690
  within the TTL. A row in a recent-chat list is history, not presence.
@@ -639,7 +700,7 @@ Future hosts get baseline support merely by connecting the MCP server. A deeper
639
700
  `peekMessages` and `receiveMessages`. The shared contract accepts `id`, `client`, `surface`,
640
701
  `model`, `branch`, `intent`, touched `files`, and adapter `channel`.
641
702
 
642
- ## Overlap warnings
703
+ ### Overlap warnings
643
704
 
644
705
  `brain_sync` reports three kinds of overlap with other live sessions on the same brain:
645
706
 
@@ -658,7 +719,32 @@ Future hosts get baseline support merely by connecting the MCP server. A deeper
658
719
  This warns. It does not prevent. Nothing blocks an edit. A session that never declared its files
659
720
  and was never observed editing is invisible to the file and folder checks.
660
721
 
661
- ## Handoffs and messages
722
+ ### Teammates on other computers (KLYPIX network)
723
+
724
+ ![KLYPIX network: agent sessions on two computers declare the same file, the project brain warns before either edits it, and a note from one session lands in the other](https://klypix.com/network/klypix-network.gif)
725
+
726
+ Presence, overlap warnings and notes are local to one computer by default. Since klypix-mcp
727
+ 1.106.0 they also reach a teammate's computer when [KLYPIX network](https://klypix.com/network), a
728
+ small separate background program, is installed on both computers
729
+ (`curl -fsSL https://klypix.com/network/install.sh | sh`, or
730
+ `irm https://klypix.com/network/install.ps1 | iex` on Windows):
731
+
732
+ - `brain_sync` also lists agent sessions in the same project on a teammate's computer, with their
733
+ one-line task and declared files, and gives the same exact-file overlap warning it gives for a
734
+ session on this machine.
735
+ - `brain_message` reaches those sessions too. Their ids start with `net:`. A note to every session
736
+ goes to this machine's sessions and theirs.
737
+
738
+ What leaves the computer: the project key (a hash of the git remote), the one-line task,
739
+ repository-relative file paths, and the text of a note you send to a session there. Cards, files,
740
+ diffs and screens do not travel this way; the brain itself still moves through Git. There is no
741
+ read receipt and no result reconciliation across computers. The warnings are advisory, exactly as
742
+ on one computer.
743
+
744
+ Without the program nothing changes. It is off with `KLYPIX_NETWORK=0` and in plugin mode. No
745
+ two-computer test run is published for it yet.
746
+
747
+ ### Handoffs and messages
662
748
 
663
749
  `brain_message` leaves one-time coordination notes for other sessions — live, idle, or recently
664
750
  closed. Address a session by id: a live session gets the note on its next action; a session
@@ -679,7 +765,7 @@ instead of silently looking delivered. The send-time audience is fixed, unresolv
679
765
  fail closed, the core lane is machine-local, a note to every session expires after 24 hours and a
680
766
  directed note after 7 days, and notes are never written into the brain.
681
767
 
682
- ### Reopen on your OK
768
+ #### Reopen on your OK
683
769
 
684
770
  A note to a session that has closed would otherwise wait until someone happens to open that
685
771
  session again. When the person wants it handled sooner, the sending agent calls `brain_reopen`, and
@@ -703,7 +789,7 @@ receives the waiting note at its first action and the sender sees the receipt as
703
789
  waiting for them; `npx klypix-mcp sessions reopen <id>` reopens one (`--quiet` lets it wait for
704
790
  you instead of starting on the note).
705
791
 
706
- ### Session handoff — continue in the next session, with any agent
792
+ #### Session handoff — continue in the next session, with any agent
707
793
 
708
794
  The case this exists for: a Claude Code session stops at its usage limit in the middle of a task,
709
795
  and the person opens Codex (or a fresh Claude Code) and says *continue*. Until 1.99.0 the only
@@ -759,7 +845,7 @@ fail the sync that triggered it.
759
845
  Durable decisions still go in the brain as cards — a handoff is the one card about *work in
760
846
  flight*, and it closes when the work lands.
761
847
 
762
- ## Evidence-gated completion
848
+ ### Evidence-gated completion
763
849
 
764
850
  When a task publishes a quantified or otherwise machine-checkable claim, it can attach one or more
765
851
  versioned result manifests to `brain_sync { phase: "complete" }`. Each manifest binds the claim to a
@@ -776,7 +862,7 @@ Schema-v2 receipts can be converted into commit-bound publication evidence and i
776
862
  with `klypix-mcp/release-evidence`; legacy schema-v1 results remain usable for coordination but cannot
777
863
  authorize publication.
778
864
 
779
- ## Human control in Klypix
865
+ ### Human control in Klypix
780
866
 
781
867
  > **Not a second brain. A shared one.**
782
868
 
@@ -796,7 +882,7 @@ The app is a separate, proprietary Windows product. The format, this server and
796
882
  Apache-2.0 and work with no app installed. The app's interface is available in English and Arabic
797
883
  (some newer panels are still English-only).
798
884
 
799
- ### KLYPIX canvases and your AI tool
885
+ #### KLYPIX canvases and your AI tool
800
886
 
801
887
  Beyond project brains, the same connection reads and writes the KLYPIX canvases (spaces) saved on
802
888
  your PC. **Your AI tool reads what KLYPIX has already read, and the files a saved canvas holds:**
@@ -821,7 +907,7 @@ your PC. **Your AI tool reads what KLYPIX has already read, and the files a save
821
907
  again.
822
908
  - Text that comes back from cards, pages, reels and files is fenced as data, never instructions.
823
909
 
824
- ### App mode: your AI tool uses KLYPIX while it is open
910
+ #### App mode: your AI tool uses KLYPIX while it is open
825
911
 
826
912
  On Windows, while the KLYPIX app is open and **Settings → Project → AI tools on this PC** is on (it is
827
913
  on by default), the same connection reaches the running app. KLYPIX then runs its own code for the
@@ -876,7 +962,7 @@ prove they hold the token before a request is sent; klypix-mcp sends nothing to
876
962
  prove itself. The token and the pipe name are never logged, returned to the AI tool or shown by
877
963
  `brain_doctor`. Any program running under your Windows account can read the token.
878
964
 
879
- ### Reading what is inside cards
965
+ #### Reading what is inside cards
880
966
 
881
967
  A canvas saved by KLYPIX keeps a copy of every file dropped on it. `read_card_contents` hands those
882
968
  files to your AI tool as they are, so it reads them with its own model and its own file tools —
@@ -914,10 +1000,11 @@ Limits, and why:
914
1000
  it while it runs), so it cannot be handed over from the saved canvas; the answer says so.
915
1001
  - Cards inside a box locked from AI tools are never read, copied or attached.
916
1002
 
917
- ## Measure it yourself
1003
+ ### Measure it yourself
918
1004
 
919
1005
  Claims about a shared brain — "nothing is lost", "it stays fast" — are unfalsifiable until a
920
- stranger can re-run them, so the benchmark ships in the box:
1006
+ stranger can re-run them, so the benchmark ships in the box
1007
+ ([![bench](https://img.shields.io/badge/npx_klypix--mcp_bench-10_writers_%C2%B7_0_lost-475569?style=flat-square)](BENCHMARKS.md)):
921
1008
 
922
1009
  ```bash
923
1010
  npx klypix-mcp bench # ~25s, or --quick for a smaller run
@@ -942,7 +1029,7 @@ channel, a human copy-paste, `AGENTS.md` kept tidy or appended, and KLYPIX over
942
1029
  is printed with its sample size and interval; tools it has not measured are listed as not measured.
943
1030
  `--dry-run` costs nothing and proves the graders.
944
1031
 
945
- ## Git and concurrency
1032
+ ### Git and concurrency
946
1033
 
947
1034
  One file in your repo, committed with your code — versioned, branchable, portable. So two
948
1035
  developers already share one brain the way they share code: clone, branch, pull.
@@ -997,7 +1084,7 @@ rename, so a crash mid-write leaves the previous good file intact. The lock is a
997
1084
  sustained contention can still lose an update. That is a deliberate trade — dropping the markers
998
1085
  was judged worse — but it is a real limit, not a guarantee.
999
1086
 
1000
- ### Restore points
1087
+ #### Restore points
1001
1088
 
1002
1089
  Merging, tidying and gardening are built to keep every card nobody deleted (one deliberate exception: a
1003
1090
  card deleted permanently also leaves the other copies of the brain when they sync, an edited copy
@@ -1034,9 +1121,32 @@ that cannot be written is logged and skipped — it never blocks your save.
1034
1121
  Normal canvases deliberately get none of this. One human made every mark and saw every change; the
1035
1122
  brain is the file where that is not true.
1036
1123
 
1037
- ---
1124
+ ### Whose is this? The git guard for a shared checkout
1125
+
1126
+ Since 1.105.0, when several AI sessions share one checkout, the Claude Code hooks check git
1127
+ commands before they run:
1038
1128
 
1039
- ## The command line
1129
+ - A command that would sweep another **live** session's uncommitted work into your commit
1130
+ (`git add -A`, `git commit -a`, or naming its file) is stopped. The message names that session
1131
+ and gives the narrow command for your own files.
1132
+ - A command that would throw work away (`git reset --hard`, `git checkout -- <file>`,
1133
+ `git stash`, `git clean`) saves a rescue copy first (`refs/klypix/rescue/*`), then asks you.
1134
+ With no person to ask (bypass mode), it is refused. Restore a copy with
1135
+ `npx klypix-mcp rescue restore <id>`; `npx klypix-mcp rescue list` shows them.
1136
+ - `git status` says which changed files belong to another session.
1137
+ - A **stopped** session's leftovers are not blocked. The agent is told it may finish and commit
1138
+ them if it is continuing that work.
1139
+
1140
+ Modes: `KLYPIX_WHOSE=enforce` (the default), `shadow` (warn and log only) or `off`, or
1141
+ `{"mode": ...}` in `~/.claude/project-brain/whose.json`. Codex edits are recorded so the guard
1142
+ knows whose they are.
1143
+
1144
+ What it is not: it guards git commands run through Claude Code's tools, on one computer. It does
1145
+ not guard edits to files or work in other tools, and it does not prevent conflicts. In the
1146
+ coordination bench, a one-line careful instruction also kept the other session's work safe in 5 of
1147
+ 5 "clean up" runs, as KLYPIX did.
1148
+
1149
+ ### The command line
1040
1150
 
1041
1151
  The MCP verbs below are what agents call. These are what **you** call:
1042
1152
 
@@ -1054,10 +1164,10 @@ The MCP verbs below are what agents call. These are what **you** call:
1054
1164
  | `npx klypix-mcp diff [ref]` | Card-level brain diff against a git ref, as markdown |
1055
1165
  | `npx klypix-mcp pr-brief [ref]` | Brain cards referencing the files changed since a ref, as markdown |
1056
1166
  | `npx klypix-mcp garden-code` | Print the human approval code `brain_garden` requires |
1167
+ | `npx klypix-mcp rescue` | Rescue copies the git guard saved before a discard: `list`, `show <id>`, `restore <id> [paths…]`, `prune` |
1168
+ | `npx klypix-mcp sessions` | This project's closed sessions and the notes waiting for them; `sessions reopen <id>` reopens one |
1057
1169
 
1058
- ---
1059
-
1060
- ## The verbs: 26, and 27 on Windows
1170
+ ### The verbs: 26, and 27 on Windows
1061
1171
 
1062
1172
  | Tool | What it does |
1063
1173
  |---|---|
@@ -1106,7 +1216,7 @@ card itself. `brain_garden`, `brain_reconcile` and `brain_connect` always propos
1106
1216
  apply.
1107
1217
  `npx klypix-mcp doctor` gives one verdict and exits non-zero on drift, so it doubles as a CI gate.
1108
1218
 
1109
- ## One file you can hold
1219
+ ### One file you can hold
1110
1220
 
1111
1221
  The whole brain — layout, cards, arrows, and the actual bytes (images, PDFs, audio, video) — is a
1112
1222
  single `.klypix` file: a plain ZIP with `manifest.json`, `canvas.json`, one JSON file per card, and
@@ -1140,7 +1250,7 @@ npx klypix-read node_modules/klypix-mcp/examples/showcase-brain.klypix
1140
1250
  Both are text-and-arrows only — 14 cards, 4 arrows, no `assets/` entry — so they demonstrate the
1141
1251
  card / container / connection model, not the embedded-binaries half of the format.
1142
1252
 
1143
- ## Use it as a library
1253
+ ### Use it as a library
1144
1254
 
1145
1255
  ```js
1146
1256
  import { parseKlypix, buildKlypix, appendToKlypix, structToMarkdown } from 'klypix-mcp';
@@ -1152,7 +1262,7 @@ echo '{ "title": "Plan", "cards": [{ "text": "kickoff" }] }' \
1152
1262
  | npx -p klypix-mcp klypix-write --out plan.klypix
1153
1263
  ```
1154
1264
 
1155
- ## Also speaks A2A protocol v0.3.0 — experimental
1265
+ ### Also speaks A2A protocol v0.3.0 — experimental
1156
1266
 
1157
1267
  ```bash
1158
1268
  npx -p klypix-mcp klypix-a2a --vault ./canvases # 127.0.0.1:41241
@@ -1168,7 +1278,7 @@ agent that returns text, KLYPIX returns the `.klypix` board itself as a multimod
1168
1278
  Treat this as a preview: the adversarial A2A smoke test runs in the default `npm test` chain, but
1169
1279
  the server has not been exercised against a third-party A2A client.
1170
1280
 
1171
- ## Updates — the propagation contract
1281
+ ### Updates — the propagation contract
1172
1282
 
1173
1283
  The MCP entry point is a stable stdio supervisor that keeps the host-owned connection open while a
1174
1284
  replaceable worker runs the brain core. A staged update is hash-verified, initialized in parallel,
@@ -1235,7 +1345,7 @@ re-index after a model/cache upgrade; cache writes are model-keyed and atomic ac
1235
1345
  agent sessions. Lexical-only installs download nothing. Set `KLYPIX_SEMANTIC_WARM_ON_UPDATE=0` to
1236
1346
  keep lazy first-use indexing instead.
1237
1347
 
1238
- ## Security and permissions
1348
+ ### Security and permissions
1239
1349
 
1240
1350
  - **Apache-2.0, source public** at [github.com/dahshanlabs/klypix-mcp](https://github.com/dahshanlabs/klypix-mcp).
1241
1351
  - **The brain engine makes no network calls and sends no telemetry.** All engine intelligence is
@@ -1256,8 +1366,14 @@ keep lazy first-use indexing instead.
1256
1366
  data, but a note relays whatever its sender typed (and automatic overlap alerts name the declared
1257
1367
  file paths involved). The scope is versioned: an older metadata-only grant does not authorize note
1258
1368
  text and must be granted again. No current consent, no frames.
1369
+ - **KLYPIX network is a separate, optional program.** When it is installed, `brain_sync` sends it
1370
+ this session's project key (a hash of the git remote, never the path), its one-line intent and
1371
+ repository-relative file paths, and `brain_message` sends the note text to a session on another
1372
+ computer. Nothing else is sent. Traffic between computers is encrypted; a relay, when one is
1373
+ needed, passes only encrypted traffic. Not installed, `KLYPIX_NETWORK=0`, or plugin mode: nothing
1374
+ runs.
1259
1375
  - **`install` writes to your home directory:** `~/.claude/project-brain` (engine + runtime),
1260
- `~/.claude/settings.json` (five hooks — written even if Claude Code is not installed),
1376
+ `~/.claude/settings.json` (six hooks since 1.105.0 — written even if Claude Code is not installed),
1261
1377
  `~/.codex/AGENTS.md` (guidance block), and with `--codex-hooks`, `~/.codex/hooks.json`. It also
1262
1378
  writes `<cwd>/.codex/config.toml` **inside the project** you run it in, and removes any KLYPIX
1263
1379
  entry from the global `~/.codex/config.toml`. **`link` writes 14 files inside the project** you
@@ -1280,17 +1396,19 @@ keep lazy first-use indexing instead.
1280
1396
  is closed or its AI-tools switch is off; the client proves the app holds the per-start token before
1281
1397
  it sends a request, and never logs or returns the token or the pipe name.
1282
1398
 
1283
- ## Current limitations
1399
+ ### Current limitations
1284
1400
 
1285
1401
  Read this section before you build on any of it.
1286
1402
 
1287
- - **Coordination is machine-local and OS-user-local.** The presence lane is a file in your home
1288
- directory. Two developers on two machines do not see each other's sessions, peers, overlaps or
1289
- messages. This package ships the cross-machine presence *core* (`./presence-relay` — versioned
1290
- whitelisted presence metadata plus coordination-note text, a symmetric default-off consent gate,
1291
- loop prevention, stable message IDs and per-recipient-machine acknowledgement primitives), but no
1292
- transport: carrying frames between machines is the desktop app's job. With `klypix-mcp` alone,
1293
- coordination is machine-local.
1403
+ - **Coordination is machine-local and OS-user-local unless KLYPIX network is installed.** The
1404
+ presence lane is a file in your home directory. With `klypix-mcp` alone, two developers on two
1405
+ machines do not see each other's sessions, overlaps or messages. With
1406
+ [KLYPIX network](https://klypix.com/network) on both computers (1.106.0+), they see each other's
1407
+ sessions in the same project, with intent and declared files, get the exact-file overlap warning,
1408
+ and can send notes; read receipts, result reconciliation and the merge test stay local. The
1409
+ project match is by git remote (or folder name without one). This package also ships a
1410
+ cross-machine presence *core* for the desktop app's cloud channel (`./presence-relay`, default-off
1411
+ consent), which is a separate path.
1294
1412
  - **File overlap is exact-path.** A session needs declared files or observed edits to be checked;
1295
1413
  `src/auth/token.ts` does not match a rename. Folder overlap is advisory. The merge test sees
1296
1414
  committed work only, needs git 2.38 or newer, and runs only for sessions on different local
@@ -1327,7 +1445,7 @@ Read this section before you build on any of it.
1327
1445
  verified identity: any program running as you can read the bridge token.
1328
1446
  - **`canvas_view`'s MCP Apps UI has never been verified on a real Apps host.**
1329
1447
 
1330
- ## Numbers and methodology
1448
+ ### Numbers and methodology
1331
1449
 
1332
1450
  Every number here is measured on our own project brain. Nothing below is published, benchmarked or
1333
1451
  independently validated.
@@ -1353,7 +1471,7 @@ independently validated.
1353
1471
  keywords at half weight:
1354
1472
  recall@5 19% → 24% (5 found, none lost), recall@10 25% → 31%. Without the line, ranking is
1355
1473
  unchanged byte for byte.
1356
- - **Second brain.** The same ranker on a different project's brain (1,601 cards, 19 hand-written
1474
+ - **A second project's brain.** The same ranker on a different project's brain (1,601 cards, 19 hand-written
1357
1475
  paraphrases, first cross-brain run): recall@5 **42%** (CI 23–64), top-1 11%, MRR 0.25. Paraphrase
1358
1476
  recall transfers between brains; the ranker is not tuned to the brain it was built on. It is
1359
1477
  simply weak on paraphrase everywhere — the embedder's ceiling, documented in `rankForQuestion`.
@@ -1379,7 +1497,7 @@ independently validated.
1379
1497
  - **The eval harness is not in this repo.** It lives in the private KLYPIX desktop repository. The
1380
1498
  numbers above are ours to defend, not yours to reproduce from here — treat them accordingly.
1381
1499
 
1382
- ## Uninstall
1500
+ ### Uninstall
1383
1501
 
1384
1502
  ```bash
1385
1503
  npx klypix-mcp uninstall --check # preview machine-global removal — writes nothing
@@ -1399,6 +1517,8 @@ every live section there.
1399
1517
 
1400
1518
  Your `brain.klypix` is yours — it is a plain ZIP and stays readable with or without this package.
1401
1519
 
1520
+ ---
1521
+
1402
1522
  ## Contributing
1403
1523
 
1404
1524
  Issues and pull requests: [github.com/dahshanlabs/klypix-mcp](https://github.com/dahshanlabs/klypix-mcp).
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "klypix-mcp",
3
- "version": "1.106.0",
3
+ "version": "1.106.2",
4
4
  "mcpName": "io.github.dahshanlabs/klypix-mcp",
5
- "description": "Shared project memory for Claude Code, Codex and Cursor: decisions and corrections through MCP.",
5
+ "description": "Shared project memory for Claude Code, Codex and Cursor: decisions, corrections, overlap warnings.",
6
6
  "type": "module",
7
7
  "license": "Apache-2.0",
8
8
  "keywords": [
@@ -27,9 +27,15 @@
27
27
  "agent-memory",
28
28
  "local-first",
29
29
  "klypix",
30
- "ai"
30
+ "ai",
31
+ "gemini-cli",
32
+ "ai-coding",
33
+ "team-memory",
34
+ "decision-log",
35
+ "overlap-warnings",
36
+ "agent-collaboration"
31
37
  ],
32
- "homepage": "https://klypix.com/developers",
38
+ "homepage": "https://klypix.com/klypix-mcp",
33
39
  "repository": {
34
40
  "type": "git",
35
41
  "url": "https://github.com/dahshanlabs/klypix-mcp"