Skip to content

Connections

Iain Smith edited this page Sep 14, 2026 · 4 revisions

Connections

veetee opens one connection per session. Choose it on the command line; without one, veetee runs your login shell.

Option Connection
(none) Your login shell ($SHELL; Command Prompt on Windows) on a local pseudo-terminal
--command 'CMD' Any program, run with /bin/sh -c (cmd /C on Windows)
--telnet HOST[:PORT] or telnet://HOST:PORT Telnet (port 23 by default)
--ssh [USER@]HOST or ssh://USER@HOST SSH through the system OpenSSH client
--serial DEVICE A serial line: /dev/ttyUSB0 on Linux, COM3 on Windows
--port PORT TCP port for --telnet or --ssh

Add --sessions 2 to open two sessions to the same destination in one split window (see Using veetee).

Saved connections

Connections… in the window menu lists saved connections. Open one in a new window with its arrow button, or add, edit and delete them; Save as Connection… saves the current window's connection. Each has a name, a type (Telnet, SSH, serial line, local shell or command) with its host, port, device or command, serial line settings, the terminal model, phosphor, one or two sessions, and optionally a log file.

They are kept in ~/.config/veetee/profiles.toml (%LOCALAPPDATA%\veetee\profiles.toml on Windows), which can be edited by hand:

[[profile]]
name = "vms1"
connection = "telnet"         # shell, command, telnet, ssh or serial
host = "vms1"
model = "vt420"
phosphor = "green"
log = "~/logs/vms1-%Y%m%d.log"
log-timestamps = true

[[profile]]
name = "console"
connection = "serial"
device = "/dev/ttyUSB0"
baud = 9600
parity = "n"                  # n e o m s
flow = "x"                    # x (XON/XOFF), h (RTS/CTS), n

veetee --profile vms1 opens one from the command line; options given with it override it (for example --profile vms1 --model vt520). veetee --list-profiles lists them. A window opened from a saved connection is titled with its name.

Logging a session

Log to File… in the window menu writes the active session's text to a file as it arrives, until it is chosen again. The log holds the characters as the terminal shows them — DEC line drawing and national characters as Unicode — with a line break for each new line; the status line is left out. Timestamp Log Lines starts each line with the date and time.

Option Does
--log FILE Adds the session's text to FILE; ~ and %Y %m %d %H %M %S are expanded
--log-timestamps Starts each logged line with the date and time
--log-raw Logs the host's bytes exactly as received instead

Telnet, SSH and serial windows stay open when the connection closes, so you can still read and copy the final screen. Local shells and commands close their window when they exit.

Telnet

veetee has its own Telnet client. It negotiates:

  • BINARY, so 8-bit DEC control characters and the DEC Multinational set pass unchanged
  • TERMINAL-TYPE — the model name, e.g. VT420
  • NAWS window size, SUPPRESS-GO-AHEAD, ECHO and terminal speed

F5 (Break) sends a Telnet BREAK.

SSH

SSH runs your system ssh -tt (on Windows, the OpenSSH client that ships with Windows). Keys, agents, ~/.ssh/config, ProxyJump and known_hosts therefore behave exactly as they do in a shell. TERM is set to the model's terminfo name (vt420 by default). Password prompts appear in the terminal window.

veetee --ssh system@vms1
veetee --ssh vms1 --port 2222

OpenSSH only sends a BREAK through its escape sequence: press Return, then type ~B.

Serial lines

veetee --serial /dev/ttyUSB0                                  # 9600 8N1, XON/XOFF
veetee --serial /dev/ttyUSB0 -b 19200 -d 7 -p e -s 1 -f h     # picocom-style options
veetee --serial COM3                                          # Windows
Option Values Default (DEC factory Set-Up)
-b, --baud bits per second 9600
-d, --databits 5, 6, 7, 8 8
-p, --parity n none, e even, o odd, m mark, s space n
-s, --stopbits 1, 2 1
-f, --flow x XON/XOFF, h RTS/CTS, n none x

The port is opened for exclusive use. F5 sends a line break. F1 (Hold Screen) stops reading, so the host is flow-controlled just as with the Hold Screen key on a real terminal.

On Linux, join the dialout group and log in again to use a serial port without root:

sudo usermod -aG dialout $USER

LAT

LAT (Local Area Transport) and Telnet COM port control (RFC 2217) for terminal servers are planned; see Roadmap.

Recording a session

--record FILE.vtrec records a session: everything the host sent, the terminal's replies, and named checkpoints. Press Ctrl+Shift+M, or choose Mark Checkpoint in the window menu, whenever the screen shows something worth checking.

veetee --record edt.vtrec --telnet vms1
vt-headless replay edt.vtrec --bless     # write edt/checkpoint-01.screen, …
vt-headless replay edt.vtrec             # later: compare the screens again

Typed keys are left out unless you add --record-keys, so passwords do not end up in the file. The host's output is recorded, though, including anything it echoes (such as your user name) and the text of every screen. Review a recording before sharing it.

A .vtrec file is plain text: a header with the terminal configuration, then one line per event with a timestamp and base64 data. Recordings of real OpenVMS applications become tests; see OpenVMS and Conformance Testing.

Clone this wiki locally