SSH, SFTP, FTP and RDP in one window — with credentials that never sit in plaintext.
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 · Русский
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. |
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 → Open → Open, or:
xattr -dr com.apple.quarantine /Applications/Conchshell.appLinux. 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.
- Four protocols — SSH, SFTP, FTP, RDP
- A real terminal — full PTY, so
vim,topandtmuxbehave; 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
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 SiliconArtifacts land in src-tauri/target/aarch64-apple-darwin/release/bundle/{dmg,macos}/.
If Node runs under Rosetta on your machine,
--target aarch64-apple-darwinis required — without it Tauri names the DMG_x64while 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-tauriMIT — 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.