AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
scat: a Bash terminal UI to watch and manage servers over SSH. Keys only, no passwords stored.
Translation pending
Developer toolsShellGitHub @d3m0nazOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Terminal UI for monitoring servers over SSH. Keys or ssh-agent only, passwords are never stored.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗scat is a small app for your terminal. It logs in to your servers with plain SSH and shows you what they are doing. Nothing gets installed on the servers. No agents, no web panel, no passwords stored.
sudo rule (see below).Takes about five minutes.
scat needs Bash 5 on the machine you work on (not on your servers).
Check your version with bash --version.
| Your system | What to do |
|---|---|
| macOS | brew install bash, then put /opt/homebrew/bin first in your PATH |
| Linux | Usually there already. Otherwise apt install bash (or dnf / pacman) |
The macOS system Bash (version 3.2) is too old and is not supported.
curl -fsSL https://raw.githubusercontent.com/d3m0naz/scat/main/install.sh | bash
scat --help
The installer downloads the current release and checks its SHA-256 checksum. If the checksum does not match, nothing gets installed.
Start scat and press a to add a server. Or write it into the config file
yourself, ~/.config/scat/servers.conf:
[web1]
host = 203.0.113.10
user = deploy
group = production
host is the only required line. Anything ssh web1 understands works here,
including aliases from ~/.ssh/config.
Select a server and press Enter for its details. Press s to open a normal
SSH shell on it. q goes back.
| Key | What it does |
|---|---|
↑ ↓ or j k | move |
Enter | open |
Esc or q | back |
a e d | add, edit, delete a server |
s | open an SSH shell on the server |
r | refresh now |
p | all processes |
m | Docker view (if the server has Docker) |
t / f | group headings on/off, °C/°F (for this session) |
? | help, with every key |
The full list is in the reference.
scat can show the temperature and health of your disks (SMART). Reading that
data needs root rights. scat never asks for a password, so you give it
exactly one permission on each server: running smartctl without a password.
On the server (Linux, as an admin user):
Create the rule. Replace <scat-user> with the user that scat logs in as:
<scat-user> ALL=(root) NOPASSWD: /usr/sbin/smartctl -n standby -A /dev/sd[a-z], \
/usr/sbin/smartctl -n standby -A /dev/sd[a-z][a-z], \
/usr/sbin/smartctl -n standby -A /dev/nvme[0-9]n[0-9]
Save it with sudo visudo -f /etc/sudoers.d/scat. Use the path that
command -v smartctl shows on your system.
Check it:
sudo visudo -cf /etc/sudoers.d/scat # should say: parsed OK
sudo -l -U <scat-user> # lists the allowed commands
What this rule does and does not do:
-A), nothing else.-n standby means: a disk that is spun down stays asleep. scat shows it as SLEEP.sd* and nvme*. Partitions and other devices are not included.If you prefer not to add the rule, leave the section off: set drives = 0 in
settings.conf. With only smartctl -A allowed (no -n standby), scat still
works, but it wakes sleeping disks. Details are in the
reference.
On OPNsense and other FreeBSD systems, where scat logs in as root, no sudo rule is needed.
If a server has a docker command, m opens a table of its containers: name,
image, status, health, CPU and memory. Running containers come first. The detail
view shows the five busiest ones.
scat only reads. It does not start, stop or pull anything, and it does not know about Compose or Podman.
Heads-up: Docker access is root access. Anyone who may use the Docker socket can do anything on that server, so only let scat's user in if that user may have root rights anyway. Details are in the reference.
The list shows the CPU temperature in the TEMP column. scat reads only sensors
of the CPU itself. Press f for °F. Setting temp_unit = f makes it the
default. Details on which sensors are used are in the
reference.
Everything lives in ~/.config/scat/. The most useful keys in settings.conf:
| Key | Default | What it does |
|---|---|---|
theme | default | colours: default, light, solarized, nord, high-contrast |
ping | 1 | show the ping column in the list |
group_headings | 1 | show group names in the list |
temp_unit | c | c or f |
drives | 1 | show the disk section (SMART) |
list_refresh | 15 | seconds between list refreshes |
Every key, with its range, is in the reference.
Your passwords stay where they are. scat never reads or stores them. Config files are yours alone (mode 600) and are read as plain data.
The full reference, with every measurement, every key and every file, is in docs/reference.md. It covers:
MIT. See LICENSE. © 2026 d3m0naz.