Skip to content

Session Logs

A session log is a plain-text file that receives everything a session shows, written as it happens. It is the always-on counterpart of Session Transcripts: a transcript is something you start by hand, keep in memory and save encrypted; a session log is opened the moment a session connects and closed when it ends, and it is written in the clear so any editor can open it later.

Session logging is off by default.

  • Desktop: Settings > Appearance > Terminal > Session log > Log every session to a file.
  • Mobile: Settings > Terminal > Session log > Log every session to a file.

The setting is device-local. It names a folder on this device, so it is never synced: turning logging on here does not turn it on anywhere else.

  • A header naming the connection (user@host:port) and when the session started.
  • Everything the terminal displayed, with escape sequences (colours, cursor movement, window titles) stripped, so the file reads the way the screen did. A progress bar that redraws its line becomes one line per redraw.
  • A footer with the time the session ended. A reconnect of the same session appends to the same file with a === Reconnected === marker.
  • Inside a tmux control-mode session, every pane logs to the same file, with a --- pane %N --- line whenever the output switches to another pane.

Output is handed to the operating system at least once a second, so a crash or a dropped link loses at most a second of output.

Turn on Timestamp each line to prefix every line with the local time it arrived, in [HH:MM:SS] form.

Files are named <connection label>_<date>_<time>.log, with characters that are not valid in file names replaced.

  • Desktop: the default folder is Documents/ZestSSH/session-logs. The Folder row in Settings shows the folder in use, with Change (pick another folder), Open (show it in Explorer / Finder / your file manager) and Use default.
  • Mobile: logs are kept in the app’s own storage. The Session logs row in Settings lists the files on this device, newest first, with Share (send a file to another app) and Delete.
  • The file is not encrypted. It holds whatever the session printed, and that includes a password or a key if a program echoed one. Treat the log folder the way you would treat the session itself.
  • Recording mode masks file names (they carry the connection label) wherever the app displays them, the same way it masks host names elsewhere.
  • If a write fails (disk full, folder removed), that session’s log stops and the session’s connection log says so; the session itself is unaffected.

Session logs, transcripts and command history

Section titled “Session logs, transcripts and command history”
Session logSession transcriptCommand history
StartsAutomatically, every sessionBy hand, per sessionAutomatically, every session
HoldsAll output, plain textAll output, encrypted at restThe commands you ran
WrittenAs it happensWhen you saveAs it happens
SyncsNeverNeverYes, end-to-end encrypted (Squeezed)