A heavily customizable terminal experience with AI Baked In.
Features β’ Installation β’ Quick Start β’ Themes β’ Plugins β’ Roadmap
Tired of boring, cookie-cutter terminals? NeonShell brings the aesthetic energy of the early internet customization era to modern SSH workflows. Think Myspace for SSH nerds β but with rock-solid security, blazing performance, and AI-powered assistance.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Security-First β π¨ Insane Theming β π€ AI-Powered β
β π Plugin System β π Python Scripts β β‘ Rust Core β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- OS Keychain Integration β Passwords and keys stored in macOS Keychain, Windows Credential Manager, or Linux Secret Service
- Zero Secret Logging β Secrets are NEVER written to logs, debug output, or crash reports
- Strict Host Key Checking β TOFU (Trust On First Use) with clear fingerprint UI and mismatch warnings
- Sanitized Debug Exports β Share debug bundles without fear of leaking credentials
- CSS Theme Packs β Full control over colors, fonts, spacing, animations
- Per-Host Themes β Different aesthetic for production vs staging
- Bundled Themes β Ships with Dracula, Monokai Pro, and Nord Aurora
- Import/Export Packs β Share your entire setup (theme + layout + hotkeys + snippets)
- Live Preview β See changes instantly as you customize
- Versioned API β Plugins declare compatibility, graceful degradation
- Sandboxed Permissions β Plugins request only what they need
- Event Hooks β
onConnect,onDisconnect,onData,onCommand,onError - UI Extensions β Add panels, commands, context menus, status bar widgets
- Local or Registry β Install from folder or community registry
- Embedded Scripting β Write Python scripts that hook into terminal events
- Pre-Connect Checks β Validate VPN status, check credentials, verify network
- Auto-Commands β Run setup commands on connect (tmux attach, load dotfiles)
- Output Parsing β Parse terminal output and trigger actions
- Custom Widgets β Build dashboard widgets with live data
- Command Palette β
Ctrl+Kfor instant access to any command - Hotkey Editor β Customize every keyboard shortcut
- Snippet Manager β Save and expand command snippets with variables
- Session Recipes β Saved multi-tab layouts with pre-configured hosts
- Scrollback Search β Find anything in your terminal history
- OpenSSH Config Import β Bring your existing
~/.ssh/configprofiles
- Real-Time Logs β Watch SSH events stream live (`Ctrl+``)
- Filtering β Filter by level, subsystem, session, or search term
- Export Debug Bundle β One-click export of sanitized logs for support
- Privacy-First β All exports automatically redact secrets
- Windows β Native
.exeand.msiinstallers - macOS β Universal binary (Intel + Apple Silicon)
.dmg - Linux β
.deb,.rpm, and.AppImage
| Platform | File |
|---|---|
| Windows | NeonShell_x.x.x_x64-setup.exe or .msi |
| macOS (Intel) | NeonShell_x.x.x_x64.dmg |
| macOS (Apple Silicon) | NeonShell_x.x.x_aarch64.dmg |
| Linux (Debian/Ubuntu) | NeonShell_x.x.x_amd64.deb |
| Linux (AppImage) | NeonShell_x.x.x_amd64.AppImage |
| Linux (RPM) | NeonShell-x.x.x-1.x86_64.rpm |
# macOS (Homebrew) - Coming Soon
brew install --cask neonshell
# Windows (Winget) - Coming Soon
winget install NeonShell
# Linux (Snap) - Coming Soon
snap install neonshell# Prerequisites: Rust 1.75+, Node.js 20+, pnpm 8+
git clone https://github.com/yourorg/neonshell.git
cd neonshell
pnpm install
pnpm tauri buildPlatform-specific dependencies
Windows:
winget install Microsoft.VisualStudio.2022.BuildToolsmacOS:
xcode-select --installLinux (Ubuntu/Debian):
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget \
libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libsecret-1-devPress Ctrl+N (or Cmd+N on macOS) to open the New Connection dialog:
- Enter your host, username, and port
- Choose authentication: SSH Agent, Password, or Private Key
- Check "Save as Profile" to remember it
- Click Connect
Press Ctrl+K β type "theme" β select Change Theme
Or import a theme pack: Ctrl+K β Import Pack
Press Ctrl+K β Keyboard Shortcuts to see all hotkeys
| Shortcut | Action |
|---|---|
Ctrl+K |
Command Palette |
Ctrl+N |
New Connection |
Ctrl+, |
Settings |
| `Ctrl+`` | Debug Console |
Ctrl+B |
Toggle Sidebar |
Drop .py files into ~/.neonshell/scripts/ and they'll appear in the Scripts Manager.
NeonShell ships with three beautiful themes:
| Theme | Preview |
|---|---|
| Dracula | Deep purple darkness with vibrant accents |
| Monokai Pro | Warm, professional tones inspired by Sublime Text |
| Nord Aurora | Cool Arctic blues with aurora-inspired highlights |
Themes are JSON + CSS files in ~/.neonshell/themes/:
{
"id": "my-theme",
"name": "My Awesome Theme",
"version": "1.0.0",
"colors": {
"background": "#1a1a2e",
"foreground": "#eaeaea",
"accent": "#e94560",
"surface0": "#16213e",
"surface1": "#1a1a2e",
"surface2": "#0f3460"
},
"terminal": {
"cursorColor": "#e94560",
"selectionBackground": "#e9456044"
}
}Export everything as a .zip pack:
- Theme + custom CSS
- Keyboard shortcuts
- Snippets
- Layout preferences
Does NOT include: Passwords, private keys, or any secrets.
- Download a plugin folder
- Place in
~/.neonshell/plugins/ - Go to
Ctrl+Kβ Manage Plugins - Enable the plugin and grant permissions
| Permission | What It Allows |
|---|---|
network |
Make HTTP/HTTPS requests |
filesystem |
Read/write plugin's data directory |
clipboard |
Access system clipboard |
notifications |
Show desktop notifications |
terminal |
Read terminal output stream |
// plugins/hello-world/index.js
export default {
activate(api) {
api.commands.register('hello.greet', () => {
api.ui.showToast('Hello from NeonShell! π');
});
api.hooks.onConnect((session) => {
api.log(`Connected to ${session.host}`);
});
}
};# ~/.neonshell/scripts/auto_tmux.py
from neonshell import hook, run_command
@hook("on_connect")
def attach_tmux(session):
"""Automatically attach to tmux or create new session."""
run_command(session, "tmux attach || tmux new-session")# ~/.neonshell/scripts/vpn_check.py
from neonshell import hook, abort, prompt
import subprocess
@hook("pre_connect")
def check_vpn(session):
"""Ensure VPN is connected before allowing SSH."""
result = subprocess.run(["pgrep", "openvpn"], capture_output=True)
if result.returncode != 0:
if not prompt("VPN not detected. Connect anyway?"):
abort("Connection cancelled - VPN required")βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β NeonShell β
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ€
β Frontend (React) β Backend (Tauri/Rust) β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββ€
β β’ xterm.js terminal β β’ SSH engine (libssh2) β
β β’ Zustand state β β’ OS keychain integration β
β β’ Tailwind CSS β β’ Plugin sandbox β
β β’ Command palette β β’ Python script runner β
β β’ Theme engine β β’ Config management (TOML) β
ββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββ
| Component | Technology | Why |
|---|---|---|
| Desktop Framework | Tauri v2 | Smaller than Electron, native performance, Rust security |
| Terminal | xterm.js | Industry standard, excellent performance |
| SSH | libssh2 (ssh2 crate) | Mature, cross-platform, full feature support |
| Frontend | React + TypeScript | Type safety, excellent tooling |
| Styling | Tailwind CSS | Rapid iteration, consistent design |
| State | Zustand | Simple, performant, TypeScript-first |
| Config | TOML | Human-readable, comments, schema validation |
| Threat | Mitigation |
|---|---|
| Private key theft | Keys encrypted in OS keychain, never on disk |
| Credential logging | Regex sanitization on ALL log output |
| Malicious plugins | Sandboxed with explicit permission grants |
| MITM attacks | Strict host key verification, clear warnings |
| Debug data leaks | Automatic redaction of secrets in exports |
- β Store passwords in plaintext
- β Log private keys or passphrases
- β Send telemetry without consent
- β Auto-update without permission
- β Run plugins with full system access
Found a vulnerability? Please email security@neonshell.dev (do not open public issues for security bugs).
- AI Command Suggestions β Context-aware command completions powered by local LLM
- Natural Language to Command β Type "show disk usage" β
df -h - Error Explanation β AI explains cryptic error messages
- Smart Autocomplete β Learn from your command history
- Chat with Terminal β Ask questions about output, get actionable answers
- AI-Powered Search β "Find that command I ran last week to restart nginx"
- Anomaly Detection β Alert on unusual output patterns
- Local-First AI β Run models locally, no data leaves your machine
- Official Website β neonshell.dev with docs, downloads, showcase
- Theme Gallery β Browse and install community themes
- Plugin Marketplace β Discover and install plugins
- Script Library β Share Python automation scripts
- User Showcase β Show off your customized setups
- Theme Editor β Visual theme builder with live preview
- Background Images β Custom terminal backgrounds with blur
- Custom Fonts β Upload and use any font
- Animation Presets β Cursor effects, transitions, glows
- Sound Themes β Notification sounds, typing sounds
- VSCode Extension β Open NeonShell terminals in VSCode
- Raycast Extension β Quick connect from Raycast
- Alfred Workflow β macOS quick actions
- Browser Extension β SSH links handler
- iOS App β Connect from iPhone/iPad
- Android App β Mobile SSH client
- Web Version β Browser-based NeonShell
- Raspberry Pi β Optimized ARM builds
- Split Panes β Horizontal and vertical terminal splits
- Session Recording β Record and replay terminal sessions
- Broadcast Input β Type to multiple sessions at once
- SFTP Browser β Visual file browser with drag-and-drop
- Port Forward Manager β GUI for SSH tunnels
- Jump Host Chains β Multi-hop SSH with visual builder
- Connection Sharing β Multiplexed SSH connections
- Hardware Key Support β YubiKey, Titan Key for SSH
- 2FA Integration β TOTP for SSH servers that support it
- Audit Log β Track all connections and commands
- Session Timeout β Auto-lock after inactivity
- Biometric Unlock β Face ID / Touch ID / Windows Hello
- Plugin SDK β TypeScript types, testing utilities
- Theme SDK β CLI tool to scaffold and validate themes
- API Documentation β Interactive API explorer
- Example Plugins β Rich collection of reference implementations
- Multi-Language UI β Spanish, French, German, Japanese, Chinese, Korean
- RTL Support β Arabic, Hebrew layout support
- Localized Documentation β Translated docs
We love contributions! See CONTRIBUTING.md for guidelines.
# Fork and clone
git clone https://github.com/YOUR_USERNAME/neonshell.git
cd neonshell
# Install dependencies
pnpm install
# Run in development
pnpm dev
# Run tests
pnpm test
# Build
pnpm build- π Report Bugs β Open an issue with reproduction steps
- π‘ Suggest Features β We love hearing ideas
- π¨ Create Themes β Share your color schemes
- π Build Plugins β Extend functionality
- π Improve Docs β Fix typos, add examples
- π Translate β Help us reach more users
MIT License β see LICENSE for details.
- Tauri β For making Rust-powered desktop apps possible
- xterm.js β The best terminal emulator for the web
- libssh2 β Reliable SSH implementation
- Dracula Theme β Color palette inspiration
- Everyone who believes terminals can be beautiful β¨
Built with π by the NeonShell community
Website β’ Documentation β’ Discord β’ Twitter

