a terminal fennec pet that lives in your shell. reacts to your git commits, test runs, and how badly you neglect them.
/\ /\
/ \___/ \
\ ◕ ◕ /
\ ω /
'-----'
- tiny mood face in your right prompt —
(^ω^)>ω<(-_-)(>﹏<)(o.o)(T_T)(x_x) - full TUI you can open to pet, feed, and let them sleep
- watches your shell — fires events on
git commit,git push,git push --force,git merge, and common test commands (cargo test,pytest,npm test, etc.) - 7 moods derived from recent events + sustained stats (hunger / energy / affection) + time of day
git clone https://github.com/PrettyFox0/fennec ~/fennec
cd ~/fennec
cargo install --path .
fennec init --apply # or just `fennec init` to see the snippet first
source ~/.zshrcrequires rust ≥ 1.80 and zsh. terminal must speak unicode.
fennec |
open the TUI — pet [p], feed [f], sleep [s], quit [q] |
fennec status |
print a tiny mood face (used by RPROMPT, ~2ms) |
fennec event <kind> |
manually record commit, push, force-push, merge, test-pass, test-fail, cmd-error, pet, feed, sleep |
fennec init [--apply] |
write zsh integration + (optionally) append source line to ~/.zshrc |
fennec reset |
a new kit arrives |
state lives at ~/.local/share/fennec/state.json.
most recent event (within 5 minutes) wins. otherwise sustained stats and time of day decide.
| trigger | mood |
|---|---|
git push --force* |
angry (>﹏<) |
| 3+ commits in last hour | hyper >ω< |
| test fail / command error | concerned (o.o) |
| pet / feed | happy (^ω^) |
| energy < 20 | sleepy (-_-) |
| hunger > 80 or affection < 20 | sad (T_T) |
| no interaction in 7 days | dead (x_x) |
| 0–6am, idle > 30min | sleepy (-_-) |
| default | happy (^ω^) |
a single file at ~/.config/fennec/init.zsh that:
- ensures
~/.cargo/binis onPATH - appends
$(fennec status)toRPROMPT - wraps
gitto fire events on success (commit / push / force-push / merge) - registers
preexec+precmdhooks to detect test runs
set FENNEC_NO_RPROMPT=1 if you don't want the prompt face.
- background daemon with desktop notifications on mood transitions
- stat decay over time (hunger climbs, energy drains)
- idle animations in the TUI (ear twitches, blinks)
- global git hooks via template dir (for repos you didn't
git clonethrough zsh) - bash + fish integration
MIT