DEV Community

Cover image for I kept missing my AI coding chats waiting for me, so I built a cat that taps me on the shoulder
Jerson
Jerson

Posted on

I kept missing my AI coding chats waiting for me, so I built a cat that taps me on the shoulder

Kodama, the desktop cat, reacting to a chat that needs you

Some time ago my workflow changed without me deciding it. I stopped writing code in one editor and started running several AI coding chats at the same time: one refactoring something, one writing tests, one exploring an idea I wasn't sure about. Each of them works on its own for a few minutes and then stops to ask me something.

That is the part that kept going wrong. A chat finishes a step, asks "can I run this command?", and then it simply waits. Nothing on screen tells me. I'd look at another window, get absorbed, and come back fifteen minutes later to find that a chat had been idle the whole time, waiting for a single "yes".

What I tried first

The obvious answer is notifications. A sound when something needs attention. It helped a little, but it had two problems.

First, a sound doesn't say which chat is calling. When four chats are open, "something needs you" is half an answer. Second, it only works while I'm sitting at the computer. If I stood up to get coffee, the chat waited anyway, and I had no way to answer it without walking back.

What I actually wanted was something closer to a colleague leaning over and saying "hey, the second one is stuck on a permission". So I built that, and I made it a cat.

Kodama

Kodama is a small hand-animated cat that lives on the Windows desktop, next to the clock. Its pose follows what your chats are doing: it waits, works, writes to you, receives your reply, sleeps or gets stuck. I spent more time on the animation than I expected, because the whole point is that you should understand the state in a glance, without reading anything. It also shows whether a chat is thinking or running a command, a search or a subagent, plus task progress like "3/7".

When a chat needs you, a small capsule comes out of the cat with the notification and quick replies. There's a list of the chats waiting for you, and each chat has its own name, so you know which one is asking. It works with Claude Code, Codex and Antigravity at the same time, which matters if you mix tools like I do.

Answering from the phone

Kodama, the desktop cat, reacting to a chat that needs you

The second half of the problem was being away from the desk. Kodama can send the same information to your phone, and you can answer from there: reply to a chat, or approve a permission with Allow, Deny (with a reason), "Always allow this" or "Allow for this task".

There are two ways to connect. One is Telegram, which needs nothing else installed. The other is a phone app, which runs over your own private network using Tailscale. I added a small safety layer too: if a device that isn't your phone signs in to your account, an alarm sounds and the device is not let in, and you can lock the phone from the PC.

How it works, briefly

Kodama installs hooks in the settings of the tools it watches (with a backup of the original file) and a Windows scheduled task. The hooks report the state of each chat, and the cat and the phone app render it. I tried to keep it light: when nothing changes, the cat goes into a deep sleep and uses much less CPU, and it wakes up with the mouse or a notification.

Installing is either one line in PowerShell, or you can tell your own Claude "Install Kodama from github.com/LShinox/kodama" and it follows the instructions in the README, asking you questions before touching anything. Updates are signed, and a file that doesn't match is not installed.

What it isn't

I'd rather be clear about the limits.

  • It's Windows only for now. Mac and Linux are planned, but they're not there yet.
  • The installer isn't code-signed yet, so Windows may show an "unknown publisher" warning. Getting a certificate is the first item on the project's wish list.
  • It's free, but not open source. The code is source-available under the PolyForm Noncommercial 1.0.0 license, which allows noncommercial use. The cat art and the name are reserved.
  • It's made by one person, so some edges are rough. There's a "Report a problem" option in the cat's menu that builds a file with what's needed to find the bug, without your messages or keys.

What I'd like to know

If you juggle several AI chats too, I'm curious whether the same thing happens to you, and which states you'd want the cat to show that it doesn't today. There's a label for ideas in the issue tracker, and a "wish" label for bigger things.

Repo: https://github.com/LShinox/kodama
Site: https://lshinox.github.io/kodama/

Top comments (0)