SIGKILL — terminal survival adventures that teach real infrastructure
Signal 9. You cannot catch it, you cannot block it, and it does not wait for you to save your work.
SIGKILL is a series of terminal survival adventures that teach real backend and ML infrastructure engineering — Linux, Python, SQL, Git, distributed systems, and the machinery underneath large language models. They are meant to be fun teaching tools: you play a disaster movie on a phone, and the commands you learn are the abilities that open the next door.
Phone-first. Fully offline. Paid once per game. No ads, no accounts, no telemetry.
The premise
You wake on a dead ship with nine hours of oxygen and one flickering terminal. Everything you type is real: a real shell parser, real POSIX permissions, a real Python interpreter, a real SQLite database, real Git history. Thirteen adventures, each a different disaster, each a different pillar of the craft.
Every adventure ships two tracks over the same puzzles: Cadet for players who have never opened a terminal, and Operator for players who have and want the real thing.
The thirteen games
# | Title | Teaches |
01 | The Wreck | Linux & bash — filesystem, permissions, processes, pipes, logs, cron, SSH |
02 | The Archive | SQL & data — queries, joins, indexes, transactions, schema design |
03 | The Cluster | HPC & cloud — SSH, Docker, systemd, SLURM, distributed training |
04 | The Containment | LLM & AI — tokenization, attention, embeddings, RAG, prompt injection |
05 | The Fork | Git — a colony ship whose crew diverged into branches |
06 | The Handshake | Networking — DNS, TCP, TLS, routing, firewalls |
07 | The Pipeline | Data engineering — ETL, streams, backfills, idempotency |
08 | The Gradient | ML fundamentals — loss, gradients, overfitting, validation |
09 | The Daemon | SRE — signals, systemd, observability, on-call, postmortems |
10 | The Payload | Security — injection, auth, secrets, threat modeling (defensive) |
11 | The Index | Algorithms — search, sort, hashing, trees, complexity |
12 | The Contract | Distributed systems — APIs, idempotency, retries, consistency |
13 | The Bootstrap | Compilers — build a language, then use it to escape |
Current status
Phases 0 and 1 are complete. Phase 2 is in progress — phosphor CRT renderer, Android wrap, hint ladders, and phone playtesting. Act I of The Wreck is playable: five puzzles on Deck C, finishable without a hint, with LUNA as a second voice on the ladder.
The Machine — deterministic virtual computer: VFS, shell, 58 commands, processes, jobs, cron, simulated network, real Python via Pyodide
820+ automated tests, plus phone-viewport Playwright specs
vi / nano editors, objectives board, escalating hint ladders
Gate for everything downstream: twenty minutes on a real phone that still wants to keep going
The plan
Phase 0 — Foundation: monorepo, CI, glowing green prompt. Done.
Phase 1 — The Machine: filesystem, shell, services, network, Python. Done.
Phase 2 — Feel: mobile input, CRT renderer, Capacitor wrap. In progress.
Phase 3 — The Wreck, Act I: first puzzles, both tracks, save/load.
Phase 4 — The Wreck complete: full adventure on Play internal testing.
Phase 5 — The Archive: prove the engine generalizes (cost ≤40% of The Wreck).
Why it works as a teaching tool
Deterministic. Same input always produces the same filesystem — every puzzle solution can be replayed headlessly in CI.
Solution-agnostic. Goals assert on world state, never on what you typed — sed, Python, or an editor all pass.
Real engines. Bash and Python share one filesystem. Write a script in the shell, run it with python3, and grep sees the change.
Source & docs
Repository: github.com/chris-dewitt/SIGKILL
Inside the repo: docs/PLAN.md (north star and the thirteen adventures), docs/ARCHITECTURE.md (how a command becomes a filesystem change), games/wreck (Adventure 1), packages/machine (the shared engine).
pnpm install
pnpm dev # http://localhost:5173
pnpm check # typecheck + full test suiteIndependent personal work. Questions: director@dewitt-labs.com
Comments