tlog session recording vs shellz
tlog is Red Hat's free terminal recorder, built into RHEL and managed through its identity tools. It's a good choice for recording non-root admins on RHEL. Red Hat's own docs name two limits: root can switch it off or get around it, and by default recordings are lost when the server reboots. shellz fits when root sessions are what you're audited on, when recordings must leave the server encrypted, or when your servers also run Ubuntu or Debian.
Choose shellz if
- Recordings must survive reboots and leave the server encrypted, without building your own log pipeline.
- You're audited on root sessions, and you want tampering reported.
- Your servers run Ubuntu or Debian, where tlog's web player isn't packaged.
- You want one dashboard for all servers, live view in the browser, and Slack or webhook alerts.
Stick with tlog if
- You run RHEL with Red Hat Identity Management, and want recording to follow those users and groups.
- Recordings must stay on your own infrastructure. shellz is SaaS only.
- Your policy prefers tools that ship with the operating system and are supported by Red Hat.
- You record non-root admins and are happy to review one server at a time.
At a glance
| Capability | shellz | tlog + Cockpit |
|---|---|---|
| Price | Free for 10 devices; Commercial $10 per member a month + $1/GB | Free; ships with RHEL |
| Who gets recorded | Every login on the server, including consoles and su - | The users and groups you list in the identity service's config |
| Root user | Recorded; tampering is undone within seconds and reported | No guarantee: Red Hat says root can disable or bypass recording |
| Survives reboot | Yes, uploaded about every second | Partial: lost on reboot unless you turn on persistent logs |
| Encrypted before leaving the server | Yes | No; depends on how you forward logs |
| Tamper evidence | Yes, every segment is signed and chained | Partial: optional log sealing, if you set up keys |
| Typed passwords | Never recorded | Keystroke recording is off by default; if on, passwords are saved in plain text |
| Live view | Yes, in the browser, about one second behind | Yes, in a terminal |
| Player | Browser player, transcript and export | Cockpit web console on each server, or a terminal player |
| One view across servers | Yes, one dashboard | Partial: one server at a time unless you run Elasticsearch |
| Terminals in a GNOME desktop | Yes | No: Red Hat says they aren't recorded |
| docker exec sessions | Yes, as their own sessions linked to the SSH login | Not as separate sessions |
| Alerts | Email, Slack, webhook | None built in |
| Self-hosted | No, SaaS only | Yes, data stays on your servers |
Red Hat documents two limits that matter in an audit
Root first. tlog can record root, but Red Hat's RHEL 10 docs say root can disable or bypass the recording, so those recordings aren't reliable evidence. If your auditor samples privileged sessions, this is the deciding issue.
Then reboots. tlog writes to the system journal, and Red Hat says the journal is kept in memory by default. A reboot erases every recording on the server. The fix is one setting: Storage=persistent in /etc/systemd/journald.conf.
How tlog works on RHEL
tlog runs as the user's login shell. It sits between the terminal and the real shell and saves everything shown on screen to the system journal. SSSD, the RHEL service that connects servers to your user directory, decides which users and groups get tlog as their shell. Cockpit, RHEL's web admin console, has a plugin to play recordings back.
Keystroke recording ships turned off because it saves typed passwords in plain text. Leave it off. For many servers, Red Hat's Ansible role for tlog does the setup for you.
- Install it:
dnf install tlog - Choose who to record in an SSSD config file, under
[session_recording]. - Turn it on:
authselect select sssd with-tlog, thensystemctl restart sssd
Three more gaps to know about
- Terminals opened in a GNOME desktop aren't recorded.
- A recorded user who watches the journal live ends up recording their own recordings. Red Hat's docs give a filter to avoid the loop.
- A remote command like
ssh admin@client rm -f /some/fileis recorded only if recording is set up for that user on that server.
tlog leaves encryption and central storage to you
tlog's recordings are plain, unsigned JSON. Anyone who can read the journal can read them. The journal has an optional sealing feature that adds tamper evidence, but only for logs saved to disk, and you have to set up its keys.
To search recordings across servers, you forward them with rsyslog to an Elasticsearch cluster you run. Match on tlog's user ID rather than its program name, because any process can claim that name.
shellz encrypts each session on the server with its own key, signs every segment, and stores recordings so they can't be changed or deleted before retention ends. Every replay requires a fresh sign-in and is logged (security model).
Cockpit plays back one server at a time
Cockpit's player runs on each server, for admins of that server. That works for five servers and gets painful at fifty. In a terminal, tlog-play can follow a live session and change speed, but it can't rewind.
shellz shows every server in one browser view. You can follow live sessions, replay at any speed, read a transcript, and search by user, source IP, command, server or container.
Run tlog for in-house RHEL, shellz for root and mixed fleets
If you run RHEL with Identity Management, record non-root admins and must keep data in-house, run tlog. Turn on persistent journal storage and forward to a log server you control.
Choose shellz if root is the account you're audited on, if Ubuntu or Debian is in the mix, or if you'd rather not run Elasticsearch to find out who ran a command. It also records AI agents that SSH in under their own accounts. shellz has no self-hosted version and can't block commands, and it doesn't have its own SOC 2 report yet.
Related: shellz vs auditd, what replaces sudo I/O logging on Ubuntu, and shellz pricing.
Questions
Does tlog record the root user?
It can, but Red Hat's RHEL 10 docs say root can disable or bypass it, so don't rely on those recordings in an audit.
Why are my tlog recordings gone after a reboot?
The journal was kept in memory. Set Storage=persistent in /etc/systemd/journald.conf (or create /var/log/journal), then restart journald.
Is there a Cockpit session recording plugin for Ubuntu?
Not in Ubuntu's archive. tlog itself is in Ubuntu 26.04's universe archive, so you can record sessions and play them back in a terminal with tlog-play.
Can I watch a tlog session while it's happening?
Yes, from a terminal. tlog-play -f follows a live session, much like tail -f.
Is tlog safe to use with keystroke recording on?
Only if you accept plain-text passwords in the log, which is why Red Hat turns it off by default. shellz never records input at hidden prompts such as sudo and passwd.
Related comparisons
Sources
Competitor details come from public documentation and pricing pages, last checked on November 3, 2026. Products change; if something here is out of date, tell us at hello@shellz.dev and we will correct it.
- Red Hat: Getting started with Session Recording (RHEL 8)
- Red Hat: Deploying Session Recording (RHEL 8)
- Red Hat: Configuring session recording by using the CLI (RHEL 10)
- Red Hat: Session recording with the tlog RHEL system role (RHEL 10)
- tlog README (Scribery)
- cockpit-session-recording (Scribery)
- journald.conf(5): Storage= and Seal=
- Ubuntu packages: tlog (26.04)
- Ubuntu packages search: cockpit-session-recording (no results)