zulfikar-ditya/claude-mods-oyen
oyen
An orange pixel cat that lives above the Claude Code prompt, reacting to commits, tests, builds and todo ticks with persistent mood and xp.
About this mod
Oyen is a Claude Code mod (plugin of function hooks) showing an orange pixel cat in the terminal. It strolls, chases a ball, and reacts to repo events: happy and fed on commits (+10 xp), grumpy on failed commits or tests, cheering on passing tests (+5 xp) and ticked todo.md items, hiding in a box on build failure, and sleeping after idle time. State (mood, level, commits fed, daily streak) persists locally. Commands include /oyen, /oyen feed, /oyen pet and /oyen play. Settings (enabled, language, walk, sound, idleMinutes, minColumns) are configurable via /config or ~/.claude/settings.json. Requires Claude Code 2.1.287+. Install via /plugin marketplace add and /plugin install. MIT licensed.
Installation
Check the author's README for the marketplace and plugin name first. Commands may change as the repository evolves.
claude plugin marketplace add zulfikar-ditya/claude-mods-oyen claude plugin install oyen
Original text / README
Oyen
An orange pixel cat that lives above the Claude Code prompt. It strolls back and forth, chases a ball, and reacts to what Claude does in your repo: happy on a commit, grumpy when one fails, cheering when tests pass or a todo.md item gets ticked, hiding in a box when the build breaks, and asleep when you've been away.
Oyen is a Claude Code mod (a plugin of function hooks). Its mood, level, commits fed and daily streak are kept across sessions, on your machine only.
Install
/plugin marketplace add zulfikar-ditya/claude-mods-oyen
/plugin install oyen@oyen
Needs Claude Code 2.1.287 or later. The pixel cat is drawn in the terminal; the desktop app shows an ASCII cat instead.
What it reacts to
| When Claude… | Oyen |
| --- | --- |
| commits | is happy and gets fed (+10 xp) |
| tries a commit that fails or is blocked | is grumpy |
| runs tests that pass | cheers (+5 xp) |
| runs tests that fail | is grumpy |
| runs a build that fails | hides in a box |
| ticks a - [ ] item in todo.md | cheers (+5 xp per item) |
| does nothing for 10 minutes | falls asleep, until your next prompt |
Test and build output is read too, so a failure piped through tail still counts. Only Claude's commands count; your own terminal is left alone.
Commands
/oyen: level, xp, mood, commits fed and streak/oyen feed: a fish/oyen pet: a purr (and a meow, if sound is on)/oyen play: a game of chasing the ball
Settings
In /config under oyen, or in ~/.claude/settings.json under pluginConfigs.oyen.options:
| Setting | Default | |
| --- | --- | --- |
| enabled | true | Show the cat |
| language | en | en, ms, id, zh-Hans, zh-Hant or ja |
| walk | true | Stroll and play while idle |
| sound | false | Meow on level-up and on /oyen pet |
| idleMinutes | 10 | Minutes before it falls asleep |
| minColumns | 60 | Hidden on terminals narrower than this |
Turning it off
- Hide the cat: set
enabledtofalse. It still keeps count. - Keep it still or quiet: set
walkorsoundtofalse. - Remove it:
/plugin uninstall oyen@oyen.
Developing
claude --plugin-dir . # run it from this folder
claude plugin validate .
claude plugin test .
The poses are drawn as letter grids in hooks/pixels.ts (o fur, k eyes and mouth, . see-through) and the lines live in hooks/lines.ts.
License
MIT, see LICENSE.
