installer: drop Playwright, ship a self-contained CLI#51
Merged
Conversation
The companion stopped using Playwright two PRs ago (it drives Chrome via the extension now), but the install.sh generator still ran `bun add playwright` (plus a Chromium download) into ~/.zero on every install — pure dead weight. - install.ts: remove the Playwright/Chromium/node_modules step. The CLI bundle is self-contained and the companion installs its own extension via `zero browser setup`, so there's nothing extra to fetch. Installer is now download-binary + PATH only. Closing hint updated to login → setup → connect. - build.ts: bundle `ws` into the CLI instead of leaving it external, so the shipped binary needs no node_modules at all. Verified the bundled ws runs a WebSocket server with no node_modules present.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The companion stopped using Playwright in #49 (it drives Chrome via the extension), but
server/routes/install.tsstill ranbun add playwright+ a Chromium download into~/.zeroon every install — pure dead weight that's why fresh installs still printed "Installing Playwright for the local-browser companion…".Changes
install.ts— removed the Playwright / Chromium /node_modulesstep. The CLI bundle is self-contained, and the companion installs its own extension viazero browser setup, so there's nothing extra to fetch. The installer is now download-binary + PATH only. Closing instructions updated to the real flow:login → browser setup → browser connect.build.ts— bundlewsinto the CLI instead of leaving itexternal, so the shipped binary needs nonode_modulesat all.Verified
wsruns a real WebSocket server (server + client round-trip) with nonode_modulespresent — confirmed in isolation.tsc --noEmitclean;servertypecheck clean forinstall.ts.Note
Server-side: the installer and CLI binary are served from the deployed server's build, so this takes effect on the next server redeploy.
🤖 Generated with Claude Code