Skip to content

Repository files navigation

Conchshell

Conchshell

SSH, SFTP, FTP and RDP in one window — with credentials that never sit in plaintext.

Tauri React Rust Release License

Terminal, file manager, remote desktop and system monitor in a single application. Built on Rust and Tauri 2 — about 34 MB of memory where Java clients take a gigabyte and a half, in an installer under 10 MB.

English · Русский


🔐 Security

Not a checklist. Each of these is enforced in code and covered by tests.

Passwords are never stored in plaintext Credentials live in an encrypted vault — XChaCha20-Poly1305, keys derived with Argon2id, independent key slots over one data key. Migration writes, reads back from disk, compares, and only then erases the plaintext copy, so a failure at any step cannot destroy the only copy of a password.
No IPC call returns a secret The interface can put a credential into the vault and delete it. It cannot get one back. Credentials are read only by Rust, at the moment a connection opens — so a compromised window cannot drain the vault.
No master password required The vault opens from the OS keychain with no prompt at startup. Prefer it stricter? One switch, and the vault stays sealed until you type the password.
Server identity is verified SSH, RDP and FTPS pin the server's key on first connection and refuse it if it ever changes. known_hosts import honours @revoked. Plain FTP is labelled unverified, because it is.
Config export carries no credentials Passwords and private keys are stripped from the configuration backup.

📦 Install

From the releases page:

Platform File
macOS (Apple Silicon) Conchshell_x.y.z_aarch64.dmg
Linux (x86_64) .AppImage / .deb

macOS. Open the DMG, drag Conchshell into Applications. The app is ad-hoc signed and not notarised by Apple, so Gatekeeper may object on first launch. Either right-click → OpenOpen, or:

xattr -dr com.apple.quarantine /Applications/Conchshell.app

Linux. Make the .AppImage executable (chmod +x) and run it, or install the .deb with sudo dpkg -i.

Updates are checked against this repository's releases and are signed — an unsigned binary cannot be installed.


✨ Features

  • Four protocols — SSH, SFTP, FTP, RDP
  • A real terminal — full PTY, so vim, top and tmux behave; split panes, many tabs, search, and a local shell
  • SFTP/FTP file manager — upload and download, drag-and-drop, permissions, directory history with pinning, open a remote file in the application of your choice
  • Remote desktop — RDP (VNC is stubbed out and does not connect yet)
  • System monitor — CPU, memory, disk, network and processes on the remote host
  • Log viewer — streaming and filtering
  • Directory sync between local and remote
  • Appearance — terminal themes, background images, transparency
  • Three interface languages — English, Russian, Chinese

🛠️ Building

Requirements. Node.js ≥ 18 with pnpm 9.15.4 (corepack enable && corepack prepare pnpm@9.15.4 --activate), and Rust stable via rustup.

pnpm install
pnpm tauri build --target aarch64-apple-darwin    # macOS, Apple Silicon

Artifacts land in src-tauri/target/aarch64-apple-darwin/release/bundle/{dmg,macos}/.

If Node runs under Rosetta on your machine, --target aarch64-apple-darwin is required — without it Tauri names the DMG _x64 while the binary is arm64.

Linux builds on a Linux machine or in CI; cross-compiling from macOS is not possible, since it needs the webkit2gtk system libraries.

pnpm test          # frontend unit tests
pnpm i18n:check    # locale coverage, by plural category
cargo test --lib   # from src-tauri

📄 Licence

MIT — see LICENSE.

The codebase grew out of GOODBOY008/r-shell; the MIT licence and its copyright notice are preserved. Change history is in CHANGES.md.

About

SSH, SFTP, FTP and RDP client for macOS and Linux. Credentials live in an encrypted vault, never in plaintext, and no IPC call can read one back. Server keys are pinned and verified. Rust + Tauri 2, ~34 MB.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages