A tiny terminal cat companion. Type haru when the terminal feels too empty —
it says meow, shows a little ASCII cat, and gives you a small, kind tip.
$ haru
meow.
/\_/\
( o.o )
> ^ <
tip: drink water before debugging. the bug can wait, your kidneys cannot.
haru summon the cat
haru --pat pat Haru (counts toward today's pats)
haru --feed feed Haru (counts toward today's feeds)
haru --status show mood and today's / total pats & feeds
haru --lang zh force a language (auto-detected from your locale otherwise)
haru --version
haru --help
Haru remembers how many times you've patted and fed it today. It never guilt-trips you, never decays, and never punishes you for being away.
Haru speaks English, 中文, and 日本語.
It picks your language from the system locale automatically; override with --lang en / --lang zh / --lang ja, or the
HARU_LANG environment variable. Each language lives in assets/lang/<code>/ and is written by hand (not machine-translated) —
contributions welcome.
haru does not touch the network and collects no data. Everything lives on your machine:
- State (the save file):
$XDG_STATE_HOME/haru/state.json(Linux, default~/.local/state/haru/); on macOS it falls back to~/Library/Application Support/cat.haru.haru/state.json. It's plain JSON — read it, edit it, delete it to start fresh. - Tips & flavor text: baked into the binary from
assets/lang/<code>/(tips.txt, pluspat.txt/feed.txtfor pat & feed reactions). Edit and rebuild to make Haru say your own things.
cargo build --release
./target/release/haru
MIT — see LICENSE.
Parts of this project’s code were generated with the assistance of AI, but the author has a fairly complete understanding of the codebase and overall program architecture.
Contributions are welcome, whether in the form of code or copywriting in different languages. Your improvements are greatly appreciated.