Skip to content

Terminal and Remote Desktop

Paco5687 edited this page Jul 13, 2026 · 7 revisions

Terminal & Remote Desktop

Both run through the agent's existing outbound tunnel — no SSH daemon, no keys, no inbound ports, no VNC/RDP server. Both are gated by the admin token and honor a host's --allow-exec=false setting.

Terminal (great for headless boxes)

A real PTY shell on the host, streamed to a browser terminal.

  • From the dashboard: click a host → Terminal. Or use the Terminal button on the host card.
  • From the CLI:
    autormm-client shell <host>
    This behaves like SSH — raw mode, window-resize support — and ends when the remote shell exits.

Supported on Linux and macOS agents. (Windows agent terminal is not yet available — it needs ConPTY.)

Remote desktop

The host's live screen with mouse and keyboard control.

  • Click a host → Remote (or the card's Remote button). It opens a viewer in a new tab.
  • The agent captures the screen and streams changed tiles; your clicks and keystrokes are sent back.
  • Use the quality slider and the Ctrl+Alt+Del button in the viewer bar.

Requirements: the target must be a desktop host (installed with the &desktop=1 command) with a graphical session. Headless servers have the Remote button disabled. Screen capture uses X11 on Linux (use Xorg or Xwayland — native Wayland isn't supported) and GDI on Windows.

Multiple monitors

If the host has more than one display, the viewer bar shows a display picker. It starts on All (every display side by side); click Display 1, Display 2, … to isolate one (the primary is marked ★). You can switch live during the session.

Remote cursor

The host's mouse pointer is drawn as an overlay in the viewer. Screen capture doesn't include the hardware cursor, so the agent streams its position separately — this is normal and needs no configuration.

H.264 codec (optional)

The default codec is JPEG tile-deltas, which works everywhere. For smoother motion and lower bandwidth on video, the viewer bar offers a JPEG-tile / H.264 toggle — but only when both ends support it:

  • the host has ffmpeg (with libx264) on its PATH — the encoder (winget install Gyan.FFmpeg on Windows, apt install ffmpeg on Linux; then restart the agent so it picks up the new PATH);
  • your browser supports WebCodecs (Chrome or Edge).

If neither condition is met, no toggle appears and you stay on JPEG. If H.264 is selected but the browser can't decode the stream, the viewer automatically falls back to JPEG-tile — the remote desktop never breaks. H.264 is currently experimental; JPEG-tile remains the default at every connect.

Clipboard (copy/paste)

Text copies both ways during a remote session:

  • Local → host: press Ctrl/Cmd+V in the viewer — your local clipboard is sent to the host and pasted. This works even over plain http.
  • Host → local: copy on the host and it syncs back to your machine. This direction writes your local clipboard via the browser Clipboard API, which needs a secure context (https, or a zero-trust overlay terminating TLS, or localhost) — over plain http the browser blocks it.

File transfer

From a host's detail panel, click Files:

  • Upload: pick a file and send it — it lands in autormm-incoming in the host user's home folder.
  • Download: enter a path on the host and it downloads to your browser.

File access uses the same permission as the terminal, so a host installed with --allow-exec=false also blocks file transfer. (Phase 1 is single-file up/down; a folder browser is planned.)

Running one-off commands

You don't need an interactive shell for a quick command:

autormm-client exec <host> uname -a
autormm-client exec <host> --shell powershell "Get-Process"

Every command is written to the hub's log as an AUDIT exec line. To disable remote command execution and terminals on a host entirely, install/run its agent with --allow-exec=false (or AUTORMM_NO_EXEC=1).

Clone this wiki locally