DEV Community

Cover image for I gave my AI coding assistant a body — and now it lives in my terminal
hiehoo
hiehoo

Posted on

I gave my AI coding assistant a body — and now it lives in my terminal

The problem with invisible AI

I code with Claude every day. It's genuinely helpful. But the interaction is... clinical. Text in, text out. No personality. No sense that something is there with me.

I kept thinking: what if your AI assistant had a presence? Not a chatbot avatar. Something that reacts to what you're doing. Gets happy when tests pass. Gets tired when you've been coding for 6 hours straight. Has idle thoughts while you're reading docs.

So I built it.

Meet Oh My Kira

Animated GIF of Oh My Kira in a terminal side-pane, showing a pixel art character reacting to code changes and displaying hunger/energy stats

Oh My Kira is a terminal renderer that displays an animated companion next to your code. It hooks into Claude code's state file and reacts in real time.

Your buddy has:

  • Animated sprites — different animations for idle, working, happy, tired, error states
  • Live stat bars — hunger, happiness, energy, hygiene (yes, really)
  • XP and evolution — your buddy levels up as you code
  • Speech bubbles — random thoughts, reactions to your session
  • Streak tracking — consecutive coding days

It's a Tamagotchi that lives in your terminal and watches you code.

How it works

The renderer watches a JSON state file that gets updated by the Claude Buddy plugin during coding sessions. When the state changes, the renderer:

  1. Resolves which visual state to display (idle? working? error? happy?)
  2. Loads the right spritesheet and slices it into frames
  3. Renders the animation using the Kitty graphics protocol (escape sequences that display images inline in your terminal)
  4. Draws stat bars, XP progress, and speech bubbles around the sprite
  5. Adapts the layout to your terminal size — works in a narrow side pane or a full window

Everything runs in a single terminal pane. No browser. No Electron. Just escape sequences.

+------------------------------------------+
|        "hmm, interesting approach..."     |
|                                           |
|            [animated sprite]              |
|                                           |
+== My Agent ===============================+
| egg -> baby                               |
| XP ████░░░░░░░░░░░░░░░░ 25               |
|                                           |
| Hunger  ████████████████████              |
| Happy   ███████████████████░              |
| Energy  ███████████████████░              |
| Hygiene ███████████████████░              |
|                                           |
| 🔥 8-day streak                           |
+------------------------------------------+
Enter fullscreen mode Exit fullscreen mode

The tech

Built with Node.js and zero frontend frameworks:

  • sharp — spritesheet slicing and background removal
  • chokidar — file watching for state changes
  • Kitty graphics protocol — renders images directly in the terminal via escape sequences

The whole thing is ~8 files in lib/. No build step. No bundler.

It works on any terminal that supports the Kitty graphics protocol — Ghostty and Kitty are the two main ones.

Art packs

The companion's look is fully customizable through art packs — directories of spritesheets with a config file that maps states to animations.

Two packs are bundled:

  • Kira — anime-style companion
  • WPenguin — pixel art penguin

Creating your own is straightforward. Drop spritesheets into a folder, write a pack.json that maps states to sheets:

Click to see the full pack.json structure
{
  "name": "My Pack",
  "format": "spritesheet-grid",
  "frame_size": { "width": 768, "height": 448 },
  "grid_cols": 4,
  "state_map": {
    "idle":    { "sheet": "idle.png",   "frames": 10, "interval_ms": 100 },
    "working": { "sheet": "typing.png", "frames": 8,  "interval_ms": 120 }
  }
}
Enter fullscreen mode Exit fullscreen mode

If you've ever made pixel art or have sprite assets lying around — they work here.

Try it

git clone https://github.com/lukebaze/oh-my-kira.git
cd oh-my-kira
npm install
npm link
oh-my-kira --watch ~/.claude/buddy/state.json
Enter fullscreen mode Exit fullscreen mode

Or if you have Claude Buddy installed, just run /buddies launch and it splits your Ghostty terminal automatically.

What's next

This is early. Things I'm thinking about:

  • More art packs (contributions welcome)
  • Sound effects (yes, really)
  • Multi-buddy support
  • A web-based art pack editor

If you think coding should have a little more personality — give it a star, try it out, or make your own art pack.

GitHub logo lukebaze / oh-my-kira

Terminal renderer for Claude Buddy — displays your coding companion via Kitty graphics protocol

Oh My Kira

Your coding companion, alive in the terminal.

A real-time animated sprite renderer for Claude Buddy that brings your AI coding companion to life — right next to your code.

Node.js Terminal License: MIT


Oh My Kira — animated coding companion in terminal

Kira reacts to your coding session in real time — mood, stats, speech bubbles, and all.


What is this?

Oh My Kira renders an animated companion in a terminal pane while you code with Claude. It watches the buddy state file and displays:

  • Animated sprites that react to mood and activity
  • Live stat bars — hunger, happiness, energy, hygiene
  • XP & evolution — level up your buddy over time
  • Speech bubbles — idle thoughts and reactions
  • Streak tracking — consecutive coding days
+------------------------------------------+
|        "hmm, interesting approach..."     |
|                                           |
|            [animated sprite]              |
|                                           |
+== My Linh ===============================+
| egg -> baby                               |
| XP ████░░░░░░░░░░░░░░░░ 25               |
|                                           |
| Hunger  ████████████████████              |
| Happy

Top comments (0)