securely send cute MOTDs to your (girl|enby|boy)friends' computers
MeOwTD is intended to be used with SSH command restriction to give someone limited access to your
system MOTD file (usually /etc/motd)
it comes with an integrated CLI client for easy access :3
if you're on NixOS, the flake contains both a NixOS module and a home-manager module that you can use
there's also an AUR package for Arch users :3
on non-NixOS systems, theres two ways you can set up MeOwTD receiver. you can either use the setup bash script or do it manually
automated
- clone the repository
- run
bash setup.sh install # to build and install the binaries (if not installed any other way) bash setup.sh user # to set up the system user and permissions bash setup.sh add-key 'YOUR-SSH-PUBKEY' # to add an authorized key
- enable your SSH server with public key authentication
manual
- install the
meowtd-receivebinary to/usr/bin/meowtd-receive - create the
mowtdsystem user and groupuseradd --system --create-home --shell /bin/sh --home-dir /var/lib/meowtd --gid meowtd meowtd
- set
/etc/motdpermissionschown root:meowtd /etc/motd chmod 0664 /etc/motd
- configure authorized keys
mkdir -p /var/lib/meowtd/.ssh echo 'command="exec /usr/bin/meowtd-receive",restrict YOUR-SSH-PUBKEY' | tee -a /var/lib/meowtd/.ssh/authorized_keys chown -R meowtd:meowtd /var/lib/meowtd chmod 0700 /var/lib/meowtd/.ssh chmod 0600 /var/lib/meowtd/.ssh/authorized_keys
- enable public key authentication in your SSH server
- make sure your SSH server is running
receiver functionality can be configured with the following environment variables
| name | description | default |
|---|---|---|
MEOWTD_PATH |
absolute path to the motd file | /etc/motd |
MEOWTD_MAX_LENGTH |
maximum allowed message length (0 for unlimited) | 1024 |
yay! you can now use a configured MeOwTD client to connect and send a message :3
meowtd 'hewwo wowld :3'you can also optionally make your shell print the MOTD every time it's launched
example for ZSH
# ~/.zshrc
if [[ -f /etc/motd ]] && [[ ! -o login ]]; then
echo -ne '\e[2m'
cat /etc/motd
echo -ne '\e[0m'
fiMeOwTD is configured with a json file in $XDG_CONFIG_HOME/meowtd/config.json usually
(~/.config/meowtd/config.json)
example configuration
// comments are not allowed in actual json
// theyre added here for clarity
{
"address": "your-ip-or-hostname",
"port": 22, // default: 22
"auth": {
"username": "meowtd", // default: meowtd
"key": {
"private": "/path/to/your/ssh_key",
"public": "/path/to/your/ssh_key.pub", // default: private with the .pub suffix
}
}
}Copyright 2026 june