No description
  • Rust 51%
  • TypeScript 39.3%
  • CSS 3.5%
  • Shell 3.4%
  • Python 2.5%
  • Other 0.2%
Find a file
Tux 34ecbf2513
All checks were successful
Release / build-windows (push) Successful in 12m36s
Release / build-macos-x64 (push) Successful in 3m54s
Release / build-macos-arm64 (push) Successful in 3m49s
Release / build-linux (push) Successful in 9m50s
Release / build-extras (push) Successful in 2s
Release / publish-release (push) Successful in 57s
Release 0.12.0
2026-05-11 16:26:45 +02:00
.claude Claude agent updates 2026-04-27 08:37:31 +02:00
.forgejo/workflows Mirror releases to GitHub 2026-05-07 11:05:34 +02:00
.vscode Upgrade russh 2026-04-13 22:06:19 +02:00
public Project initialization 2026-03-23 23:34:11 +01:00
src Make key-hook ref updates concurrent-mode safe 2026-05-11 16:24:26 +02:00
src-tauri Release 0.12.0 2026-05-11 16:26:45 +02:00
ssh-testlab Fix hadolint warnings in ssh-testlab Dockerfiles 2026-04-21 22:01:33 +02:00
tools Application logging 2026-04-10 09:13:25 +02:00
.gitattributes Git linguist-vendored 2026-04-13 11:24:30 +02:00
.gitignore Project initialization 2026-03-23 23:34:11 +01:00
.prettierignore Claude 2026-03-24 11:33:25 +01:00
.prettierrc.json Claude 2026-03-24 11:33:25 +01:00
ADMIN_GUIDE.md Cascade folder visibility to all descendants and fix shared folder UX 2026-04-22 21:50:20 +02:00
CHANGELOG.md Release 0.12.0 2026-05-11 16:26:45 +02:00
CLAUDE.md Update Claude instructions 2026-05-11 16:06:27 +02:00
DESIGN.md Fix PostgreSQL startup for DML-only users and harden import dedup 2026-04-22 20:57:39 +02:00
DEVELOPMENT.md Update DEVELOPMENT.md to reflect macOS CI runner 2026-04-27 18:58:23 +02:00
eslint.config.js Claude 2026-03-24 11:33:25 +01:00
index.html Project initialization 2026-03-23 23:34:11 +01:00
LICENSE Add GPL-3.0 license file and embed screenshot in README 2026-04-21 22:01:26 +02:00
package-lock.json Release 0.12.0 2026-05-11 16:26:45 +02:00
package.json Release 0.12.0 2026-05-11 16:26:45 +02:00
README.md Fix PostgreSQL startup for DML-only users and harden import dedup 2026-04-22 20:57:39 +02:00
RELEASING.md Release 0.9.0 2026-04-13 16:27:19 +02:00
shellstation.png Add GPL-3.0 license file and embed screenshot in README 2026-04-21 22:01:26 +02:00
tsconfig.json Project initialization 2026-03-23 23:34:11 +01:00
tsconfig.node.json Minor refactoring 2026-04-07 16:50:41 +02:00
vite.config.ts Minor refactoring 2026-04-07 16:50:41 +02:00

ShellStation

Cross-platform terminal manager and SSH/Telnet client for network engineers and sysadmins.

ShellStation replaces tools like mRemoteNG and SecureCRT with a modern, open-source alternative that runs on Linux, macOS, and Windows.

ShellStation main interface

Why ShellStation?

Problem ShellStation
mRemoteNG is Windows-only Runs on Linux, macOS, Windows
XML session storage degrades at scale SQLite (local) or PostgreSQL (team) backend
PuTTY dependency for SSH Built-in SSH2 and Telnet — no external tools
Jump host setup is cumbersome First-class ProxyJump chaining with arbitrary hop depth
SecureCRT costs $100+/seat Free and open source
No multi-user session sharing PostgreSQL mode with row-level security for teams

Features

  • Built-in terminal emulator — xterm.js with WebGL rendering, themes, search, ligatures
  • SSH2 and Telnet — password, public key, keyboard-interactive authentication
  • Jump host chaining — connect through multiple bastions (A -> B -> C -> target)
  • Session management — folders, tags, search, drag-and-drop, bulk editing
  • Command broadcast — send commands to multiple sessions simultaneously
  • Import — migrate from mRemoteNG XML, SecureCRT XML, or CSV
  • Credential manager — secrets stored in the OS keychain (Keychain, Secret Service, Credential Manager)
  • Multi-user mode — shared PostgreSQL database with per-user visibility and credential isolation
  • Keyword highlighting — import SecureCRT highlight profiles or create your own
  • Session logging — automatic plain-text logs with ANSI stripping

Installation

Download the latest release for your platform from the Releases page:

  • Linux: .deb or .AppImage
  • macOS: .dmg
  • Windows: .msi

Building from Source

Prerequisites: Rust, Node.js (v18+), and the Tauri prerequisites for your OS.

git clone https://github.com/LuminaApps/shellstation.git
cd shellstation
npm install
npm run tauri build

The built application will be in src-tauri/target/release/bundle/.

Tech Stack

Layer Technology
App shell Tauri 2 (native webview, small binaries)
Backend Rust (async via Tokio)
Frontend React + TypeScript
Terminal xterm.js
SSH russh (pure Rust SSH2)
Database SQLite (single-user) / PostgreSQL (teams) via sqlx

Configuration

ShellStation stores its configuration in the platform config directory:

  • Linux: ~/.config/shellstation/
  • macOS: ~/Library/Application Support/shellstation/
  • Windows: %APPDATA%\shellstation\

PostgreSQL Multi-User Setup

For team deployments with shared session databases, see the PostgreSQL Administration Guide.

Development

# Start the dev server with hot reload
npm run tauri dev

# Lint (must pass before committing)
cd src-tauri && cargo clippy -- -D warnings
cd src-tauri && cargo fmt -- --check
npx eslint .
npx prettier --check "src/**/*.{ts,tsx,css,json}"
npx tsc --noEmit

See DESIGN.md for architecture details, database schema, and the development roadmap.

Contributing

Contributions are welcome. Please ensure all linters pass with zero warnings before submitting a pull request.

License

This project is licensed under the GNU General Public License v3.0.