Skip to content

Repository files navigation

Starcom

Session Terminal And Remote COMmander.

A small native client for persistent remote tmux sessions. Linux, macOS, and Windows clients; Linux hosts with stock SSH and tmux. No remote Starcom service. Built with Rust, Blade, egui, and Alacritty's terminal core.

Starcom desktop attached to a remote tmux session

Install

Prebuilt binaries are attached to each GitHub Release on v* tags. Linux and Windows builds are unsigned; macOS builds are ad-hoc codesigned, not notarized.

Platform Artifact
Linux x86_64 .tar.gz, .AppImage, .deb, .rpm
macOS Apple Silicon .zip app bundle, .dmg (ad-hoc signed)
Windows x86_64 .zip

From source:

cargo install --locked --git https://github.com/kvark/starcom

That builds the desktop client. Run starcom or starcom --demo. A recent stable Rust is required (rust-version is 1.96).

The crates.io starcom crate is a name reservation and is not a working install.

Desktop integration

make install

On Linux this puts the binary, .desktop entry, and icon under ~/.local, so Starcom appears in the application menu. On macOS it also writes ~/Applications/Starcom.app (Launchpad and Spotlight); a .desktop file is not a macOS launcher. $(PREFIX)/bin is on the PATH in both cases.

To install system-wide instead (/usr on Linux, /Applications on macOS):

sudo make install PREFIX=/usr

To remove:

make uninstall

Run

From a checkout:

cargo run --release --locked
cargo run --release --locked -- --demo

Use + to open a connection tab. Pick a Host from ~/.ssh/config or type another destination; Starcom resolves supported user/host/port/key settings and reports unsupported routing or authentication policy instead of bypassing it. Choosing a known host lists its tmux sessions and selects the first one so Connect is the next click. Each tab is one session and one window of that session: its form or its panes, not both side by side.

Tabs are saved and reopened on their forms; Starcom never authenticates at startup, and the saved file holds destinations, never credentials. Create session is the one action that may start a tmux server, and it asks first.

The desktop currently supports local scrollback, selection and copying, pane split/zoom/close controls, and opt-in shared tmux pane resizing. Wheel events go to the application when it asked for mouse reports or is on the alternate screen; otherwise they scroll local history. Multiline paste requires confirmation. Transport loss reconnects automatically with visible, cancellable backoff; authentication, trust, and missing-session failures stop and wait for you.

SSH and cryptography use Rust libraries; OpenSSL is not a build dependency. Host keys must already be trusted.

Desktop usage · SSH details · Synchronization limits · Roadmap

About

Session Terminal And Remote COMmander

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages