Skip to content
 
 

Repository files navigation

Reach

Reach

A modern, cross-platform SSH client and remote management tool.
Built for engineers who got tired of PuTTY and wanted something that just works.
This is a personal fork of Reach. See differences from upstream below.

Release Platforms License

< English · 简体中文 >

Documentation · Report a Bug


Reach Preview


Why Reach?

Most SSH tools feel like they were designed in 2005, because they were. MobaXterm is Windows-only and bloated, PuTTY hasn't changed in decades, and Termius wants a subscription for basic features.

Reach is what happens when you build an SSH client from scratch with a native UI, proper encryption, and the kind of workflow you'd actually want to use every day. No Electron. No monthly fee. Just a fast, clean tool that runs everywhere.

Differences from upstream

Most code (excluding UI) was generated by AI with human review.

Terminal

  • Themes — Configurable terminal themes, including new light themes and more.
  • Fonts
    • Disabled Ctrl+Scroll font scaling. Font size is now configurable in settings.
    • Disabled Google Fonts loading. System fonts are now configurable.
    • Font preview now includes CJK samples for checking fullwidth/halfwidth alignment.
  • Selection, copy & paste
    • Fixed drag-select accidentally triggering copy. Terminal selection now copies on right-click instead of click.
    • Clipboard operations use Tauri Clipboard Manager plugin (no WebView popup).
    • Multi-line paste shows confirmation dialog to prevent accidental command execution.
  • SSH
    • SSH backend buffers output until frontend is ready, preventing MOTD loss.
    • Configurable auto-shell-color with improved injection to handle more edge cases.
    • Prompt user to verify unknown SSH host keys before connecting (TOFU), preventing MITM attacks.
    • Dev: Refactored SSH backend for better code reuse and reduced duplication.
  • Fixed terminal buffer refresh issues when switching between related settings panels.
  • Terminal links open in the system default browser on Ctrl+click (Cmd+click on macOS).

Editor

  • Broader language highlighting with automatic file type detection.
  • Smart detection of indentation size and style (spaces vs tabs).
  • Full multi-cursor editing support with CJK-aware rectangular selection.

UI

  • Added Chinese language support with comprehensive UI i18n.
  • Various UI refinements.
  • Splash screen no longer forces extra 800ms delay. Window can be dragged during splash.
  • Dev: Refactored components for better code reuse and reduced duplication.

AI

  • Custom Base URL support.
  • Support more AI settings (e.g. reasoning toggle, reasoning effort, etc.).
  • Fix terminal output reading on Windows.
  • Replace LLM command execution with tool calling, add more available tools.
  • Update AI UI to support streaming output, full Markdown, better interaction experience, etc.

Misc

  • Temporarily disabled auto-updates.
  • (Dev) Known issue: During SSH host key verification, the ssh_manager Mutex is held while waiting for user input, which blocks unrelated SSH operations (ssh_send, ssh_resize, ssh_disconnect, etc.) on other connections. Incoming terminal data is unaffected (emitted directly from the session task via Tauri events, no lock needed). Should be refactored to release the lock before awaiting the oneshot response.

What's inside

Core

  • SSH Terminal · Full interactive shell with WebGL rendering. Tabs, split views, and resize that actually works.
  • SFTP File Explorer · Browse remote filesystems, drag-and-drop transfers, inline editing. Feels like a local file manager.
  • Session Manager · Save connections with folders and tags. Credentials are encrypted at rest, not stored in plaintext configs.
  • Jump Host (ProxyJump) · Connect through bastion servers with multi-hop SSH tunneling. Import hosts directly from ~/.ssh/config.

Productivity

  • Port Tunneling · Local, remote, and dynamic SOCKS forwarding. Set it up once, save it with the session.
  • Multi-Exec · Broadcast the same command to 10 servers at once. Handy for fleet updates.
  • System Monitoring · Live CPU, memory, and disk stats from connected hosts without installing agents.

Infrastructure as Code

  • Ansible · Manage playbooks, inventories, roles, and collections. Run playbooks and ad-hoc commands with streaming output. Encrypts/decrypts files with ansible-vault. On Windows, automatically runs through WSL.
  • OpenTofu · Plan, apply, and destroy infrastructure. Browse state, manage providers and modules. Full workspace with file editor and streaming command output.

