Ramux
Ramux overview

Shell

Local login shells on macOS, SSH terminals, and PowerShell or cmd over RDP. Keep sessions in independent windows, detach running shells, and exchange files with local applications.

Active SSH shell showing a remote project and a live API health check
Shell

Shell environments

Local login shell on macOS

Run the login shell configured for your macOS account inside Ramux, with its normal startup files and shell configuration. It starts in your home directory or a local folder opened from File manager.

Local sessions use a native pseudo-terminal (PTY) for interactive input and terminal resizing. The integrated local shell currently requires macOS; local folders on Windows and Linux open an external terminal.

SSH sessions

Connect with the system OpenSSH client using your keys, SSH agent, or saved credential source. Run several independent shells against the same server.

On macOS, SSH sessions use a native PTY to pass terminal-size changes to the remote shell. If a PTY is unavailable, SSH falls back to a connection without live terminal resizing.

PowerShell and cmd over RDP

Run Windows PowerShell, PowerShell 7 (pwsh), or Command Prompt (cmd) through an active RDP connection. Each shell can start in a specified directory and runs as the Windows user hosting the Ramux agent.

PowerShell 7 and cmd use Windows ConPTY where available, including terminal resizing. Windows PowerShell 5 uses a process-based shell without live resizing. An active desktop connection and agent are required.

Sessions & directories

Independent windows and live detachment

Keep shells for different computers in separate windows. Each window has its own sessions and active target; switching connections in the main Ramux window leaves those sessions in place.

Detach the main Shell workspace while its commands continue running. Closing that detached window reattaches the same workspace to Ramux without restarting its shells.

Window duplication

Duplicate a Shell window to open fresh sessions for its connections and shell tabs. The duplicate starts independent shell processes; it does not clone running commands or their environment.

The same active SSH shell detached into an independent window

Shells from File manager

Open a shell directly in the directory being browsed: a local folder on macOS, an SSH directory, or a Windows path through the RDP agent. This creates a new shell session without changing the working directory of an existing one.

File manager’s command line also runs individual commands, completes filenames, and can detach a running command into its own window. Use Shell for interactive programs and commands that need to share shell state.

Files & input

File drops and SFTP uploads

Drop local files or paste a file selection into an SSH terminal to upload over SFTP. The destination is the shell’s last known working directory, with the remote home directory used as a fallback.

Upload and local-file behavior

Uploads create new files and fail if a destination name already exists. File manager handles replacement, resume, and queued transfers.

In a local shell, a file selection inserts the original paths as quoted shell arguments. It does not upload the files or submit the command.

Remote files and text in the clipboard

Define the ramux-copy helper in the current SSH shell to transfer regular files to the local clipboard. For example, ramux-copy /tmp/report.csv makes that remote file available to paste into a local application.

Clipboard formats & limits

A request supports up to 16 files totaling 256 MiB. Terminal programs can also write text to the local clipboard through OSC 52, including tools configured to use it inside tmux.

Paste handling, encoding, and scrollback

Require confirmation before sending multiline text to a shell, and optionally copy text as soon as it is selected.

Choose UTF-8, Windows-1252, or Latin-1 when opening remote sessions. Local shells use UTF-8. The terminal scrollback limit is configurable from 100 to 200,000 lines.