aboutsummaryrefslogtreecommitdiff
path: root/FORK.md
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-10-15 23:11:41 +0100
committerIgor Soarez <igor@soarez.org>2026-10-15 23:11:41 +0100
commit2a3854c2e246d38636779c2c8dea7cd368f0fe4b (patch)
treedf18fb142a2589015fc83d1fd43ff6e3ad189798 /FORK.md
parentcc86d6114291305fcea1ed8b0904c8be0e633767 (diff)
mcp: pi-chrome-mcp joins the fork as sz-chrome-remote-extension, loading the fork's own extension
Diffstat (limited to 'FORK.md')
-rw-r--r--FORK.md42
1 files changed, 31 insertions, 11 deletions
diff --git a/FORK.md b/FORK.md
index cf10ecc..ad74b5c 100644
--- a/FORK.md
+++ b/FORK.md
@@ -1,14 +1,20 @@
# Fork notes
-A fork of [tianrendong/pi-chrome](https://github.com/tianrendong/pi-chrome) that
-lets pi on **other machines** drive one signed-in browser. It adds a remote mode
-to the pi extension and a standalone broker for the browser's host. Without
-`PI_CHROME_REMOTE` set, it behaves exactly like upstream.
-
-Not published to npm and not proposed upstream.
+**sz-chrome-remote-extension**: driving a signed-in browser through its
+companion extension, from other machines. A fork of
+[tianrendong/pi-chrome](https://github.com/tianrendong/pi-chrome) that lets pi
+on **other machines** drive one signed-in browser. It adds a remote mode to the
+pi extension, a standalone broker for the browser's host, and `mcp/`, an MCP
+server for the same tools. Without `PI_CHROME_REMOTE` set, the pi extension
+behaves exactly like upstream. Until 2026-10 this repository was named
+pi-chrome.
+
+Not published to npm and not proposed upstream. The package keeps upstream's
+name, `pi-chrome`, in `package.json`: renaming it would conflict on every
+rebase.
```
-origin https://git.soarez.net/sz/pi-chrome.git
+origin https://git.soarez.net/sz/sz-chrome-remote-extension.git
upstream https://github.com/tianrendong/pi-chrome.git
```
@@ -89,9 +95,22 @@ switching its tabs.
## MCP clients
-[pi-chrome-mcp](https://git.soarez.net/sz/pi-chrome-mcp.git) serves these
-tools to Claude Code, Claude Desktop and other MCP clients. Point its
-`PI_CHROME_PATH` at this fork's `index.ts` to use remote mode.
+`mcp/` serves these tools to Claude Code, Claude Desktop and other MCP clients;
+its README has the setup. It loads the pi extension from this repository,
+`../extensions/chrome-profile-bridge/index.ts`, so the server, the extension and
+the broker always come from one commit.
+
+It was its own repository, pi-chrome-mcp, from 2026-09-25 (when it moved out of
+this fork to stand alone, loading pi-chrome from npm) until 2026-10, when it
+came back to keep everything that drives the browser through its extension in
+one place. Its commits were replayed here with `git am --directory=mcp`, linear,
+so they rebase like any fork commit. It touches no upstream file, so it never
+conflicts. It keeps its own `package.json` and lockfile; `mcp/run.sh` installs
+them into `mcp/node_modules`.
+
+Run it from a checkout of its own, not from pi's package clone
+(`~/.pi/agent/git/...`): pi runs `git clean -fdx` there whenever it updates the
+package, which deletes `mcp/node_modules`.
## Setup
@@ -121,7 +140,8 @@ git push --force-with-lease origin master
Then update the broker's checkout, restart it, and reload the extension in the
browser. `/chrome doctor` reports a version mismatch until you do.
-Expect conflicts in the places marked `FORK:` in `index.ts`: the bridge class's
+Commits under `broker/` and `mcp/` never conflict. Expect conflicts in the
+places marked `FORK:` in `index.ts`: the bridge class's
bind, forward and status code (including `connectionStatus`, whose `/status`
fetch carries the token), `session_start`, the remote prompt-section handler
just ahead of upstream's primer, doctor, and `chrome_upload_file`. If upstream changes the extension↔bridge HTTP contract