Animated nyancat served over SSH and Telnet, or played locally in your terminal.
  • Rust 99.6%
  • Shell 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Zoa Hickenlooper f50134246e meow meow
2026-05-31 13:55:10 -07:00
.githooks meow 2026-05-31 13:28:30 -07:00
.github/workflows meow 2026-05-31 13:28:30 -07:00
src meow meow 2026-05-31 13:55:10 -07:00
tests meow meow 2026-05-31 13:55:10 -07:00
.gitignore meow 2026-05-31 13:28:30 -07:00
Cargo.lock meow meow 2026-05-31 13:55:10 -07:00
Cargo.toml meow meow 2026-05-31 13:55:10 -07:00
CONTRIBUTING.md meow meow 2026-05-31 13:55:10 -07:00
README.md meow meow 2026-05-31 13:55:10 -07:00
rustfmt.toml meow 2026-05-31 13:28:30 -07:00

nyancat =^.^=

Animated nyancat served over SSH and Telnet, or played locally in your terminal. meow~

The SSH transport is built on russh, so all traffic is properly encrypted. Connections are display-only: anyone may connect, but the server never spawns a shell and refuses exec/subsystem requests, so there is no command execution or terminal to escape into.

Usage

cargo run                 # SSH on 0.0.0.0:2222, Telnet on 0.0.0.0:2323
cargo run -- --raw        # play locally in this terminal (no servers)

Then connect:

ssh localhost -p 2222     # press q or Ctrl+C to quit
telnet localhost 2323

Options

Flag Default Description
--ssh [HOST:]PORT 0.0.0.0:2222 SSH listen address. Bare port or host:port.
--telnet [HOST:]PORT 0.0.0.0:2323 Telnet listen address. Bare port or host:port.
--raw off Play the animation in this terminal; do not start the servers.
--host-key PATH nyancat_host_key SSH host key file. Created (ed25519) on first run and reused.
cargo run -- --ssh 9000 --telnet 127.0.0.1:4000 --host-key /etc/nyancat/host_key

Layout

  • art — frame data and the character → ANSI color map.
  • render — the shared, stateless Animation renderer.
  • ssh / telnet — the two network transports.
  • local--raw terminal playback.
  • cli — argument parsing.

Credits

This is a Rust rewrite that merges klange/nyancat (the terminal classic) and aymanbagabas/nyancatsh (nyancat over SSH) into a single binary.