EthanShoeDev 5ca24b539e lock update
2025-10-10 02:58:00 -04:00
ci
2025-09-24 19:28:57 -04:00
2025-10-07 13:46:19 -04:00
2025-10-10 02:30:15 -04:00
2025-09-15 03:29:49 -04:00
2025-10-10 02:30:15 -04:00
2025-09-19 19:44:20 -04:00
2025-09-24 04:04:13 -04:00
2025-10-04 13:43:40 -04:00
2025-09-24 21:46:55 -04:00
2025-09-18 02:27:05 -04:00
2025-09-09 22:27:48 -04:00
2025-09-09 22:27:48 -04:00
2025-10-07 00:21:46 -04:00
ci
2025-09-24 17:47:57 -04:00
2025-09-24 17:41:02 -04:00
2025-10-07 14:51:08 -04:00
2025-09-24 04:04:13 -04:00
2025-09-09 22:27:48 -04:00
2025-10-04 13:43:40 -04:00
2025-10-10 02:58:00 -04:00
2025-10-08 19:59:44 -04:00
2025-10-10 02:30:15 -04:00
2025-10-06 20:38:07 -04:00

Fressh

Fressh is a mobile SSH client that remains clean and simple while supporting powerful features.

ci npm: @fressh/react-native-uniffi-russh npm: @fressh/react-native-xtermjs-webview

Features

  • Secure connection history: Securely store previous connections
  • Theming: Configurable theme
  • xterm fidelity: Fully accurate xterm emulation

Coming soon

  • Command presets: Configurable preset command buttons
  • On-device AI: On-device LLM for command completion and output summarization

Screenshots

Hosts tab

Shell detail

Architecture

The app is a monorepo with three main parts:

  • apps/mobile: The actual React Native Expo app.
  • packages/react-native-uniffi-russh: A uniffi react native binding package that exposes a native Rust module for russh.
  • packages/react-native-xtermjs-webview: A small library that instantiates an Expo WebView preloaded with xterm.js.

Both packages are published on npm if you want to use them in your own project:

Why

Mostly to practice with React Native, Expo, and Rust. There are a few more developed SSH clients on the Google Play and iOS App Stores.

Some of those try to lock features like one-off commands behind a paywall, so this aims to be a free alternative.

Another notable feature of the app is the WebView xterm.js renderer. Using this as the render layer has a few benefits:

  • Parity with VS Code: We match the render behavior of VS Code
  • Consistent visuals: The render layer visually matches on both iOS and Android

With that said, it is probably less performant than a native renderer, so it may be replaced in the future. Implementing a Nitro view seems very promising.

Changelogs

Contributing

We provide a Nix flake devshell to help get a working environment quickly. See CONTRIBUTING.md for details.

License

MIT

Description
Fressh is a mobile SSH client that remains clean and simple while supporting powerful features.
Readme 152 MiB
Languages
TypeScript 61%
Rust 21.3%
Astro 7%
JavaScript 4.1%
Nix 3.3%
Other 3.3%