Skip to content

installer: drop Playwright, ship a self-contained CLI#51

Merged
Anton-Horn merged 1 commit into
mainfrom
installer-drop-playwright
Jun 4, 2026
Merged

installer: drop Playwright, ship a self-contained CLI#51
Anton-Horn merged 1 commit into
mainfrom
installer-drop-playwright

Conversation

@Anton-Horn
Copy link
Copy Markdown
Contributor

The companion stopped using Playwright in #49 (it drives Chrome via the extension), but server/routes/install.ts still ran bun add playwright + a Chromium download into ~/.zero on 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_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. The installer is now download-binary + PATH only. Closing instructions updated to the real flow: login → browser setup → browser connect.
  • build.ts — bundle ws into the CLI instead of leaving it external, so the shipped binary needs no node_modules at all.

Verified

  • Bundled ws runs a real WebSocket server (server + client round-trip) with no node_modules present — confirmed in isolation.
  • CLI bundles and tsc --noEmit clean; server typecheck clean for install.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

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.
@Anton-Horn Anton-Horn merged commit a10282f into main Jun 4, 2026
1 check passed
@Anton-Horn Anton-Horn deleted the installer-drop-playwright branch June 4, 2026 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant