LogoLogo
  • Pear by Holepunch
  • Pear runtime
    • Command-Line-Interface (CLI)
    • Application-Programming-Interface (API)
    • Application Configuration
  • Bare reference
    • Overview
    • Application-Programming-Interface (API)
    • Node.js Compatibility with Bare
    • Bare Modules
  • Guides
    • Getting Started
    • Starting a Pear Desktop Project
    • Making a Pear Desktop Application
    • Starting a Pear Terminal Project
    • Making a Pear Terminal Application
    • Sharing a Pear Application
    • Marking a Release
    • Making a Bare Mobile Application
    • Debugging a Pear Terminal Application
    • Creating a Pear Init Template
  • Building blocks
    • Hypercore
    • Hyperbee
    • Hyperdrive
    • Autobase
    • HyperDHT
    • Hyperswarm
  • How-tos
    • Connect two peers
    • Connect many peers
    • Replicate & persist
    • Manage multiple Hypercores
    • Share append-only databases
    • Create a p2p filesystem
  • Helpers
    • Corestore
    • Localdrive
    • Mirrordrive
    • Secretstream
    • Compact encoding
    • Protomux
  • Tools
    • Hypershell
    • Hypertele
    • Hyperbeam
    • Hyperssh
    • Drives
  • Apps
    • Keet
  • Examples
    • Bare on Mobile
    • React App using Pear
Powered by GitBook

Copyright © 2024 - 2025 Holepunch, S.A. de C.V. All rights reserved.

On this page
  • Installation
  • Basic usage
  • Setup
  • Known peers
  • Multiple keys
  1. Tools

Hypershell

Last updated 1 year ago

A command-line interface for generating and connecting to peer-to-peer, end-to-end encrypted shells.

Installation

Install with :

npm install -g hypershell

Basic usage

Create a P2P shell server.

hypershell-server [options]

options include:

Options
Description
Default

-f <filename>

Filename of the server seed key.

~/.hypershell/peer

--firewall <filename>

List of allowed public keys.

~/.hypershell/authorized_peers

Connect to a P2P shell.

hypershell [options] <server public key>

options include:

Options
Description
Default

-f <filename>

Filename of the client seed key.

~/.hypershell/peer

Create keys of type ed25519 for use by the holepunch-protocol.

hypershell-keygen [options]

options include:

Options
Description

-f <filename>

Filename of the seed key file.

-c <comment>

Provides a new comment.

Setup

First, create a key with the default filename:

hypershell-keygen

Client

Now the server can be connected to (providing the public key has been allowed):

hypershell <server public key>

Server

To create a server:

hypershell-server

~/.hypershell/firewall will be automatically created as an empty file. That means all connections are denied by default.

Public keys can be added in real time by adding them to the firewall list while hypershell-server is running.

Known peers

There will be a file named ~/.hypershell/known_peers.

Add named peers to the file, for example:

# <name> <public key>
home cdb7b7774c3d90547ce2038b51367dc4c96c42abf7c2e794bb5eb036ec7793cd 

Utilize hypershell home to eliminate the need for constantly providing the full public key.

Multiple keys

Multiple keys are required to have multiple servers.

Generate another key:

hypershell-keygen -f ~/.hypershell/my-server

Create a new shell server:

hypershell-server -f ~/.hypershell/my-server --firewall ~/.hypershell/my-server-firewall

The client also accepts -f if required.

GitHub (Hypershell)
npm
Installation
Basic usage