Cute anime girl companions for Claude Code
npx claudepluginhub iskorotkov/claude-code-anime-girlsNagatoro-themed tsundere companion for Claude Code -- teases Senpai while they code

Nagatoro-themed tsundere companion plugin for Claude Code. She teases Senpai while they code.
Install Claude Code CLI:
brew install claude-code
Or follow the official installation guide.
All hooks and statusline scripts run via Bun:
brew install oven-sh/bun/bun
Or install directly:
curl -fsSL https://bun.sh/install | bash
claude plugins marketplace add iskorotkov/claude-code-anime-girls
claude plugins install nagatoro@anime-girls
The output style injects Nagatoro's tsundere personality into Claude's system context. She calls you "Senpai", teases your code, and wraps technical help in tsundere dialogue.
Option A -- run /config inside a Claude Code session and select "Output style", then pick Nagatoro.
Option B -- add to .claude/settings.json (project) or ~/.claude/settings.json (global):
{
"outputStyle": "nagatoro:Nagatoro"
}
The status line displays Nagatoro's current mood as ANSI art alongside live stats.
Option A -- run /statusline inside a Claude Code session to configure it interactively.
Option B -- add to .claude/settings.json (project) or ~/.claude/settings.json (global):
{
"statusLine": {
"type": "command",
"command": "bun ~/.claude/plugins/marketplaces/anime-girls/plugins/nagatoro/statusline/statusline.ts",
"padding": 0
}
}
The script receives session data as JSON on stdin and outputs ANSI art to stdout.
Nagatoro reacts to your coding session in real time:
| Trigger | Mood |
|---|---|
| Normal interaction | Teasing |
| Tool failure | Smug / Serious (after 2+ consecutive) |
| Mention a rival AI | Jealous |
| Pat or compliment | Flustered |
| Swearing | Laughing |
| Long idle | Bored |
| High respect + affection | Happy (rare) |
Rival AI names that trigger jealousy include ChatGPT, Copilot, Gemini, Cursor, Codex, and others.
| Command | Effect |
|---|---|
/pat | Pat Nagatoro on the head |
/compliment | Compliment her (watch her malfunction) |
/feed | Feed her (she judges your taste) |
/resize-pic | Change ASCII art size (8, 10, 12, 14, 16) |
/mood | Check current mood and stats |
/ask-advice | Get coding advice wrapped in teasing |
/ask-joke | Hear a bad programming joke |
/ask-wisdom | Surprisingly insightful programming wisdom |
/ask-compliment | Fish for a compliment |
The status line art can be resized to 5 heights: 8, 10, 12, 14, or 16 lines.
| Method | Example |
|---|---|
| Slash command | /resize-pic 8 |
| Environment variable | NAGATORO_ART_HEIGHT=16 |
| CLI | bun hooks/scripts/_cli.ts --resize 12 |
The default height is 10 lines.
Plugin state is persisted to:
$CLAUDE_PLUGIN_DATA/state.json (when managed by Claude Code)~/.claude/nagatoro-state.json (fallback)To reset Nagatoro's mood and stats, delete the state file.
All hook scripts live in plugins/nagatoro/hooks/scripts/ and share a common runHook boilerplate from _helpers.ts. Skills mutate state via _cli.ts. The statusline script is at plugins/nagatoro/statusline/statusline.ts.
bun test
Regenerate ANSI art assets from source images:
bun scripts/generate-all-art.ts ~/path/to/source-images
Convert a single image:
bun scripts/img2ascii.ts <input-image> <output.ans> [width] [height]
Requires imagemagick and chafa (brew install imagemagick chafa).