Daemon fails to start from npm-installed package because `tsx` is missing

Author: f1d094Created Sep 18, 2026Updated Sep 18, 2026
Labelsbug

Before submitting

  • I searched existing issues for duplicates.
  • I ran browser-harness --doctor and read the output.
  • I read the troubleshooting section of install.md.
  • This is a reproducible bug in browser-harness — not a question, feature request, or cloud.browser-use.com issue.

Summary

Daemon fails to start from npm-installed package because tsx is missing

Nothing works

Expected behavior

A normal npm installation should include everything required to start the daemon, without requiring a manual npm install --no-save tsx.

It would be great if tsx were included as a production dependency, or if the published package contained the necessary runtime artifact so the daemon can start without relying on npx to download a missing dependency.

Repro

Problem

After installing pi-browser-harness from npm, /browser-setup fails because the browser harness daemon never starts. Pi reports:

socket not found

No harness daemon socket is created.

The CDP connection itself is working correctly. The browser WebSocket obtained from:

bash
curl http://127.0.0.1:9222/json/version

also works successfully when tested directly.

The issue appears to be that the published 0.11.0 package does not have tsx available where the daemon startup code expects it. In a locked-down/container environment, the fallback to npx tsx cannot obtain it, so the daemon exits before creating its IPC socket.

Workaround

Installing tsx into the installed package fixes the daemon startup:

bash
cd ~/.pi/agent/npm/node_modules/pi-browser-harness
npm install --no-save tsx

After doing this, /browser-setup successfully starts the daemon and /browser-status reports:

Browser:  Connected

with the existing Chromium CDP session.

Environment

Environment

  • pi-browser-harness: 0.11.0

  • Installed via pi install npm:pi-browser-harness

  • Linux/container environment

  • Connecting to an existing Chromium instance via BU_CDP_WS

  • Chromium is listening on port 9222

Source: browser-use/browser-harness