A programming course for kids that teaches real code, one line at a time โ right in the terminal, in Python or Lua.
Free & open. One file. No accounts needed and no ads.
programmers started their journey with Gray
Gray is a friendly guide that lives in one file. It explains an idea, the student types real code, and Gray runs it, checks it, and cheers.
No toy blocks. Kids type genuine Python or Lua โ the exact same code professionals write โ and see it run instantly.
From โyour computer is a giant calculatorโ to variables, decisions, loops, input and functions โ each idea builds on the last.
Kids build a mind-reading number game, a silly story machine, and a robot doorkeeper โ programs they can proudly demo to the family.
Wrong answers get a gentle nudge and another try. Stuck? Type hint. Every solved challenge earns a โญ.
Type quit anytime โ Gray remembers exactly where the student left off and picks up there next time.
Kids can experiment freely. Even a loop that never ends gets rescued โ Gray plays lifeguard and stops it with a smile.
In the final section the student builds their own script file, runs it with python my_first_program.py, and discovers the real REPL.
Gray is a single file with zero dependencies. If Python or Lua runs on the computer, Gray runs. Fully offline.

The same adventure exists in Python and Lua. Finish one track, then see how the other language says the same things!
Eleven sections, each one unlocking a new superpower.
print.cheer()โฆ until your kid teaches it.Finished Foundations? Paid paths take the same seven superpowers and build real games with them โ entirely in the browser, nothing to install. One subscription unlocks every path, current and future. Foundations stays free forever.
Backpacks full of loot (lists), character sheets (dictionaries), treasure chests with random surprises, a crafting table of functions โ and the capstone build: The Elephant's Quest, a real adventure game with rooms to explore, a key to find, and a golden door to open.
Pick a track. Python is the world's most popular first language; Lua is small, friendly, and powers games like Roblox. You can't choose wrong โ the course is the same adventure in both. In a hurry? Play right in your browser โ nothing to install at all.
First check if it's already there. Open a terminal and type:
python3 --version
If you see something like Python 3.12.4, you're done โ skip to step 2! Otherwise:

python --version.sudo apt install python3 (Debian/Ubuntu) or your distro's equivalent.Save it somewhere easy to find, like a gray folder in your home directory. Or grab it from the terminal:
curl -O https://gray.academy/gray.py
In the terminal, go to the folder where you saved it and run:
python3 gray.py
(On Windows it's usually python gray.py.) Gray takes it from there โ say hi! ๐
First check if it's already there. Open a terminal and type:
lua -v
If you see something like Lua 5.4 (any 5.x works), you're done โ skip to step 2! Otherwise:

winget install DEVCOM.Luasudo apt install lua5.4 (Debian/Ubuntu) or your distro's equivalent. On some systems the command is then lua5.4 instead of lua.Save it somewhere easy to find, like a gray folder in your home directory. Or grab it from the terminal:
curl -O https://gray.academy/gray.lua
In the terminal, go to the folder where you saved it and run:
lua gray.lua
Gray takes it from there โ say hi! ๐
The whole course is one file per language. That's it โ that's the download. Or skip downloading entirely and play in your browser.
The Foundations course โ all eleven sections, in the browser or downloaded โ is free forever, no strings. The optional subscription adds extra learning paths (like The Game Maker) that build on Foundations; those run in the browser only, with the same progress-saving, hints, and gentle nudges.
Roughly 8โ13, or any curious beginner who can read and type. Younger kids do great with a grown-up sitting alongside for the first sections.
Either! Python is the most common first language in schools and careers. Lua is lightweight and famous in game modding (Roblox uses a close cousin). The course content is the same adventure in both โ many kids finish one track and replay the other to compare.
Gray never scolds. Mistakes get a friendly explanation and another try, and typing hint reveals the answer shape. Even errors are framed as โthat happens to every programmer.โ
Yes โ typing quit saves progress automatically. Next time Gray says โwelcome backโ and continues exactly where they stopped. The menu command lets them revisit any finished section.
Three working programs they built themselves, plus my_first_program.py (or .lua) โ a real script file assembled line by line during graduation, which they know how to run and edit on their own. In the browser version it can be run right on the page and downloaded to keep.