Cross-platform SSH manager desktop app (Tauri + React) focused on fast host management and clean terminal workflows.
Repository: github.com/d0dg3r/NoSuckShell
- Split workspace — Start with one full-size panel; split recursively (e.g. left / bottom) with a default 60/40 ratio; resizable dividers; drag-and-drop panel reorder (swap).
- Layout profiles — Save, load, and delete layouts with hosts (geometry + host/session mapping) or layout only (geometry).
- SSH integration — Hosts from
~/.ssh/config, embedded terminals (xterm), local shell sessions, quick connect. - Encrypted backups — Export/import is password-protected; plain legacy JSON backups are rejected on purpose.
- Cross-platform — Linux, macOS, and Windows builds via GitHub Releases.
More sizes (Flathub downscales, Microsoft/Snap 1920×1080), captions for AppStream, video notes, and regeneration commands: docs/media/screenshots/README.md.
Download the latest Release or Pre-release asset for your platform from the Releases page.
Requirements
- Node.js and npm (for the desktop app under
apps/desktop) - Rust stable, Cargo, and Tauri 2 prerequisites for your OS
From the repository root, the first npm run tauri:dev / desktop:build can install dependencies under apps/desktop automatically if they are missing. You can still install explicitly:
npm run desktop:install
WEBKIT_DISABLE_DMABUF_RENDERER=1 npm run tauri:devOn some Linux setups (e.g. certain WebKit builds), WEBKIT_DISABLE_DMABUF_RENDERER=1 avoids blank or unstable webviews; omit if you do not need it.
Or from apps/desktop:
cd apps/desktop
npm install
npm run tauri:devcd apps/desktop
npm test
npm run build
cd src-tauri
cargo test
cargo checkFrom the repo root you can run npm run desktop:test for the desktop package tests.
- Backup export/import is password protected and encrypted.
- Unencrypted legacy JSON backups are intentionally rejected.
- Backup path handling supports
~expansion and cross-platform path normalization.
Details: docs/backup-security.md
GitHub releases are created by pushing a SemVer tag:
- Final:
vMAJOR.MINOR.PATCH(example:v1.2.3) - Pre-release:
vMAJOR.MINOR.PATCH-<suffix>(example:v1.2.4-rc.1,v0.1.0-beta.7)
Current pre-release line: v0.1.0-beta.7 (push the tag when you want CI to publish binaries). Changelog: docs/CHANGELOG.md.
git tag v0.1.0-beta.7
git push origin v0.1.0-beta.7Full checklist: docs/releases.md
If the workflow rejects the tag, use vMAJOR.MINOR.PATCH or vMAJOR.MINOR.PATCH-prerelease (example: v2.0.0 or v2.0.0-rc.1).
| Resource | Description |
|---|---|
| docs/README.md | Documentation index |
| docs/CHANGELOG.md | Release notes |
| docs/architecture.md | App architecture (Tauri, React, Rust, IPC) |
| docs/STYLE_GUIDE.md / docs/CODE_GUIDE.md | Style and implementation guides |
| AGENTS.md | IDE / agent entry point |
| CONTRIBUTING.md | Setup, validation, pull requests |
| SECURITY.md | Reporting vulnerabilities |
| CODE_OF_CONDUCT.md | Community standards |
The source code is under the MIT License. A few built-in plugins can be unlocked in official binaries with a signed license token after a small purchase (for example via Ko-fi); see docs/licensing.md and the maintainer template docs/terms-of-sale.md.
If NoSuckShell is useful to you:
- Star the repository so others can find it.
- Sponsor d0dg3r on GitHub Sponsors if you want to support maintenance.
- Contribute via issues and pull requests.



