Installation β
Get Piggy up and running in minutes.
Requirements β
- Bun β₯ 1.0 installed
- Nothing Browser binary placed in your project root
Step 1: Install the Package β
bash
bun add nothing-browseryou can also use npm β
Step 2: Download the Binary β
Download the Nothing Browser binary for your platform from GitHub Releases.
Which Binary? β
| Binary | Use Case | Visibility |
|---|---|---|
nothing-browser-headless | Automated scraping, CI/CD, servers | No window (invisible) |
nothing-browser-headful | Debugging, sites that detect headless | Visible window |
For most scraping tasks, use headless.
Platform Downloads β
| Platform | Headless | Headful |
|---|---|---|
| Linux (x86_64) | nothing-browser-headless-*-linux-x86_64.tar.gz | nothing-browser-headful-*-linux-x86_64.tar.gz |
| Windows (x64) | nothing-browser-headless-*-windows-x64.zip | nothing-browser-headful-*-windows-x64.zip |
| macOS | nothing-browser-headless-*-macos.tar.gz | nothing-browser-headful-*-macos.tar.gz |
Extract and Place β
Linux / macOS:
bash
# Extract
tar -xzf nothing-browser-headless-*-linux-x86_64.tar.gz
# Make executable
chmod +x nothing-browser-headless
# Your project structure should look like:
# your-project/
# βββ nothing-browser-headless # β binary here
# βββ node_modules/
# βββ package.json
# βββ your-script.tsWindows:
powershell
# Extract the zip file
# Place nothing-browser-headless.exe in your project rootStep 3: Verify Installation β
Create a test file test.ts:
ts
import piggy from "nothing-browser";
// This will fail if binary is missing or not executable
await piggy.launch({ mode: "tab", binary: "headless" });
console.log("β
Piggy is working!");
await piggy.close();Run it:
bash
bun run test.tsYou should see:
[info] [piggy] launched β tab mode: "tab", binary: "headless"
[success] Connected to Piggy server
β
Piggy is working!
[info] [piggy] closedBinary Detection β
Piggy automatically looks for the binary in this order:
- Current working directory (
./nothing-browser-headless) ./bin/nothing-browser-headless- System PATH
You can also check which binary would be used without launching:
ts
import piggy from "nothing-browser";
const binary = piggy.detect("headless");
console.log("Using:", binary); // "/path/to/nothing-browser-headless"Troubleshooting β
"Binary not found" β
Error:
Error: No nothing-browser-headless binary found in current directorySolution:
- Ensure the binary is in your project root
- Run
ls -lato verify it exists - On Linux/macOS, ensure it's executable:
chmod +x nothing-browser-headless
"Connection refused" β
Error:
Error: connect ECONNREFUSED /tmp/piggySolution:
- The binary may have crashed
- Kill any existing processes:
pkill -f nothing-browser - Try running with
headfulmode to see errors:binary: "headful"
"Missing dependencies" (Linux) β
Error:
error while loading shared libraries: libQt6WebEngineCore.so.6Solution:
bash
# Debian/Ubuntu
sudo apt install libqt6webenginewidgets6 libqt6webenginecore6
# Arch
sudo pacman -S qt6-webengine
# Fedora
sudo dnf install qt6-qtwebengineNext Steps β
- Launch & Register β Configure and start the browser
- Quick Start β Your first scraper in 5 minutes
- exposeFunction (RPC) β Call Node.js from browser
Nothing Ecosystem Β· Ernest Tech House Β· Kenya Β· 2026