Extras

  • Serial Console · Talk to routers, switches, and embedded devices over COM/TTY.
  • AI Assistant · Optional AI integration for command suggestions and troubleshooting (bring your own API key).
  • Encrypted Vault · Store secrets, credentials, and SSH keys in an encrypted vault with cloud sync support.
  • Lua Plugins · Extend Reach with sandboxed Lua scripts. Access SSH, storage, and UI hooks through the host API.
  • Auto-Updates · The app checks for updates on startup and periodically while running. No manual downloads.

Tech

Reach is a Tauri v2 app with a Rust backend and Svelte 5 frontend. The entire SSH stack runs natively in Rust through russh, with no OpenSSH dependency. The UI is rendered in a system webview (not bundled Chromium), so the final binary is small and memory usage stays low.

Backend Rust, Tokio, russh
Frontend Svelte 5, SvelteKit, TypeScript
Styling Tailwind CSS v4
Terminal xterm.js with WebGL addon
Crypto XChaCha20-Poly1305, Argon2id, X25519
Platforms Windows, macOS, Linux, Android

Getting started

No pre-built releases are available for this fork yet. To use it, build from source.

Building from source

You'll need Rust, Node.js 22+, and the Tauri prerequisites for your OS.

git clone https://github.com/CPTProgrammer/ReachQ.git
cd Reach
npm install
npm run tauri dev

For a production build:

npm run tauri build

Project structure

graph LR
  root["🗂 Reach"]

  root --> src["📁 src · Svelte frontend"]
  root --> tauri["📁 src-tauri · Rust backend"]
  root --> gh["📁 .github/workflows · CI/CD"]

  src --> routes["📄 routes"]
  src --> lib["📁 lib"]

  lib --> components["📁 components"]
  lib --> state["📄 state · Reactive .svelte.ts modules"]
  lib --> ipc["📄 ipc · Tauri command wrappers"]
  lib --> i18n["📄 i18n · Internationalization"]

  components --> layout["📄 layout · AppShell, TitleBar, Sidebar"]
  components --> terminal["📄 terminal · SSH terminal, multi-exec"]
  components --> explorer["📄 explorer · SFTP file browser"]
  components --> sessions["📄 sessions · Connection manager"]
  components --> tunnel["📄 tunnel · Port forwarding UI"]
  components --> vault["📄 vault · Encrypted secrets"]
  components --> ai["📄 ai · AI assistant panel"]
  components --> ansible["📄 ansible · Ansible automation"]
  components --> tofu["📄 tofu · OpenTofu IaC"]
  components --> settings["📄 settings · App preferences"]
  components --> shared["📄 shared · Button, Modal, Toast"]

  tauri --> taurisrc["📁 src"]
  taurisrc --> ssh["📄 ssh · SSH client via russh"]
  taurisrc --> sftp["📄 sftp · File transfers"]
  taurisrc --> tvault["📄 vault · Encrypted storage, crypto"]
  taurisrc --> ttunnel["📄 tunnel · Port forwarding engine"]
  taurisrc --> pty["📄 pty · Local terminal (desktop)"]
  taurisrc --> serial["📄 serial · Serial port (desktop)"]
  taurisrc --> monitoring["📄 monitoring · Remote system stats"]
  taurisrc --> ansible["📄 ansible · Ansible project & runner"]
  taurisrc --> tofu["📄 tofu · OpenTofu project & runner"]
  taurisrc --> tipc["📄 ipc · Tauri command handlers"]
Loading

Changelog

See CHANGELOG.md for the full release history.

Contributors

Thanks to those who have contributed to Reach:

ddwnbot
ddwnbot

SSH host key verification (TOFU)
alien-ye
alien-ye

Click-to-copy terminal selection

Contributing

Contributions are welcome. Bug reports, feature ideas, and pull requests all help. If you're picking up a larger feature, open an issue first so we can talk about the approach.

License

Licensed under the MIT License.

This project is free software: you are allowed to use, modify, and redistribute it for personal, academic, or commercial purposes under the terms of the MIT license. See the LICENSE file for full details.

About

A personal fork of Reach. A modern, cross-platform SSH client & remote server management tool. Tabbed terminals, SFTP file browser, port forwarding, system monitoring, AI assistant, encrypted vault, Ansible & OpenTofu automation, serial console. Free open-source PuTTY/MobaXterm/Termius alternative for all major platforms. Built with Rust + Tauri.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages