Animated nyancat served over SSH and Telnet, or played locally in your terminal.
- Rust 99.6%
- Shell 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .githooks | ||
| .github/workflows | ||
| src | ||
| tests | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| README.md | ||
| rustfmt.toml | ||
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, statelessAnimationrenderer.ssh/telnet— the two network transports.local—--rawterminal 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.