ShellPlay

Browser Linux terminal - 100+ commands, in-memory filesystem.

Next.js 16ReactTypeScriptTailwind CSS

Overview

A fully functional browser-based Linux terminal simulator with 100+ commands, a full shell script interpreter, and a virtual filesystem. All state lives in memory only - when you close the browser, everything is wiped clean.

  • ✓100+ commands: navigation, files, text processing, system info, processes, networking, users
  • ✓Command catalog modal - 40+ commands across 9 categories, click to autofill
  • ✓Bash interpreter: variables, loops, conditionals, functions, substitution, pipes, redirection
  • ✓In-memory VFS with permissions, ownership, timestamps - zero disk I/O
  • ✓Green (#00ff88) / amber (#ffb700) themes on #0d0d0d; history, tab-complete, help overlay
Next.js 16ReactTypeScriptTailwind CSS

Live app — square preview

ShellPlay — live Vercel — https://shellplay.vercel.appopen ↗

user@linux-sim: ~
user@linux-sim:~$

Miniature with 20 commands. The full simulator: 100+ commands, bash interpreter with loops/conditionals/pipes, Commands catalog modal, JetBrains Mono.

Evidence · from the repo

How it works

  1. TypeInput with history (↑↓), tab autocomplete and live descriptions - prompt user@linux-sim:/path$
  2. ExecuteCommandExecutor (50+ implementations) parses args, operates on the VFS, returns formatted output.
  3. ScriptShellInterpreter runs bash scripts with variables, loops and conditionals.
  4. IsolateEverything in memory - close the tab and the whole machine evaporates.

SEEDED FILESYSTEM

PathContents
/home/user/documents/, downloads/, README.txt
/etc/passwd (full user list), hostname
/var/log/syslog (kernel logs)
/proc/cpuinfo (Core i5), meminfo (8 GB)
/tmp, /bin, /usr/binscratch space, bash, sh, utilities

DOCUMENTED LIMITS

AreaStatus
Network commandsSimulated - no real network access
ProcessesSimulated ps/top data
ScriptingSimplified core features
PersistenceNone - memory only

RUN IT

bash
pnpm install   # or npm install
pnpm dev       # → http://localhost:3000
pnpm build && pnpm start

Build log · reproduce it

REPRODUCE
—Prerequisites: Node.js 18+, pnpm/npm/yarn
—pnpm install
—pnpm dev → http://localhost:3000
—Pure TypeScript engine - no external dependencies for FS/commands