oleg-koval

Kitty Agent Status — Development skill for Claude Code

Development community

Color your kitty terminal tabs by what each coding agent is doing — blue while working, amber when it needs you.

How to install Kitty Agent Status

This entry records only its repository, not the path inside it, so there is no exact command to give. Open oleg-koval/kitty-agent-status and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Kitty Agent Status does

Color your kitty terminal tabs by what each coding agent is doing — blue while working, amber when it needs you. Claude Code, Codex, Gemini, and more.

Alternatives in Development

  • Tmux Claude Hatch — tmux plugin that runs Claude Code sessions in popups per project directory, with an fzf picker showing each se 381 ★
  • Media — Understand an audio / video / image file — Antigravity (agy/Gemini) transcribes and analyzes it, returning a t 284 ★
  • Devteam — Run a team of local coding agents in your terminal 264 ★

README

CI License: MIT bash + zsh Zero dependencies

kitty-agent-status logo

kitty-agent-status

Your kitty tabs show what each coding agent is doing.
Blue while it works, amber when it needs you, back to normal when it's done.


A kitty window whose tab bar is colored per agent: claude blue (working), codex amber (needs you), gemini idle

Run several agents across kitty tabs and you lose track of which one is grinding, which one is blocked on you, and which one finished ten minutes ago. `kitty-agent-status` paints each tab by state, so a glance at the tab bar tells you where to look. No daemon, no dependencies - just your agents' own lifecycle events wired to `kitten @ set-tab-color`.

The states

Tab color State Means
🔵 blue working the agent is generating right now
🟠 amber needs-input it is blocked on you - a permission prompt, or Codex finished its turn
⚪ default done idle / finished - nothing for you to do

A finished agent reverts to your normal tab color, so amber always means *act on me*.

How it works

Each agent exposes a different signal, so the tab is driven from whatever each one offers: