Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mom — Message Of the Day Manager

GitHub release Go Version Platform License Build

Your terminal deserves a better welcome.

mom is an interactive TUI that turns your boring static MOTD into a live, beautiful, data-rich dashboard — without editing a single text file.

Installation · Quick Start · Themes · Templates · Configuration


mom TUI demo
Configure, preview, and apply your MOTD without leaving the terminal.

Why mom?

  • 🚫 No more hand-editing /etc/motd or writing fragile shell scripts.
  • 🔌 32 modules that auto-detect their dependencies — if a tool isn't installed, the module silently skips itself.
  • 🎨 Pick a theme, choose your modules, preview the result, apply — all without leaving the terminal.
  • 🔒 Never runs as root. Sudo is used only for the final file write.
  • ↩️ Messed up? One command to rollback to the original.

Quick Start

# Interactive TUI
mom

# Zero-config: detect everything and write the MOTD now
mom --full-auto

# Apply a curated preset
mom --apply-template sysadmin

On first run, mom detects your distro, resolves MOTD paths, and stores an immutable backup of the original file.


Installation

One-liner (amd64):

curl -sL https://github.com/msalexms/MoM/releases/latest/download/mom_linux_amd64.tar.gz | tar xz && sudo install -Dm755 mom /usr/local/bin/mom

Packages:

sudo dpkg -i mom_*_amd64.deb   # Debian / Ubuntu
sudo rpm -i mom_*_amd64.rpm    # Fedora / RHEL

From source (Go 1.25+):

git clone https://github.com/msalexms/MoM.git && cd mom && make build

Releases ship .tar.gz, .deb, and .rpm for amd64, arm64, and armv7.


Features

Interactive TUI Keyboard-driven, vim-style. 12 dashboard actions, no mouse needed.
32 Modules System, resources, GPU, ZFS, containers, fail2ban, weather, git, and more.
6 Themes Default, Dracula, Nord, Solarized Dark, Monochrome, ASCII. Custom themes via TOML.
10 Templates Minimal, Sysadmin, Developer, Hacker, Full, Aesthetic, Security, Homelab, Gaming, Server.
Module Settings Unified settings hub — configure any module from one place.
Profiles Save, load, and delete config profiles for quick switching between setups.
Smart Backups Every write is snapshotted. Original MOTD is immutable. Rollback in one command.
Export / Import Share your setup across machines as a TOML file.
Cross-arch Native static binaries for amd64, arm64, armv7.

TUI Navigation

Key Action
/ or k/j Move cursor
Enter Select / Confirm
Space Toggle
Tab Next field
s / Ctrl+s Save & apply MOTD
a / d Enable / Disable all modules
Esc Back / Cancel
q / Ctrl+c Quit
? Help overlay

Themes

Six built-in themes. Drop a custom .toml into ~/.config/mom/ and it loads automatically.

Theme Style
default Bright 16-color ANSI — works everywhere
dracula Vivid pink/purple truecolor
nord Arctic blues, muted greens
solarized-dark Schoonover's classic dark
monochrome Bold/dim/italic only — zero color
ascii Plain text, no Unicode — pipe-friendly

Switch via TUI Theme Picker or set theme = "dracula" in config.


Templates

Curated presets that define which modules are enabled and their order. Template names are case-insensitive.

Template Focus
minimal Logo + system info only
sysadmin Resources, services, updates, logins
developer Git, tmux, containers, procs
hacker Figlet, weather, quote, network
full Every available module
aesthetic Logo, system, calendar, quote
security Firewall, fail2ban, SSH keys, certs
homelab Services, ZFS, containers, timers
gaming GPU, resources, reboot, cowsay
server Network, traffic, disk I/O, ports, journal
mom --export-template ./my-setup.toml   # save your config
mom --import-template ./my-setup.toml   # apply on another machine

Modules

32 modules — click to expand full list
Module Output Requires
logo Distro ASCII logo
system Hostname, OS, kernel, uptime, arch
resources CPU, memory, disk, swap
gpu GPU model and utilization
network IP addresses and gateway ip
traffic Network RX/TX counters
weather Current conditions curl
containers Running containers docker / podman
services Systemd service status systemctl
ports Listening TCP/UDP ports ss
procs Top processes by CPU/mem ps
diskio Disk read/write throughput
timers Systemd timer next-run systemctl
journal Recent error/warning logs journalctl
zfs Pool health and usage zpool
certs TLS certificate expiry openssl
firewall Firewall rules/status ufw / firewall-cmd
fail2ban Banned IPs and jails fail2ban-client
failed-logins Failed auth attempts lastb
sudo Recent sudo usage
battery Charge and power state
users Logged-in users
sshkeys SSH authorized key count
boot Last boot timestamp
git Repos with uncommitted changes git
tmux Active tmux sessions tmux
reboot Pending reboot indicator
updates Pending package updates apt/dnf/pacman/…
logins Last login summary last
calendar Date and upcoming events
quote Random motivational quote
cowsay ASCII art message cowsay/figlet/lolcat

Configuration

Config lives at ~/.config/mom/config.toml (auto-created on first run).

[mode]
theme   = "dracula"
variant = "default"
module_order = ["logo", "system", "resources", "network", "weather"]

[modules]
logo      = true
system    = true
resources = true
network   = true
weather   = true

[modules.weather_config]
city  = "London"
units = "metric"

[modules.cowsay_config]
mode    = "figlet"
message = "Stay sharp."

All module settings are also editable from the TUI via Module Settings (⚙).

Render Variants

Variant Style
default Standard key/value layout
compact Reduced spacing
minimal Bare essentials
ascii ASCII borders, no Unicode
boxed Unicode box frames

Headless Flags

mom --version                         # Version, commit, build date
mom --full-auto                       # Enable all modules and write MOTD
mom --apply-template <name>           # Apply a built-in template
mom --export-template <file.toml>     # Export config as template
mom --import-template <file.toml>     # Import and apply template
mom --rollback                        # Restore original MOTD
mom --uninstall                       # Remove all mom changes

Security

  • No TUI as root. Refuses to start interactively under sudo.
  • Immutable original. First backup is locked — never overwritten.
  • Snapshot every write. Timestamped backups, any state restorable.
  • Punctual sudo. Only the final cp/chmod runs elevated.

Development

make build      # linux/amd64 → bin/mom
make build-all  # amd64 + arm64 + armv7
make test       # go test ./... -v -race -count=1
make lint       # go vet + staticcheck
make fmt        # go fmt ./...
make run        # go run ./cmd/mom
make clean      # rm -rf bin/
./scripts/smoke-test.sh   # vet → build → test → version check

License

MIT — see LICENSE.


Built with Bubble Tea, Lipgloss, and Bubbles · Linux only · Go 1.25

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages