Sessions — Liu Terminal

Liu Terminal sessions. Full SSH client with file browser, SFTP, port forwarding, Mosh, and known-hosts TOFU.

Local PTYs run AI agents. The same Session abstraction also backs SSH, SFTP, Mosh, Telnet and serial - kept linked because plenty of people still need them, even though the product no longer headlines remote shells.

What a session is

Every tab and split leaf in Liu is a session. Most of them are local PTYs running your login shell — that's the substrate the AI agents (Claude, Codex, Copilot, …) actually run in. Sessions can also be remote: SSH, SFTP, Mosh, Telnet, serial. They share one abstraction, one rendering pipeline, one scrollback.

Local PTYs

New tabs (⌘ T) spawn a local PTY in the parent tab's cwd. When the inherited cwd is /, Liu silently chdir($HOME) in the child before exec so your prompt opens somewhere useful.

The shell's working directory is tracked via OSC 7. Plug printf '\\e]7;file://%s%s\\e\\\\' "$HOSTNAME" "$PWD" into PROMPT_COMMAND and Liu's sidebar, split-inheritance, and Agent History cwd-scope all light up.

SSH (substrate, still here)

libssh2-backed. Password, public-key, agent and keyboard-interactive auth. ~/.ssh/config is honoured for Host, Match, Include, ProxyJump, IdentityFile and related directives. Liu also multiplexes connections internally, but ControlMaster / GSSAPI lines from ssh config are not parsed into live sessions yet.

  • Generate ED25519 / RSA-3072 keys from the vault panel; private key stays encrypted at rest.
  • SSH_AUTH_SOCK honoured for outbound auth. Agent forwarding is per-host and off by default.
  • Multi-hop ProxyJump + SOCKS5 supported. GSSAPI/Kerberos ssh-config lines are not wired into live sessions yet.

Known hosts

First connection prompts with the SHA-256 fingerprint plus a randomart preview. Accepted entries land in ~/.config/Liu/known_hosts in OpenSSH-compatible format. A changed host key blocks input until you re-acknowledge.

Other protocols

  • SFTP — open from the sidebar against any saved host. Drag-drop, resume on disconnect.
  • Mosh — pair with an SSH host to get roaming + adaptive retransmits.
  • Telnet & serial — for legacy gear. Same session UI, no encryption.

Port forwarding

Each host carries a list of forward rules — local, remote and dynamic (SOCKS) — applied on connect. They show in the status bar with a green dot when bound and a red dot if the bind failed.

{ "type": "local",   "from": "8080",  "to": "localhost:80" }
{ "type": "remote",  "from": "9000",  "to": "127.0.0.1:9000" }
{ "type": "dynamic", "from": "1080" }

Next File browser →

Documentation

Getting started

Guides

Reference

Other languages

Türkçe · 简体中文 · 한국어 · Español · Deutsch · Italiano · Français · 日本語 · العربية