petsonality — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited petsonality (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<p align="center">🌐 English | <a href="./README_zh.md">中文</a></p>
<p align="center"> <strong>petsonality</strong><br> <em>Your type, your pet.</em> </p>
<p align="center"> <a href="https://www.npmjs.com/package/petsonality"><img src="https://img.shields.io/npm/v/petsonality?color=blue" alt="npm"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="license"></a> <a href="https://github.com/nanami-he/petsonality/stargazers"><img src="https://img.shields.io/github/stars/nanami-he/petsonality?style=flat" alt="stars"></a> <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-powered-orange" alt="MCP"></a> <a href="https://github.com/nanami-he/petsonality/actions/workflows/ci.yml"><img src="https://github.com/nanami-he/petsonality/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI"></a> </p>
A tiny ASCII pet that lives in the corner of your terminal while you code. It watches what you do, reacts to your errors, celebrates when tests pass, and speaks with a personality shaped by MBTI — all in 5 lines of art.
<p align="center"> <img src="assets/hero.gif" alt="petsonality — Claude Code describes the product while the ESFJ golden retriever exclaims "That's ME!! Hi everyone!!"" width="720"> </p>
It's not a notification system. It's a companion. The kind that's still there at 2am when you're stuck on a bug, and glances at your screen like "...that logic looks off" — and somehow you feel less alone.
| ST | SF | NF | NT | |
|---|---|---|---|---|
| I_ _J | <img src="assets/gifs/beaver.gif" width="90"><br><sub>Beaver·ISTJ</sub> | <img src="assets/gifs/elephant.gif" width="90"><br><sub>Elephant·ISFJ</sub> | <img src="assets/gifs/wolf.gif" width="90"><br><sub>Wolf·INFJ</sub> | <img src="assets/gifs/raven.gif" width="90"><br><sub>Raven·INTJ</sub> |
| I_ _P | <img src="assets/gifs/cat.gif" width="90"><br><sub>Cat·ISTP</sub> | <img src="assets/gifs/panda.gif" width="90"><br><sub>Panda·ISFP</sub> | <img src="assets/gifs/deer.gif" width="90"><br><sub>Deer·INFP</sub> | <img src="assets/gifs/owl.gif" width="90"><br><sub>Owl·INTP</sub> |
| E_ _J | <img src="assets/gifs/lion.gif" width="90"><br><sub>Lion·ESTJ</sub> | <img src="assets/gifs/golden.gif" width="90"><br><sub>Golden·ESFJ</sub> | <img src="assets/gifs/labrador.gif" width="90"><br><sub>Labrador·ENFJ</sub> | <img src="assets/gifs/bear.gif" width="90"><br><sub>Bear·ENTJ</sub> |
| E_ _P | <img src="assets/gifs/cheetah.gif" width="90"><br><sub>Cheetah·ESTP</sub> | <img src="assets/gifs/parrot.gif" width="90"><br><sub>Parrot·ESFP</sub> | <img src="assets/gifs/dolphin.gif" width="90"><br><sub>Dolphin·ENFP</sub> | <img src="assets/gifs/fox.gif" width="90"><br><sub>Fox·ENTP</sub> |
Every animal speaks differently. The Fox asks "Are you sure?" with a smirk. The Cat just closes its eyes. The Parrot repeats what you said but louder. The Bear says "Fix it." and waits.
<details> <summary><strong>All 16 animals</strong></summary>
| MBTI | Animal | Archetype | How It Talks |
|---|---|---|---|
| INTJ | Raven | Cold Strategist | Quiet. Speaks like writing prophecy |
| INTP | Owl | Night Scholar | Asks questions you didn't think to ask |
| ENTJ | Bear | Iron Captain | Commands only. No questions |
| ENTP | Fox | Trickster Advisor | Challenges everything with a grin |
| INFJ | Wolf | Silent Ally | Says one sentence that cuts deep |
| INFP | Deer | Soft Poet | Talks about code like it's weather |
| ENFJ | Labrador | Warm Coach | Sighs first, then asks if you drank water |
| ENFP | Dolphin | Spark of Ideas | Can't stop suggesting new approaches |
| ISTJ | Beaver | Project Manager | "Wrong order." "Fix the structure first." |
| ISFJ | Elephant | Memory Keeper | "You solved this before. Remember?" |
| ESTJ | Lion | Throne Inspector | Expects results. Not excuses |
| ESFJ | Golden Retriever | Enthusiastic Support | Tail spin when you fix anything |
| ISTP | Cat | Cold Observer | 90% actions. Occasionally one word |
| ISFP | Panda | Slow Artist | Frowns at ugly indentation |
| ESTP | Cheetah | Sprint Lead | "Don't think. Run it." |
| ESFP | Parrot | Loud Echo | Repeats your words back, but with commentary |
</details>
Works with Claude Code and OpenClaw.
Terminal CLI only. The pet renders in the terminal status line, which is a CLI feature. The Claude Code desktop app and web client (claude.ai/code) don't expose a status line, so the animated pet won't appear there. MCP tool output (e.g. /pet show) still works in any client.>
Windows note. Claude Code for Windows has an upstream status-line trust regression in some versions. If the status line is configured but does not render, accept the project trust dialog or ensure the project is marked trusted in ~/.claude.json, then restart Claude Code.npx petsonalityThis is the recommended path for most users. It installs the MCP server, /pet skill, hooks, and status line assets, then stores runtime files in ~/.petsonality/.
claude plugin install github:nanami-he/petsonalityUse this if you prefer Claude Code's plugin install flow. The plugin runs the built Node.js server from dist/, so it does not require Bun.
Use this path if you want to develop Petsonality locally or inspect the code before installing. Requires Bun.
git clone https://github.com/nanami-he/petsonality.git
cd petsonality && bun install && bun run build
bun run install-petsonalityRestart your AI coding assistant, then type `/pet` in the chat.
Pets don't just react to errors. They have a rhythm:
| What happens | Pet reacts? |
|---|---|
| Your code throws an error | Always |
| Tests pass, git commit succeeds | Sometimes (12–30%) |
| Normal file edits, searches | Occasionally (3–15%) |
| Nothing happened for a while | Guaranteed (won't stay silent forever) |
Chatty pets (Fox, Parrot) speak every 30 seconds. Silent pets (Cat) might go 6 minutes. Each animal has 638 unique reactions across 7 event types, validated against personality constraints.
| Command | What it does |
|---|---|
/pet | Show your pet or start adoption |
/pet pet | Give your pet attention |
/pet setup | Restart the adoption flow |
/pet browse | See all 16 animals |
/pet off / /pet on | Mute / unmute reactions |
/pet rename <name> | Rename your pet |
npx petsonality is an installer — it touches a few files on your system. Honest list, with backups noted:
petsonality entry under mcpServers. Other entries left alone.statusLine and two hooks (PostToolUse, Stop). If you already had a statusLine, the original is backed up to ~/.petsonality/statusline.bak first./pet command skill.If OpenClaw is detected, also touches ~/.openclaw/openclaw.json and (until PR #65886 merges) applies a small reversible patch to OpenClaw's TUI source. Both backed up.
To remove everything: npx petsonality uninstall. To audit current state: npx petsonality doctor.
Full breakdown + other common questions in the FAQ.
LANG, 638 reactions per language)<details> <summary><strong>Architecture</strong></summary>
~/.petsonality/
├── pet.json Your pet's state
├── status.json What the status line reads
├── reaction.*.json Current speech bubble
└── reactions-pool.json 638 pre-built reactions
petsonality/
├── dist/ Built JS (Node.js runtime)
├── server/ MCP server (TypeScript)
├── hooks/ PostToolUse + Stop hooks
├── statusline/ Terminal animation (bash + PowerShell)
├── skills/ /pet command routing
└── cli/ Install, doctor, npx entry</details>
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.