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 · 日本語 · العربية