π Version Compatibility β
New features are added to the binary first, then the TypeScript library. If a feature doesn't work, update your binary β the library may be ahead.
Quick Reference β
| Feature | Minimum Binary | Minimum Library |
|---|---|---|
| HTTP Mode + Remote Deployment | v0.1.12 | v0.0.18 |
| Proxy Support (all commands) | v0.1.12 | v0.0.18 |
| Session Persistence (ws.json, pings.json) | v0.1.12 | v0.0.18 |
| Identity/Profile System | v0.1.12 | v0.0.18 |
| Cookies Hot Reload | v0.1.12 | v0.0.18 |
| All features before these | v0.1.0 | v0.0.1 |
β οΈ Important: You Don't Have to Update β
If your current code works and you don't need new features, just don't update.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β β
Your code works? Keep what you have. β
β β
β You can: β
β β’ Keep old binary (v0.1.0) β
β β’ Keep old library (v0.0.1) β
β β’ Update library but never use new API methods β
β β’ Mix old binary + new library (old features still work) β
β β
β You only NEED to update if you want NEW features. β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββSafe Combinations β
| Binary | Library | New Features Work? | Old Features Work? |
|---|---|---|---|
| v0.1.0 | v0.0.1 | β | β |
| v0.1.0 | v0.0.18 | β (new APIs missing in binary) | β |
| v0.1.12 | v0.0.1 | β (library too old) | β |
| v0.1.12 | v0.0.18 | β | β |
Rule: Old features never break. The library and binary are backward compatible.
What Happens If You Update Library But Not Binary β
// You update library to v0.0.18 but binary is still v0.1.0
import piggy from "nothing-browser";
// Old features β still work perfectly β
await piggy.launch();
await piggy.register("site", "https://example.com");
await piggy.site.navigate();
await piggy.site.click("#button");
// New features β won't work (binary doesn't understand the commands) β
await piggy.proxy.load("./proxies.txt"); // Error: command not recognized
await piggy.sessionWsSave(true); // Error: command not recognized
await piggy.connect({ host, key }); // Error: HTTP mode not supportedThe error won't crash your existing code. It only appears if you call new methods.
Recommendation β
| Your Situation | What to Do |
|---|---|
| Code works, no new features needed | Do nothing. Keep your current versions. |
| Code works, want new features eventually | Update both binary and library together |
| Production system, stability critical | Lock versions. Don't update. |
| Testing new features | Use separate directory with new binary |
Locking Versions (For Stability) β
# package.json β pin exact versions
{
"dependencies": {
"nothing-browser": "0.0.1" # not ^0.0.1
}
}
# Keep binary v0.1.0 in your project
# Don't download new binaryHow to Check Your Versions β
Binary Version β
./nothing-browser-headless --versionOr check the file name you downloaded:
nothing-browser-headless-v0.1.12-linux-x86_64.tar.gz
Library Version β
# Bun
bun list | grep nothing-browser
# npm
npm list nothing-browser
# Direct from package.json
cat package.json | grep nothing-browserCheck in Code β
import piggy from "nothing-browser";
console.log(piggy.version); // "0.0.18"Update Instructions (Only If You Need New Features) β
Update Binary β
Option 1: Download from GitHub Releases
# Go to releases page
# https://github.com/BunElysiaReact/nothing-browser/releases
# Download latest for your platform
wget https://github.com/BunElysiaReact/nothing-browser/releases/download/v0.1.12/nothing-browser-headless-linux-x86_64.tar.gz
# Extract
tar -xzf nothing-browser-headless-linux-x86_64.tar.gz
# Make executable
chmod +x nothing-browser-headlessOption 2: Using curl (Linux)
LATEST="v0.1.12"
curl -L "https://github.com/BunElysiaReact/nothing-browser/releases/download/${LATEST}/nothing-browser-headless-linux-x86_64.tar.gz" | tar -xz
chmod +x nothing-browser-headlessUpdate Library β
# Bun
bun update nothing-browser
# npm
npm update nothing-browser
# yarn
yarn upgrade nothing-browserFeature Availability Rule β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β NEW FEATURES ARE ADDED TO THE BINARY FIRST β
β β
β Binary v0.1.12 βββ¬ββ Library v0.0.18 β
(features work) β
β β β
β βββ Library v0.0.17 β (features fail) β
β β
β The library waits for the binary to implement the socket β
β command before exposing the feature. β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββIf a feature doesn't work:
- Check your binary version first
- Update binary to latest
- Then update library if needed
If you don't care about the feature: Don't update. Keep working.
Common Errors & Solutions β
"command not recognized" β
Error:
error: command "proxy.load" not recognizedCause: Binary version is too old (pre-v0.1.12)
Fix (if you need the feature):
# Update binary to v0.1.12+
./nothing-browser-headless --version # Check current
# Download latest, replace binaryFix (if you don't need the feature):
# Just don't use that command. Your old code still works.
# Ignore the error if you accidentally called it."Cannot find module 'nothing-browser'" β
Error:
Error: Cannot find module 'nothing-browser'Cause: Library not installed
Fix:
bun add nothing-browserConnection works but proxy commands fail β
Cause: Binary is old, library is new
Fix (if you need proxy): Update binary only β library is fine Fix (if you don't need proxy): Do nothing. Your old code works.
Version History β
v0.1.12 (Binary) / v0.0.18 (Library) β Current β
New Features:
- HTTP mode + remote deployment
- Full proxy system (load, fetch, set, test, rotate, save)
- Session persistence (ws.json, pings.json opt-in)
- Identity/profile system (identity.json, profile.json)
- Cookies hot reload
- OpenVPN support
v0.1.0 (Binary) / v0.0.1 (Library) β Initial Release β
Features:
- Socket mode only
- Basic navigation, click, type, evaluate
- exposeFunction (RPC)
- Request interception
- Network capture
- Session export/import
Keeping Everything in Sync (Only If You Want New Features) β
Development Workflow β
# 1. Binary team adds new socket command
# 2. Binary released as v0.1.13
# 3. Library team implements client method
# 4. Library released as v0.0.19
# 5. Users who want new features update both
bun update nothing-browser
# Download latest binary from releasesRecommended Setup for Production (Stability First) β
# Lock your versions
# Don't update unless you need to
./nothing-browser-headless --version # v0.1.0 (stays here)
bun list | grep nothing-browser # v0.0.1 (stays here)
# Your code will work forever with these versionsRecommended Setup for Development (Want New Features) β
# Keep both at latest
./nothing-browser-headless --version # v0.1.12
bun list | grep nothing-browser # v0.0.18
# Get new features as they comeCI/CD Pipeline Check (Optional) β
// Add version check to your scripts (only if you need new features)
import piggy from "nothing-browser";
const requiredBinaryVersion = "0.1.12";
const requiredLibVersion = "0.0.18";
// Check library version
if (piggy.version < requiredLibVersion) {
console.warn(`β οΈ Library outdated: ${piggy.version} < ${requiredLibVersion}`);
}
// You can also check binary version via command
// (implement in your deployment script)Feature Matrix β
| Feature | Binary v0.1.0 | Binary v0.1.12+ |
|---|---|---|
| Socket mode | β | β |
| HTTP mode | β | β |
| Proxy load/fetch | β | β |
| Proxy test/rotate | β | β |
| Proxy OVPN | β | β |
| ws.json persistence | β | β |
| pings.json persistence | β | β |
| identity.json | β | β |
| profile.json | β | β |
| Cookies hot reload | β | β |
| sessionReload() | β | β |
The Golden Rule β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β π IF YOUR CODE WORKS, DON'T UPDATE. β
β β
β New features are OPTIONAL. β
β Old features stay supported. β
β No forced updates. Ever. β
β β
β Update library β old APIs still work. β
β Keep old binary β old features still work. β
β Never use new APIs β never need new binary. β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββGetting Help β
Version-related issues:
- Check your versions first
- Decide if you actually need the new feature
- If you don't need it, keep your current versions
- If you need it, update both binary and library
- If problem persists, open GitHub issue with:
- Binary version:
./nothing-browser-headless --version - Library version:
bun list | grep nothing-browser - OS:
uname -a - Error message
- Whether you actually need the new feature
- Binary version:
Links:
Next Steps β
- Remote Deployment β Run Piggy on a VPS (requires v0.1.12+)
- Proxy Support β Route traffic through proxies (requires v0.1.12+)
- Session Persistence β Save WebSocket frames and pings (requires v0.1.12+)
Nothing Ecosystem Β· Ernest Tech House Β· Kenya Β· 2026