A small shell written in Go — because why not?
This started as a weekend project to figure out how shells actually work. I ended up building something that can run real commands, has some built-in features, and is honestly kinda fun to use.
I was curious about how shells handle input, spawn processes, and interact with the system. Writing it in Go made things super clean, and I learned a lot along the way. It’s not meant to replace your terminal — just something cool to hack on and learn from.
If you’ve got Go installed, just do:
go run main.goBoom. You're in the shell.
I added support for a bunch of commands — some built-in, some passed to the system:
exit,ping,pwd,ls,cd,echomkdir,touch,rm,cat,clear,datecurl,ip,vim
It’s got enough to feel usable, but not overloaded with stuff.
- Piping (
|) and redirection - Command history (with arrow keys)
- Tab completion
- Maybe themes or aliases if I get fancy