ckitty GitHub

A cat lives in your terminal.

ckitty is a C program that draws a procedural cat, one character at a time. The cat below is that same C, compiled to WebAssembly and wired to a real terminal in this page.

The running program

ckitty --live

Your keyboard works here too, and the cat re-lays itself out when you resize the window.

Put it in your own terminal

Builds from source with a C compiler and ncurses. macOS and Linux, no runtime, no account.

curl -fsSL https://raw.githubusercontent.com/fortunexbt/ckitty/main/install.sh \
  | sh -s -- --prefix "$HOME/.local"

Or build it where it stands:

git clone https://github.com/fortunexbt/ckitty.git
cd ckitty && make && ./ckitty

How the page runs the real thing

One renderer. src/ckitty_core.c composes every frame into a character grid and never touches a terminal library. The native app and this page both call it, so the cat you see here is the cat you install.

A shim instead of a rewrite. src/web_curses.c implements the dozen ncurses calls that src/ckitty.c makes, flushes the grid as ANSI, and hands getch() to the browser event loop. Nothing was ported to JavaScript, and the native build still links real ncurses.

Frames you can diff. ckitty --dump --seed 123 sit --frame 0 prints the same art every run. The test suite leans on that, and so does the banner in the README.