Documentation

Get up and running.

Everything you need to install PearBrowser, understand its address schemes, and use search, names, Nostr, and publishing. PearBrowser is a Pear / Bare app — there's no web bundle to host; one install fetches the matching native runtime.

Install & launch

PearBrowser runs on the Pear runtime. Install Pear once, then launch the browser by key — Pear downloads the right native build for macOS, Windows, or Linux on first run.

# 1. install the Pear runtime (one time)
npm i -g pear

# 2. launch PearBrowser by its key
pear run pear://tco5k7h38uoxatedp1wongdbhjxow1x7jiwm3t1i9cujbebhsbty

There are no accounts and no installer servers — the app is itself a Hyperdrive, fetched peer-to-peer. You can also open the P2P edition of this very website inside the browser at hyper://1868916a7a282ff0f211b11b536e9642828c32d3a817a254e1ef7e602709e25d/.

Address schemes

The URL bar understands more than https://:

  • hyper://<key>/ — a Hyperdrive site or app, addressed by its 64-hex public key and served by whoever is seeding it.
  • pear://<key> — a full Pear runtime app (it launches in its own window).
  • pearname://<name> — a memorable name resolved through the naming layer (below). Typing a bare word like keet triggers the same resolver.

Whenever a name resolves, a small provenance chip appears next to the address showing how it resolved (your saved name, the registry, a contact, or the curated floor) — the address never lies about where it came from.

Your identity

On first run PearBrowser generates a local identity from a BIP-39 12-word phrase. That phrase is your whole identity — back it up (Settings → “Moving to a new device?”) and you can restore on any machine.

Per-app sub-keys

Every site you grant a sign-in gets its own derived appPubkey — sites never see your root key, and Settings → Connected Apps lists and revokes each grant individually.

P2P names Experimental

Enable “Names” in Settings → Experimental, then claim a name in Settings → Name registry by pairing it with a drive key. After that:

  • Type the name (or pearname://name) in the URL bar and it resolves to your drive.
  • The resolver checks, in order: your private petname → your own registry claims → names your trusted contacts claimed → a curated floor.
  • Claims are owner-signed and durable across your devices; confusable look-alikes (e.g. a Cyrillic раypal) are rejected.

Use the Copy button on any claim to share it as pearname://yourname.

Nostr identity & feed Phase 3

Settings → Nostr identity shows your npub (seed-derived, stable across devices). Click “Link (attested)” to cross-curve-bind your Nostr key to your Pear root — a mutual attestation, revocable at any time.

Posting & reading

In Settings → Nostr feed, compose a note and it's signed with your Nostr key and stored in your local event log. Toggle “Include trusted contacts” to also see notes a verified contact authored with their attested key, replicated peer-to-peer. Every contact note is author-checked against the root you vouched for; there are no public relay servers in the loop yet.

Trusted contacts

The trust graph behind search, names, and your feed is your contacts. Add one from a signed invite URL — in the Library's “Trusted peers” panel, copy your own pear://contact… invite and paste a friend's. The invite carries their pubkey + name + signature + binding key, and is rejected if the signature doesn't verify. One verified contact then powers all the federation.

Publish a site

PearBrowser includes a site builder. Create a site, publish it, and it becomes a Hyperdrive addressed by key. Ask HiveRelay to pin it and it stays reachable 24/7 even when your machine is closed — that's how this website is served.

  • Build & publish from the Sites tab.
  • Your site is reachable at hyper://<your-key>/ the moment a peer (or HiveRelay) is seeding it.
  • Apps are the same shape — a Hyperdrive or a Pear app — so anything you build is discoverable in the catalogue.

Privacy & relays

PearBrowser is P2P-first: the proxy tries to fetch directly from peers and only falls back to a HiveRelay HTTP gateway after a short grace window, so relays don't see fetches peers could have served. HiveRelay is a replication point, not an authority — every signed record it serves is re-verified client-side, and it can never forge content. No accounts, no DNS, no tracking servers.

Troubleshooting

“Could not reach backend”

The Pear runtime didn't finish handing off. The most common cause is a stale partial download in Pear's cache — clear it and relaunch the pear run command.

Experimental features are off

Naming, device sync, and some Nostr surfaces are gated behind toggles in Settings → Experimental. They're off by default and clearly scoped — turn them on there.

Still stuck?

The source, releases, and issue tracker live on GitHub.