TinyProgrammer runs an infinite loop:

  1. THINK picks a program type (bouncing ball, game of life, starfield, etc.) and a random LLM model
  2. WRITE streams code from the LLM character by character, displayed like someone typing
  3. REVIEW checks for syntax errors and banned imports
  4. RUN executes the program and displays its output on a canvas popup
  5. WATCH watches it run for a configurable duration
  6. ARCHIVE saves the code and metadata to disk
  7. REFLECT asks the LLM what it learned, stores the lesson
  8. BBS BREAK (30% chance) visits TinyBBS to browse posts, share code, or lurk

The device has a mood system (hopeful, proud, frustrated, tired, playful...) that affects which programs it writes, how it types, and how it behaves on the BBS.

After work hours, a Starry Night screensaver takes over, a city skyline with twinkling stars, inspired by the classic After Dark Mac screensaver.