Files
timmy-home/morrowind/hud.sh
Alexander Whitestone 0d64d8e559 initial: sovereign home — morrowind agent, skills, training-data, research, specs, notes, operational docs
Tracked: morrowind agent (py/cfg), skills/, training-data/, research/,
notes/, specs/, test-results/, metrics/, heartbeat/, briefings/,
memories/, skins/, hooks/, decisions.md, OPERATIONS.md, SOUL.md

Excluded: screenshots, PNGs, binaries, sessions, databases, secrets,
audio cache, timmy-config/ and timmy-telemetry/ (separate repos)
2026-03-27 13:05:57 -04:00

58 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Timmy's Morrowind HUD — live view of what I see and do
# Run in a tmux pane: watch -n 3 -t -c bash ~/.timmy/morrowind/hud.sh
B='\033[1m'; D='\033[2m'; R='\033[0m'
G='\033[32m'; Y='\033[33m'; C='\033[36m'; M='\033[35m'; RD='\033[31m'
echo ""
echo -e " ${B}${M}⚡ TIMMY — MORROWIND${R} ${D}$(date '+%H:%M:%S')${R}"
echo -e " ${D}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${R}"
# Game status
PID=$(pgrep openmw 2>/dev/null | head -1)
if [ -n "$PID" ]; then
echo -e " ${G}${R} OpenMW running (PID $PID)"
else
echo -e " ${RD}${R} OpenMW not running"
fi
# Last action
echo ""
echo -e " ${B}LAST ACTION${R}"
[ -f /tmp/timmy_last_action.txt ] && head -3 /tmp/timmy_last_action.txt | sed 's/^/ /' || echo -e " ${D}None${R}"
# Perception
echo ""
echo -e " ${B}PERCEPTION${R}"
[ -f /tmp/timmy_perception.txt ] && cat /tmp/timmy_perception.txt | sed 's/^/ /' || echo -e " ${D}Waiting...${R}"
# Log (filtered)
echo ""
echo -e " ${B}LOG (recent)${R}"
LOG=~/Library/Preferences/openmw/openmw.log
if [ -f "$LOG" ]; then
tail -40 "$LOG" 2>/dev/null | grep -E "Loading cell|Starting|AiTravel|AiEscort|Timmy|ALIVE|Walk|error|PERCEPTION" | tail -5 | while read line; do
echo -e " ${D}${line}${R}"
done
fi
# Latest screenshot as sixel/kitty or just path
echo ""
echo -e " ${B}SCREENSHOT${R}"
LATEST=$(ls -t /tmp/timmy_screen_*.png 2>/dev/null | head -1)
if [ -n "$LATEST" ]; then
AGE=$(( $(date +%s) - $(stat -f %m "$LATEST") ))
echo -e " ${C}$(basename $LATEST)${R} ${D}(${AGE}s ago)${R}"
# Try iTerm2 inline image protocol
if [ "$TERM_PROGRAM" = "iTerm.app" ] || [ -n "$ITERM_SESSION_ID" ]; then
printf '\033]1337;File=inline=1;width=60;preserveAspectRatio=1:'
base64 < "$LATEST" | tr -d '\n'
printf '\a\n'
else
echo -e " ${D}(open $LATEST to view)${R}"
fi
else
echo -e " ${D}No screenshots yet${R}"
fi