npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

pal-explorer-cli

v0.4.71

Published

P2P encrypted file sharing CLI — share files directly with friends, not with the cloud

Readme

Pal Explorer (pal)

npm license node

Peer-to-peer encrypted file sharing. No cloud. No middleman. Pure P2P.

Palexplorer lets you share files directly with friends using P2P protocols. Files are encrypted before leaving your device, transferred via BitTorrent/WebTorrent, and only decryptable by intended recipients. The core is 100% anonymous and server-free — discovery, handles, and billing are optional extensions.

All features free during beta. Download at palexplorer.com.

Quick Start

# Install CLI globally
npm install -g pal-explorer-cli

# Create your identity (opens setup wizard in GUI, or use CLI)
pal init "YourName"
# Save the 24-word recovery phrase!

# Share a folder with a friend
pal share ~/Documents --visibility private --with @alice

# Start seeding
pal serve

# Download from a magnet link
pal download "magnet:?xt=urn:btih:..."

Adding Friends

pal invite --qr              # Generate invite link + QR code
pal add @alice               # Add by @handle
pal add pal://eyJ...         # Add by invite link
pal nearby --add             # Auto-discover on LAN

Architecture

┌─────────────────────────────────────────────────────┐
│                    CORE (pure P2P)                   │
│                                                      │
│  BitTorrent / WebTorrent / DHT / mDNS / WebRTC       │
│  Ed25519 identity · XChaCha20-Poly1305 encryption    │
│  PAL/1.2 protocol · TCP signaling · BEP44 DHT        │
│                                                      │
│  100% anonymous · no servers required · offline-ok   │
└─────────────────────────────────────────────────────┘
          │ optional extensions register transports
          ▼
┌─────────────────────────────────────────────────────┐
│              EXTENSIONS (optional features)          │
│                                                      │
│  discovery     @handle resolution, server registry   │
│  auth-oauth    Google / GitHub login                 │
│  auth-email    Email OTP verification                │
│  vfs           Virtual filesystem / WebDAV           │
│  media-stream  pal-stream:// protocol                │
│  web-dashboard Local web UI (localhost only)         │
│  analytics     Opt-in PostHog usage metrics          │
│  + 25 more     Pro / Enterprise tier extensions      │
└─────────────────────────────────────────────────────┘
          │
          ▼
┌─────────────────────────────────────────────────────┐
│           DISCOVERY INFRASTRUCTURE (optional)        │
│                                                      │
│  A1 server  — handle registration (Oracle ADB)       │
│  discovery-1 / discovery-2 — handle resolution       │
│                  (LevelDB read cache, IP-only)        │
│                                                      │
│  Never sees your files, private keys, or traffic     │
└─────────────────────────────────────────────────────┘

Key principle: Core P2P works with zero servers. Discovery/handles/billing are extensions that enhance the experience — they are never required for file transfer.

Onboarding

The desktop app guides new users through a 4-path setup wizard:

| Path | Description | |:-----|:-----------| | Create @handle (Recommended) | Register a human-readable handle on the discovery network. Enables pal search, account recovery, cross-device sync. | | Continue without account | Fully anonymous local identity. No server contact. Share via direct link or LAN. | | Recover existing identity | Enter 24-word BIP-39 mnemonic to restore a previous identity. | | Guest login | Log in to an existing account using recovery credentials. |

Anonymous users can upgrade to a @handle anytime in Settings.

Features

File Sharing

  • Share files, folders, or entire drives via BitTorrent/WebTorrent
  • Private shares with per-recipient E2EE (XChaCha20-Poly1305)
  • Public shares with global magnet links
  • Web share links with expiry and download limits
  • All transfers: pure BitTorrent — no HTTP transfer path

Sync

  • Push/pull directory sync between pals
  • SHA-256 manifest-based delta sync
  • Watch mode for automatic sync on file changes
  • Conflict detection

Chat

  • Real-time encrypted messaging between pals
  • Chat history with conversation list
  • AI assistant powered by Ollama (local), Claude, OpenAI, or Gemini

Groups

  • Create named groups and organize pals
  • Share with entire groups (--with-group)
  • Broadcast messages to all group members

Discovery & Presence

  • LAN peer discovery via mDNS (zero configuration)
  • @handle system — find pals by name (@alice)
  • DHT-based decentralized peer discovery
  • Federated handles ([email protected])
  • Online/offline presence status

Security

  • Ed25519 identities — private key stored in OS credential manager, never transmitted
  • XChaCha20-Poly1305 authenticated encryption for private shares
  • Per-recipient key wrapping — each recipient gets a uniquely encrypted share key
  • Key-based revocation — removing a recipient deletes their wrapped key copy; the file itself is not re-encrypted (use pal shares rotate to re-encrypt if needed)
  • BIP-39 recovery — 24-word mnemonic for identity backup
  • Zero-knowledge server — discovery server never sees your private key or files
  • Signed server responses — clients verify server authenticity
  • Encrypted inbox — message payloads E2EE
  • PIN lock — protect the desktop app with a PIN code
  • Pure P2P transfers — no HTTP file transfer path in core

