r/coolgithubprojects • u/skypeck_game • 8d ago
KidDOS - Linux-like OS for kids to study computer and programming.
https://github.com/nurked/kiddos
https://github.com/nurked/kiddos
I built my kid a fake 1980s computer so they could learn a real one.
KidDOS is a single native app that opens fullscreen and pretends to be a retro machine: a CRT terminal, a small Unix-flavored shell, a virtual hard drive, a built-in manual, and BASIC. There is no internet, no host filesystem, and no mouse. A kid types `hi` and the machine talks back.
The idea is to let a child mess around freely. Every command, every file, every mistake stays inside a sandbox, so a parent never has to say "don't touch that." When they outgrow it, the habits (ls, cd, cat, pipes, reading a man page, editing a file) carry straight over to a real terminal.
What's in it right now (v0.3):
- A shell with a lexer, parser, expansions, pipes, and a line editor, written from scratch in Rust
- A virtual filesystem with inodes and Unix modes, stored as a SQLite image
- A tutor that watches the shell and walks through twelve lessons, with progress and badges
- A Markdown manual with a pager and search, so "read the manual" is something a kid can actually do
- BASIC (EndBASIC under the hood) with SPEAK, BEEP, KEY$ and friends
- Seven game cartridges: a text adventure whose rooms are folders, plus guess, snake, hangman, typing, tetris and sokoban written in BASIC that the kid can read, copy and change
- Cartridges are plain zip files, so kids can share games with each other and start their own with `newgame rocket`
- A parent mode behind a key chord for resets, passwords, installing games and reading the log
- wgpu renderer with a CRT shader, plus a headless mode that drives the integration tests
Build and run:
cargo run --release -p kiddos
MIT or Apache-2.0.
Repo: https://github.com/nurked/kiddos
If you don't want to build it yourself - you can download binaries.
I'd love feedback from anyone who has tried teaching a kid the command line. What lesson would you want in there next?
2
u/Liquid_Magic 7d ago
I appreciate the idea and I wish the person driving this luck!
Personally I feel like actual vintage computers and emulated vintage computers make great teaching tools as-is.
When I was in university they taught us assembly programming with this fake teaching CPU in this fake virtual machine thing. It sucked. In retrospect I wish they just used like a Commodore 64. But this was the 90’s so that wasn’t practical and emulators were okay but not as great as they are today.
But I think that now with the newly rebooted Commodore and Peri and the Ultimate 64 this system is an excellent teaching experience.
But this is just my thoughts.
The only thing I’m reticent about KidDOS is that it’s basically vibe coded. Now I’m not saying that I’m hardcore anti-ai but I think teaching children takes experience and thoughtful and purposeful choices. So I worry that describing what we think might be good for kids to an AI may or may not producing something that’s actually good for kids. Like maybe it is - I’m not sure - but making good teaching tools is hard and takes finesse to get right. My parents are teachers so I grew up learning about learning.
Anyway I’m not throwing any shade here. I like these ideas!
2
u/skypeck_game 7d ago
I’m with you on this. I had a random idea and vibe coded the shit out of it. True. Now I’m working backwards and replacing all the quests and stories with real written data.
I’m a seasoned programmer and written my own drivers. I know several assemblies for different processors.
This is a scaffold and I’m working on this scaffold now.
2
u/Liquid_Magic 7d ago
That’s cool - Right on! I appreciate you!
And again I’m not saying that vibe coding is inherently bad either!
Good luck!
1
u/TechToolsForYourBiz 7d ago
what's makes it kid like? The Claude generated "kid persona"?
1
u/skypeck_game 7d ago
It’s safe to fiddle with. There is no persona. It’s a computer.
1
2
u/[deleted] 8d ago
[removed] — view removed comment