Cheekymonkey
🐵 A literal Chaos Monkey for your Kubernetes clusters
Install / Use
/learn @richstokes/CheekymonkeyREADME
Cheeky Monkey
Inspired by Netflix's "Chaos Monkey", this game quite literally sets a monkey loose in your Kubernetes cluster.
<p align="center"> <img src="https://raw.githubusercontent.com/richstokes/cheekymonkey/master/images/intro.gif" width="65%"> </p>CHAOS ENGINEERING IS: "the discipline of experimenting on a distributed system in order to build confidence in the system's capability to withstand turbulent conditions in production."
This game is more for fun and demonstration purposes than to be a genuine chaos engineering tool. You probably don't want to run this in production.
How to play
Kubernetes pods are represented by crates in the game. The more pods you have, the more crates are dropped!
You control the monkey with the arrow keys, and punch crates with space bar. You can also hold 'G' to grab a crate to your right and drag it around.
Every time the monkey destroys a crate, a pod in your cluster is randomly selected and deleted!
Press 'R' to reset the game.
Install & run
Using pipenv
- Clone the repo
- Install dependencies:
pipenv install - Run the game:
pipenv run python cheekymonkey.py
Unless offline mode is set (see below), the game will attempt to connect to your currently-set Kubernetes context.
By default, the game will target pods across ALL namespaces, unless you specify namespaces to exclude, for example:
pipenv run python cheekymonkey.py --exclude kube-system cert-manager
Command line Options
--offline yes Switches to offline mode, no pods will be harmed
--exclude <namespace1> <namespace2> Space-separated list of namespaces to exclude
Other settings
Change the following in constants.py:
- Resolution - set
SCREEN_WIDTHandSCREEN_HEIGHTas desired CONTAINER_FACTOR- Multiplication factor for creating crates based on the actual number of containers in your cluster. The idea is you can use this to get a reasonable number of crates in game if you have a lot of running pods in your cluster.CONTAINER_HEALTH- How many times the monkey needs to hit the crate before its corresponding pod is killedOFFLINE_CRATE_COUNT- How many crates to spawn in offline mode (Multiplied byCONTAINER_FACTOR)
You can have fun with the physics by using the plus/minus keys to change the punching force.
Credits
Related Skills
node-connect
338.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
83.4kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
83.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
338.0kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
