Screenshot from v0.3.1 — current version (v1.0.2) has 24+ games, 135+ commands, and full color support not shown here.
One file. Zero dependencies. 24 games. 149 commands. One terminal.
A pure C++ terminal operating-system simulation featuring an interactive shell, virtual filesystem with metadata, 24+ built-in games, and 149+ developer tools — all contained in a single source file.
No external dependencies. No framework. No build system headaches. Just compile and run.
Note: NoNameOS is not a real operating system. It is a C++ simulation that mimics an OS environment with a shell, virtual filesystem, games, and built-in tools.
Single File
Entire project is one .cpp file — no build system, no dependencies, no headaches
Fun to Use
24+ games, easter eggs, colored output, animated boot — it's actually enjoyable
Learn C++
See real-world use of STL containers, OOP, RAII, ANSI escape codes, POSIX I/O
Hackable
Every feature is in one file — easy to read, modify, and extend
Portable
Compiles on any Linux system with g++ or clang++ (including Termux on Android)
C++ learners exploring OS concepts without kernel-level complexity
Students studying filesystems, shells, and process simulation
Hackers wanting a terminal sandbox with games and tools
Termux users looking for a fun single-file project to compile and run
Category
What You Get
Highlights
Interactive Shell
Color-coded prompt, command duration, 135+ commands
Arrow keys, history, fuzzy suggestions
Virtual Filesystem
Files, directories, symlinks, permissions, trash
Timestamps, sizes, ls -l, chmod
24+ Games
Arcade, puzzle, strategy, word, reflex games
Tetris, Pong, Sudoku, Wordle, Flappy Bird
System Tools
Text editor, calculators, system info
nano, calc, cfetch, free, top
Text Processing
grep, find, sort, word count, diff
rev, tr, cut, uniq, nl, fold
Converters
Base64, ROT13, Morse, Roman, Binary
urlencode, hexdump, hash
Math & Stats
Calculators, BMI, tip, statistics
calc2, bmi, stats, dice, coin
Productivity
Todo list, notes, timers, password gen
pom, countdown, worldclock
Visual Effects
Matrix rain, rainbow text, color themes
matrix, lolcat, colors, disco
Fun & Easter Eggs
25+ hidden commands
sudo, rickroll, konami, hack
Bug Fixes (43 total across all audits)
Fixed 2 critical Sudoku infinite loops in initialization
Fixed setfill('0') state leak across commands
Fixed 5 dead easter eggs (moved inside primary handlers)
Fixed hangman — now draws complete figure at game end
Fixed Tic-Tac-toe error pause in raw mode
Added cin.ignore before cin.get() in all 21 prompts
Added quit mechanism to guess game
Fixed 2048 duplicate win message
Whack-a-mole '0' now triggers miss as documented
World clock uses UTC offset math (no global TZ modification)
Tetris J-piece now has 4 rotations
kbhit/getkey use static peek buffer (race-free)
CSV separator width fixed
Global arrow key support in all 7 real-time games
Shell readline with cursor movement, backspace, history navigation
25+ easter eggs (sudo, konami, rickroll, disco, matrix, etc.)
11 new games: Tetris, Pong, Sudoku, Flappy Bird, Memory Cards, Connect Four, Lights Out, Sliding Puzzle, Breakout, Whack-a-Mole, Wordle, Quiz
60+ new commands: Converters, math tools, text processing, fun utilities
Enhanced visuals: 256-color ANSI, truecolor RGB, animated boot, styled prompts
git clone https://github.com/Mark44928/NoNameOS.git && cd NoNameOS && g++ -O3 NoNameOS.cpp -o nonameos -lpthread && ./nonameos
One command. One file. One terminal. Pure C++ fun.
Or use make:
Key
Action
↑ / ↓
Navigate command history
← / →
Move cursor left/right
Backspace
Delete character at cursor
Enter
Execute command
Key
Action
WASD / Arrow Keys
Move (snake, tetris, pong, breakout)
SPACE / W / ↑
Jump (flappy, asciidash)
Q
Quit any game
1-9
Whack-a-mole input
Enter
Confirm / continue
NoNameOS is written in pure C++ and uses POSIX headers. It compiles on any Linux-based system with a C++ compiler.
pkg install clang
clang++ -O3 NoNameOS.cpp -o nonameos -lpthread
./nonameos
sudo apt update && sudo apt install g++
g++ -O3 NoNameOS.cpp -o nonameos -lpthread
./nonameos
sudo dnf install gcc-c++
g++ -O3 NoNameOS.cpp -o nonameos -lpthread
./nonameos
sudo pacman -S gcc
g++ -O3 NoNameOS.cpp -o nonameos -lpthread
./nonameos
📁 Filesystem (24 commands)
Command
Usage
Description
ls
ls
List files in current directory
ls -l
ls -l
Long listing with sizes, timestamps, and permissions
cd
cd <dir>
Change directory (.. for parent, / for root)
mkdir
mkdir <name>
Create a new directory (with intermediate parents)
touch
touch <file>
Create an empty file
cat
cat <file>
Display file contents
echo
echo <file> <content>
Write content to a file
rm
rm <name>
Move to trash (recycle bin, use trash to manage)
rm -r
rm -r <dir>
Recursively trash a directory
pwd
pwd
Print current working directory
grep
grep <pattern> <file>
Search for a pattern in a file
find
find <name>
Find files by name
locate
locate <pattern>
Search VFS for paths matching pattern
cp
cp <source> <dest>
Copy a file
cp -r
cp -r <src> <dst>
Recursively copy a directory
mv
mv <source> <dest>
Move or rename a file/directory
ln -s
ln -s <target> <link>
Create a symbolic link
du
du [dir]
Show disk usage of current or specified directory
tree
tree [dir]
Display directory tree with indentation
trash
trash list|empty
List or empty the trash
chmod
chmod <mode> <file>
Change file permissions in VFS
head
head <file>
Display first 10 lines of a file
tail
tail <file>
Display last 10 lines of a file
sort
sort <file>
Sort lines of a file alphabetically
wc
wc <file>
Count lines, words, and characters
tee
tee <file> <text>
Write to file and display on stdout
⚙️ System (25 commands)
Command
Usage
Description
whoami
whoami
Show current user
who
who
Show logged-in users
date
date
Show current date and time
uptime
uptime
Show system uptime and load
hostname
hostname
Print system hostname
uname
uname [-a|-r|-s|-m]
Print system information
arch
arch
Print machine architecture
nproc
nproc
Print number of CPUs
free
free
Show simulated memory usage
dmesg
dmesg
Print boot messages
lscpu
lscpu
Show CPU information
lsusb
lsusb
List USB devices
ps
ps
List running processes
top
top
Show process snapshot
env
env
Show environment variables
printenv
printenv
Print environment variables
history
history
Show command history
seq
seq <end>
Print sequence of numbers
ping
ping [host]
Simulated ping
watch
watch <cmd>
Run a command repeatedly
df
df
Show VFS disk usage
cfetch
cfetch
Display system info (like neofetch)
clear
clear
Clear the screen
help
help [cmd]
Show all commands or describe a command
exit
exit
Exit NoNameOS
🛠️ Tools (24 commands)
Command
Usage
Description
nano
nano <file>
Built-in line-by-line text editor
calc
calc <expr>
Calculator (+ - * / sin/cos/tan/sqrt/log/pow)
bc
bc <expr>
Better calculator (+ - * / % ^)
cowsay
cowsay [msg]
ASCII cow with a speech bubble
man
man <command>
Display manual pages for any command
cal
cal [-e|-a|-r]
Calendar with event support
rainbow
rainbow [msg]
Print text in rainbow colors
lolcat
lolcat [text]
Rainbow gradient text
yes
yes [text]
Print text repeatedly
sleep
sleep <sec>
Pause for N seconds (max 30)
which
which <command>
Locate a command
alias
alias [name=cmd]
Show or create aliases
unalias
unalias <name>
Remove an alias
su
su [user]
Switch user (root/user/guest/admin)
useradd
useradd <name>
Add a new user
userdel
userdel <name>
Remove a user
users
users
Show logged-in users
banner
banner [msg]
Display colored ASCII banner
fortune
fortune
Random programming quote
factor
factor <n>
Prime factorization of a number
shuf
shuf <text>
Randomly shuffle text characters
sl
sl
Steam locomotive animation
train
train
Same as sl
📝 Text Processing (9 commands)
Command
Usage
Description
rev
rev <file>
Reverse each line of a file
tr
tr <file> <f> <r>
Replace character <f> with <r> in file
cut
cut <file> <n>
Extract first N characters of each line
paste
paste <f1> <f2>
Merge two files line by line
uniq
uniq <file>
Remove consecutive duplicate lines
nl
nl <file>
Number lines of a file
fold
fold <file> [n]
Wrap lines at N characters (default 80)
basename
basename <path>
Strip directory from path
dirname
dirname <path>
Extract directory from path
📋 Productivity (9 commands)
Command
Usage
Description
todo
todo add/list/done/clear
Task list manager (persistent in VFS)
notes
notes <name>|list|rm
Note editor (persistent in VFS)
stopwatch
stopwatch
Press Enter to start/stop/show elapsed time
timer
timer <sec>
Countdown timer with visual feedback
pom
pom
Pomodoro timer (25min focus / 5min break)
alarm
alarm <sec>
Set an alarm that counts down
countdown
countdown <sec>
Countdown with progress bar (1-600s)
password
password
Generate secure random password (12-20 chars)
worldclock
worldclock
Show times across 6 time zones
🔄 Converters & Encoding (10 commands)
Command
Usage
Description
base64
base64 <file|text>
Base64 encode text or file
rot13
rot13 <text>
ROT13 text rotation
morse
morse <text>
Convert text to Morse code
roman
roman <num>
Convert number to Roman numerals (1-3999)
binary
binary <num>
Convert number to binary
hash
hash <text>
Generate DJB2 hash
urlencode
urlencode <text>
URL-encode text
urldecode
urldecode <text>
URL-decode text
hexdump
hexdump <file|text>
Hex dump with ASCII sidebar
encode
encode <text>
Show ROT13, uppercase, and lowercase
🧮 Math & Stats (11 commands)
Command
Usage
Description
calc2
calc2 <expr>
Infix calculator with proper precedence
bmi
bmi <weight_kg> <height_m>
Calculate BMI
tip
tip <bill> <percent>
Calculate tip and total
stats
stats <num1> <num2> ...
Mean, median, std dev, min, max
random
random [lo] [hi]
Random number (default 1-100)
dice
dice [n]
Roll n dice (default 1)
coin
coin
Flip a coin
scrabble
scrabble <word>
Calculate Scrabble score
age
age <year> <month> <day>
Calculate age from birthdate
datecalc
datecalc <y m d> +|- <days>
Add/subtract days from a date
units
units <val> <from> <to>
Convert units (km/mi, kg/lb, C/F, etc.)
📊 Text Tools (8 commands)
Command
Usage
Description
wordcount
wordcount <file>
Word/line/char count + frequency chart
diff
diff <file1> <file2>
Show differences between two files
capitalize
capitalize <text>
Capitalize first letter of each word
reverse
reverse <text>
Reverse a string
repeat
repeat <n> <text>
Repeat text n times
bar
bar <label value> ...
Draw a bar chart
sparkline
sparkline <n1> <n2> ...
Draw a sparkline
csv
csv <file>
Display CSV as formatted table
🎨 Fun & Info (17 commands)
Command
Usage
Description
colors
colors
Show all 16 color palette swatches
cmtheme
cmtheme
Show color theme options
colorgen
colorgen
Generate random color with RGB + hex
palette
palette
Generate 10-color palette from seed
matrix
matrix [rows]
Matrix rain animation
ascii
ascii
Random ASCII art
emoji
emoji [name]
Show emoji or list all emojis
pick
pick a | b | c
Randomly pick from options
zodiac
zodiac <month> <day>
Get zodiac sign
quote
quote
Random inspirational quote
joke
joke
Random programming joke
weather
weather
Simulated weather report
ip
ip
Show simulated IP addresses
uptime2
uptime2
Detailed uptime with progress bar
mem
mem
Memory usage with bar
cpu
cpu
Per-core CPU usage
disk
disk
Disk usage across mounts
$ ./nonameos
_ __ _ __ ____ _____
/ | / /___ / | / /___ _____ ___ ___ / __ \/ ___/
/ |/ / __ \/ |/ / __ `/ __ `__ \/ _ \/ / / /\__ \
/ /| / /_/ / /| / /_/ / / / / / / __/ /_/ /___/ /
/_/ |_/\____/_/ |_|\__,_/_/ /_/ /_/\___/\____//____/
root@nonameos:/$
❯ tetris
🧱 TETRIS Score: 4200 (AD/←→=move W/↑=rotate S/↓=drop Q=quit)
┌──────────────────┐
│ ■ │
│ ■■■ │
│ │
│ ■■■■ │
│ │
└──────────────────┘
Game
Command
Description
Controls
Snake
snake
Eat food to grow. Don't hit walls or yourself.
WASD / Arrows
Tetris
tetris
Falling blocks. Clear lines to score.
AD=move W=rotate S=drop
Pong
pong
Classic Pong vs AI. First to 5 wins.
WS=move
Breakout
breakout
Break bricks with a bouncing ball.
AD=move
Flappy Bird
flappy
Flap through pipes. How far can you go?
SPACE=flap
Game
Command
Description
Controls
2048
2048
Slide tiles to merge them. Reach 2048.
WASD
Sudoku
sudoku
9x9 number puzzle with pre-filled clues.
r c value
Minesweeper
minesweeper
10x10 grid. Find mines without blowing up.
x y to reveal
Sliding Puzzle
puzzle
Classic 15-puzzle. Arrange tiles in order.
WASD / Arrows
Lights Out
lightsout
Toggle lights on 5x5 grid. Turn all off.
r c
Game
Command
Description
Controls
Tic-Tac-Toe
tictactoe
Play against minimax AI. You are X.
1-9
Connect Four
connect4
Drop discs. First to 4 in a row wins.
1-7
Game
Command
Description
Controls
Wordle
wordle
Guess the 5-letter word in 6 attempts.
Type word
Hangman
hangman
Guess letters before the figure is complete.
Type letter
Trivia
trivia
5 tech questions. Test your knowledge.
1-4
Quiz
quiz
5 random general knowledge questions.
1-4
Game
Command
Description
Controls
Whack-a-Mole
whack
Whack moles as they pop up!
1-9
Typing Test
typing
Test your typing speed and accuracy.
Type
Reaction Time
reaction
Press key when screen flashes. 3 rounds.
Any key
Game
Command
Description
Controls
AsciiDash
play
Side-scrolling obstacle runner.
SPACE=jump
Adventure
adventure
Dungeon RPG with HP and gold.
left/right/rest
Guess
guess
Guess a number 1-100.
Type number
Rock Paper Scissors
rps
Best-of-7 vs AI.
1-3
Number Memory
nummem
Memorize growing digit sequences.
Type digits
NoNameOS has 25+ hidden easter eggs . Try these:
🥚 Spoiler: Easter Eggs (click to reveal)
Command
What Happens
sudo make me a sandwich
"Okay."
sudo rm -rf /
"NUCLEAR LAUNCH DENIED"
42
The Answer to the Ultimate Question
konami
Konami Code activated!
rickroll
Never gonna give you up...
hack
Hollywood-style hacking animation
disco
Rainbow disco mode
dance
Dancing stick figure
matrix -r
"Wake up, Neo..."
whoami really
Existential crisis
lenny
( ͡° ͜ʖ ͡°)
tableflip
(╯°□°)╯︵ ┻━┻
dealwithit
(⌐■_■)
loading
Fake loading bar
glhf
Good luck, have fun!
version -a
Developer stats
cat /dev/brain
"You're already using it"
echo hello world
Hello, World! greeting
Create your own AsciiDash maps using ^ for obstacles and _ for flat ground:
cd /geometry
echo mymap.gmd ____^^____^^^^____^___^
play mymap.gmd
The default map jumper.gmd is pre-loaded in /geometry/.
NoNameOS is a goldmine for C++ learners. Here's what each feature teaches:
Feature
C++ Concept
Real-World Pattern
TerminalGuard
RAII (Resource Acquisition Is Initialization)
Always restore resources in destructors
map<string, FSNode>
STL associative containers
Virtual filesystems, databases, caches
mt19937 rng{...}
Modern C++ random
Cryptographic vs. pseudo-random generation
namespace color
Namespaces & constants
Avoiding global pollution, naming conventions
cooked_readline()
POSIX terminal I/O
How shells actually read input
Command dispatch
String parsing & routing
Interpreter design, plugin systems
cp -r iterator
Iterator safety
Avoiding undefined behavior with containers
cmd_bc shunting-yard
Algorithm implementation
Expression parsing, operator precedence
has_traversal()
Input validation
Security: path traversal attacks
volatile sig_atomic_t
Signal handling
Async-signal-safe programming
ANSI escape codes
Terminal rendering
How htop, vim, tmux draw UIs
fork()/waitpid()
Process simulation
Conceptual: how real OS process management works (simulated in NoNameOS)
Does NoNameOS work on Windows?
No. NoNameOS uses POSIX headers (<termios.h>, <unistd.h>, <fcntl.h>) that don't exist on Windows. However, it works perfectly under WSL (Windows Subsystem for Linux) and Git Bash .
How do I exit?
Type exit or press Ctrl+C. The TerminalGuard RAII class will restore your terminal settings automatically.
Can I save data between sessions?
No. The virtual filesystem is entirely in-memory. When you exit, everything is gone. This is by design — it's a simulation, not a real OS.
How is this different from a real OS?
NoNameOS is a simulation for learning and fun. It has a shell, filesystem, and processes — but they're all implemented in userspace C++ code. There's no kernel, no hardware access, no real multitasking.
Can I add my own commands?
Yes! The entire project is one file. Find the command dispatcher (around line 3153) and add your own else if (cmd == "mycommand") block. Then recompile.
Why is it called "NoNameOS"?
Because naming things is hard. The author couldn't decide on a name, so... NoNameOS it is.
Linux (Termux on Android, Debian, Ubuntu, Fedora, Arch, etc.)
A C++ compiler (g++ or clang++)
POSIX-compatible system (uses <termios.h>, <unistd.h>, <fcntl.h>)
Windows is not supported due to POSIX-only dependencies
Technology
Usage
C++17
Core language — STL containers, lambdas, structured bindings, optional
POSIX I/O
Terminal control via termios, non-blocking input via fcntl
ANSI Escape Codes
256-color and truecolor (RGB) terminal rendering
RAII
TerminalGuard ensures terminal state is always restored
Single-file Design
Entire project in one .cpp file — zero build complexity
┌─────────────────────────────────────────────────────────────────┐
│ NoNameOS Architecture │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐ │
│ │ Terminal I/O │───▶│ Shell (REPL) │───▶│ Dispatcher │ │
│ │ termios.h │ │ cooked_readline │ │ if/else map │ │
│ │ fcntl.h │ │ history, arrows │ │ 135+ cmds │ │
│ └──────────────┘ └─────────────────┘ └──────┬───────┘ │
│ │ │
│ ┌────────────────────────────────┼──────┐ │
│ │ │ │ │
│ ┌────────▼───────┐ ┌────────▼────┐ │ │
│ │ Virtual FS │ │ 24 Games │ │ │
│ │ map<string, │ │ Tetris │ │ │
│ │ FSNode> │ │ Snake │ │ │
│ │ timestamps │ │ Pong │ │ │
│ │ permissions │ │ Wordle │ │ │
│ │ symlinks │ │ ... │ │ │
│ └────────────────┘ └─────────────┘ │ │
│ │ │
│ ┌────────────────┐ ┌─────────────┐ │ │
│ │ System Tools │ │ Easter │ │ │
│ │ nano, calc │ │ Eggs │─┘ │
│ │ cfetch, top │ │ 25+ │ │
│ └────────────────┘ └─────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ TerminalGuard (RAII) — auto-restores terminal on exit │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Pattern
Where
Why
RAII
TerminalGuard class
Terminal state always restored, even on exceptions
STL Containers
map<string, FSNode>
Virtual filesystem backed by associative containers
MT19937 RNG
mt19937 rng{random_device{}()}
Modern C++ random number generation
ANSI Colors
namespace color
256-color and truecolor RGB terminal rendering
Single Dispatch
Line 3153+
One massive if/else chain routes all 135+ commands
Single-file C++ project — the entire OS in one .cpp file
Zero external dependencies — only standard library + POSIX
Compiles in ~10 seconds on a modern machine
Runs on anything : Linux, macOS, Termux (Android), WSL
43 bugs found and fixed across 5 automated audit passes
25+ easter eggs hidden throughout the codebase
Built with : C++, POSIX, and questionable life choices
Version
Lines
Games
Commands
Key Changes
v1.0.2
4,932
24
135
43 audit bug fixes
v1.0.1
4,561
24
135
Arrow keys, cursor movement, easter eggs
v1.0.0
4,500
24
135
11 new games, 60+ commands, visual overhaul
v0.7.0
2,500
13
75
VFS, games, tools, alias system
v0.6.0
1,800
9
55
3 games, 18 commands, man pages
v0.4.0
1,100
6
35
13 new features
v0.3.1
800
3
20
Initial release
Contributions are welcome! Here's how:
Fork the repository
Create a feature branch (git checkout -b feature/my-feature)
Commit your changes (git commit -m "Add my feature")
Push to the branch (git push origin feature/my-feature)
Open a Pull Request
Add pipe support (cmd1 | cmd2)
Add a package manager simulation
Add persistent state across sessions
Improve the AsciiDash engine with graphics
Add more trivia questions and quiz content
Add new games (Tetris Pong variants, puzzles, etc.)
Add vim command with basic modal editing
Add tab completion for commands and paths
This project is licensed under the GNU General Public License v3. See the LICENSE file for details.
Found a bug? Open an issue. Made something cool? Submit a PR. Just here for the games? We don't blame you.
NoNameOS — because who needs a real OS when you can have 24+ games and a terminal that judges your typing speed?