Apple’s random-clicking Mac tester kept choosing Quit, so the apps learned to stop it
Steve Capps reused tutorial machinery to probe an application squeezed into a machine with only 128 KB of memory.

Apple’s Monkey could hammer a Macintosh with random clicks and drags. Then it would find Quit and give itself the rest of the night off.
Andy Hertzfeld’s firsthand account says Steve Capps built the tester using event-replay hooks. Early runs exposed crashes in memory-starved applications. After obvious bugs were fixed, the Monkey still tended to stop within 20 minutes because it selected the quit command.
Bill Atkinson proposed the MonkeyLives flag. Applications could check it and disable Quit while the tester ran, letting testing continue overnight. Hertzfeld places the boolean at “address 256”, the first location in the system-global area.
That fixed one testing obstacle. It also left a useful distinction for anybody building a similar harness: a deliberately altered test environment exercises a different path from an ordinary user session.
The memory budget explains why the team wanted such an exhausting visitor in the first place. The original machine had 128 KB of RAM. Hertzfeld allocates roughly 16 KB to the system and another 22 KB to its black-and-white screen, leaving about 90 KB for applications. Opening another little utility could push an already cramped application into a sequence the developers hadn’t easily reproduced.
MacPaint had an especially uncomfortable arrangement: three off-screen buffers, each as large as the whole screen. By the fall of 1983 it and MacWrite were largely feature complete, but low-memory testing still had work to do. A drawing application could look finished and remain one desk accessory away from trouble.
Capps already had a way to send events into the system. The Guided Tour tutorial used journaling hooks to replay recorded interaction so the Macintosh could demonstrate itself. The Monkey reused those hooks for random input, then gained a more useful mix of event types, including menu commands and window drags. It could spend time on actions an application actually understood instead of merely scattering coordinates.
Hertzfeld recalls the activity being entertaining to watch, including whatever pictures the Monkey produced in MacPaint. But the apparent liveliness could conceal an early end. Once the easy crashes were fixed, a successful Quit still terminated the experiment. The application had obeyed an input while the team had lost the long run it wanted.
Atkinson’s flag let applications recognize that particular visitor and avoid selected areas as well as Quit. Its address came from a newly freed slot at the beginning of the low-memory system globals. Hertzfeld says the tool faded as the 512K Macintosh reduced the pressure, leaving its curious flag name behind in a place developers would keep encountering.
The next useful failure report would show the last reproducible inputs before the app stopped, along with whether the Monkey was still meant to be running.