New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

hypershell-app

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hypershell-app

HyperShell is a self-hosted browser workspace for SSH operations. It combines a WebSocket terminal, host and credential management, SFTP, remote editing, snippets, port forwards, Docker tools, audit logs, and settings into one local-first app.

latest
npmnpm
Version
0.2.3
Version published
Maintainers
1
Created
Source

HyperShell

HyperShell is a self-hosted browser workspace for SSH operations. It combines a WebSocket terminal, host and credential management, SFTP, remote editing, snippets, port forwards, Docker tools, audit logs, and settings into one local-first app.

The default runtime is simple: a Rust server listens on localhost:3100, serves the built React app, and brokers SSH/SFTP/tmux/Docker work from your machine.

What You Get

AreaCapabilities
Terminalxterm.js 6, tabs, split panes, tmux attach/detach, session recording, sharing, search, inline images, link detection
HostsSSH host inventory, tags, groups, favorites, credential vault, host-key acceptance, connection tests
FilesDual-pane SFTP, upload/download, cross-host transfers, preview, chmod, rename, delete, resumable upload checks
EditorCodeMirror 6, remote file tabs, syntax highlighting, status bar, save and conflict handling
NetworkingLocal, remote, and dynamic port forwards with lifecycle cleanup
DockerRemote container list, start/stop/restart, logs, exec shells
AutomationReusable snippets with variable substitution and multi-host execution
OperationsAudit log, device metrics, notification webhooks, PWA offline shell
SecurityAge-encrypted credential storage, RBAC checks, passkeys, magic links, step-up gates, rate limiting

Quick Start

Prerequisites

ToolVersionWhy
Rust1.95+Builds and tests the Axum server
Node.js22+Runs the web toolchain and CLI
pnpm10+Installs the workspace
DockerCurrentOptional SSH/tmux test fixture

Install

git clone <repo-url>
cd hypershell
pnpm install

Run In Development

Start the backend and frontend in separate terminals:

cargo run --manifest-path apps/server/Cargo.toml
pnpm --filter web dev

Open http://localhost:3101. Vite proxies /api and /ws to the Rust server on localhost:3100.

Optional SSH Fixture

The integration fixture starts an OpenSSH container on localhost:2222 with tmux installed.

docker compose up -d openssh-server
./scripts/verify-ssh-test-server.sh

Fixture credentials:

host: localhost
port: 2222
user: testuser
pass: testpass

CLI

The npm package is named hypershell-app and exposes a hypershell binary.

# Start the local server, serve the built frontend, and open the browser.
npx hypershell-app

# Start without opening a browser.
npx hypershell-app --no-browser

# Use another port.
npx hypershell-app --port 8080

# Add a host through the local API.
npx hypershell-app host add --name "prod" --address 10.0.0.5 --port 22 --user deploy

CLI reference:

hypershell [--no-browser] [--port <port>]
hypershell host add --name <name> --address <host> [--port <port>] [--user <user>] [--password <password>] [--favorite] [--api-origin <url>] [--token <token>]

Verification

# Rust + TypeScript type checks
pnpm typecheck

# Rust tests, including SSH/tmux tests when the fixture is available
cargo test --manifest-path apps/server/Cargo.toml -- --test-threads=1

# Frontend unit/component tests
pnpm --filter web test

# Full workspace test command
pnpm test

# Lint Rust and TypeScript
pnpm lint

# Production build
pnpm build

The Rust SSH/tmux tests expect the Docker fixture on localhost:2222. Run ./scripts/verify-ssh-test-server.sh first if those tests report connection setup errors.

Configuration

VariableDefaultDescription
HYPERSHELL_PORT3100Rust server listen port
HYPERSHELL_DB_PATHhypershell.dbSQLite database path
HYPERSHELL_STATIC_DIRunsetBuilt frontend directory for production serving
HYPERSHELL_ACCESS_TOKENunsetBearer token for protected API routes
HYPERSHELL_NO_BROWSER0Set to 1 to skip browser launch from the CLI
HYPERSHELL_CONFIG_PATH~/.config/hypershell/config.jsonFirst-run CLI config path
HYPERSHELL_API_URLhttp://localhost:3100API origin used by hypershell host add
HYPERSHELL_CLOUDFLARE_WORKER_ORIGINunsetAllowed Cloudflare Worker origin for agent relay WebSockets
RUST_LOGinfoRust tracing filter

Repository Map

PathPurpose
apps/server/Rust Axum server, SQLite migrations, SSH/SFTP/tmux/Docker handlers
apps/web/React 19 + TanStack Router + Vite frontend using Cloudflare Kumo
packages/shared/Shared TypeScript contracts
bin/hypershell.jsNode CLI entry point
scripts/Packaging, local CLI helpers, SSH fixture verification
docker/openssh/OpenSSH fixture init scripts
prebuilt/Prebuilt server binaries used by the npm package

For system details, read ARCHITECTURE.md. For contributor workflow, read CONTRIBUTING.md.

Documentation

DocumentUse it for
Getting StartedFirst install, local server, SSH fixture, first host
User GuideFeature-by-feature workflows for terminal, files, editor, snippets, Docker, and audit
ConfigurationEnvironment variables, first-run config, ports, auth token behavior
SecurityThreat model, credential handling, auth, RBAC, WebSocket protections
TroubleshootingCommon setup, SSH, tmux, WebSocket, and build failures
TestingTest tiers, fixtures, commands, and what each gate proves
API ReferenceHTTP and WebSocket route map for local integrations

Build For Distribution

pnpm run build:package

This builds the Rust server in release mode, builds the frontend, copies the platform server binary into prebuilt/<platform>-<arch>/, and writes an npm tarball to dist-package/.

Current Deployment Status

This checkout includes the local Rust server plus server-side validation for Cloudflare agent relay WebSockets. It does not include an apps/cloudflare/ worker package or a hypershell deploy CLI command. Keep relay/deploy documentation tied to real files when that target is added.

Security Notes

Credential secrets are encrypted at rest with age before storage. The API includes RBAC, rate limiting, WebSocket auth rules, step-up checks for sensitive operations, passkey flows, and audit records for connection and file activity.

Please do not open issues containing private keys, passwords, hostnames, access tokens, database files, or terminal recordings.

License

MIT. See LICENSE.

FAQs

Package last updated on 04 May 2026

Related posts