CLI

The pal CLI includes 100+ subcommands.

Key Commands

pal init <name>                    # Create identity
pal register <handle>              # Register on discovery network
pal share <path> -v private -w @bob  # Share encrypted with a pal
pal serve                          # Start seeding
pal download <magnet>              # Download from magnet link
pal add @alice                     # Add a pal by @handle
pal sync push ./project @alice     # Push sync to a pal
pal status                         # System health dashboard
pal ext list                       # List available extensions

Global Flags

| Flag | Description | |:---|:---| | --json | Output as JSON | | --verbose | Verbose logging | | --quiet | Suppress non-essential output |

Run pal --help or pal <command> --help for full usage.

Desktop App

Download the desktop app at palexplorer.com/download.

Features: 4-path setup wizard, dark/light themes, system tray, drag-and-drop sharing, P2P chat with AI assistant, PIN lock, media streaming (pal-stream://), extensions panel, file explorer, command palette (Ctrl+K), workspaces, inbox, and identity management.

Extensions

32 official extensions in three tiers. 14 are bundled with the app (free). See palexplorer-extensions for the full catalog.

pal ext list                                # List all extensions
pal ext enable @palexplorer/vfs             # Enable an extension
pal ext config @palexplorer/vfs port 1900   # Configure

Bundled Free Extensions

| Extension | Description | |-----------|-------------| | web-dashboard | Local web UI on localhost:7575 | | discovery | @handle resolution and server registry | | vfs | Virtual filesystem / WebDAV mount | | auth-oauth | Google / GitHub OAuth login | | auth-email | Email OTP verification | | analytics | Opt-in usage metrics (PostHog) | | email-notifications | Share event alerts | | explorer-integration | OS file explorer context menus | | media-streaming | pal-stream:// protocol | | transfer-analytics | Per-transfer analytics | | chat | P2P encrypted messaging | | groups | Group management and broadcast | | sync | Directory sync | | backup-cloud | Encrypted S3/GCS/Azure backup |

AI Features

Built-in AI support across all providers.

| Provider | Key required | Privacy | |:---------|:-------------|:--------| | Ollama (local) | No | Files never leave your device | | Claude (Anthropic) | Yes | Query text only | | OpenAI | Yes | Query text only | | Gemini (Google) | Yes | Query text only |

Quick setup (local/free):

# Install Ollama from https://ollama.com, then:
ollama pull llama3.2
pal ai config set --provider ollama

Features:

  • Natural language CLIpal ai "share my documents with alice for 7 days"
  • AI chat assistant — "AI Assistant" in the GUI Chat page
  • AI search — natural language file search (Bot icon in Search)

Configuration

| Key | Default | Description | |:---|:---|:---| | port | auto | Local seeder port | | storage_path | ./downloads | Default download directory | | max_connections | 50 | Max P2P connections | | bandwidth_cap | 0 | Upload cap in KB/s (0 = unlimited) |

Config file: ~/.config/palexplorer-cli/config.json

Project Structure

bin/           CLI entry point (pal)
lib/
  commands/    63 command files, 100+ subcommands
  core/        33 modules: identity, shares, sync, discovery, permissions, extensions
  crypto/      E2EE: XChaCha20-Poly1305, Ed25519, Argon2id, NaCl
  protocol/    PAL/1.0 (envelope, router, negotiation, sync, policy)
  utils/       Config, logger, torrent helpers
gui/           Electron main (main.cjs) + React/Vite renderer
  src/
    components/  React pages + components
    store/       Zustand state
extensions/    Bundled extensions (@palexplorer/*)
web/           Local web dashboard (served on localhost:7575)
test/          1800+ tests (node --test runner)
  commands/    CLI handler tests
  core/        Core module tests
  crypto/      Encryption tests
  gui/         GUI integration tests
  e2e/         Playwright GUI simulation (Electron)
  stress/      Stress & edge cases
docs/          Architecture, protocol, security, roadmap docs

Testing

npm test              # Full test suite (~1811 tests)
npm run test:e2e      # Playwright E2E GUI tests

Build

node scripts/build.js         # Build for current platform
npm run build:win             # Windows NSIS installer
npm run build:mac             # macOS DMG
npm run build:linux           # Linux AppImage + deb

Builds are published to OCI Object Storage and announced via palexplorer-server auto-update.

Infrastructure

| Server | IP | Role | |:-------|:---|:-----| | OCI A1 | 141.147.60.209 | Handle registration, build hosting, auto-update | | discovery-1 | 92.5.46.86 | Handle resolution (LevelDB cache) | | discovery-2 | 92.5.36.3 | Handle resolution (LevelDB cache) | | Oracle ADB | Frankfurt | Handle uniqueness authority (planned) |

Discovery servers are IP-only (no DNS). Clients configure them via settings.discovery_servers or PAL_DISCOVERY_URL env var.

Links

License

Proprietary. All rights reserved. See palexplorer.com/license.