museum $ tour --all
The Museum
Every feature and easter egg this site ships, catalogued like exhibits.
88 pieces on display · admission free · flash photography encouraged
## the terminal wing
The centerpiece. Press ~ anywhere and a real shell opens.
lvsh press ~
A command interpreter with history, tab completion, aliases, env vars and man pages. The navbar, footer and lvOS all talk to the same instance.
the virtual filesystem mkdir, touch, echo >
Files you make persist across visits. cat, cp, mv, globs, nested directories — and everything you rm lands in the recycle bin.
pipes & redirection help | grep blog > out.txt
grep, sort, uniq, head, tail, wc — chainable, redirectable, and | copy sends output to your clipboard.
command chaining cd blog && ls ; echo done
&&, || and ; behave like the real thing, short-circuiting on a command's exit status.
shell scripts echo 'fortune' > x.sh; sh x.sh
Write scripts with echo or vim, run them line by line with a proper sh -x trace. Fork bombs are politely declined.
tmux panes ctrl+b then % or "
Split the terminal into up to four panes, each with its own scrollback, all sharing one shell.
vim & nano vim notes.txt
Real modal editing over the real filesystem. Yes, :wq works. That alone makes it better than the original.
reverse search ctrl+r
Incremental history search, cycling matches like the shell you grew up with.
ssh ssh guest@laurensverspeek.nl
Connects to the server you are already on. Authentication method: "vibes".
the process table ps, kill, top
Effects, lvOS windows and running games are one process table — right down to the screensaver and the boot-replay takeover. kill 1231 ends the fireworks; kill 7 ends you.
jq jq '.basics.name' resume
A real subset of jq over the site's own JSON — resume, profile, projects — field access, array iteration, pipes and keys/length. Pipe curl into it too.
wget wget https://api.github.com/zen
curl prints; wget keeps. The response lands as a real file in the filesystem — cat it, vim it, grep it. Clipped at 64K, because your quota lives in localStorage. killall, its neighbor, ends processes by name instead of pid.
## the lvOS pavilion
An operating system hiding behind a terminal command.
lvOS 2.0 type desktop, or desktop <app>
A BIOS boot, draggable windows, a taskbar, a start menu. The whole desktop metaphor, in a route — and desktop weather (or any app name) boots straight into that window.
window management drag to edges, ctrl+alt+arrows
Aero snapping with a live preview, quadrants, keyboard snapping, Alt+Tab, tile-all and a genie minimize.
the app suite the icon grid
Files, Paint (with undo), Notes, a Calculator with scientific and programmer (hex/bin/oct) modes, Minesweeper, Snake, Asteroids, a media player with visualizer modes, a shared whiteboard, a Clipboard, a Pet, a browser browsing this very site.
the run dialog alt+r
Type an app, Tab completes, Enter launches. The fastest way around the desktop.
the recycle bin rm anything, then open the bin
Deleted files wait here to be restored or emptied for good. The terminal and the Files app share it.
task manager the taskmgr icon
Windows, terminal effects and games as killable processes — the same pids ps shows.
paint → wallpaper lvpaint, then set as wallpaper
Your masterpiece becomes the desktop background. The museum does not judge.
about this computer the start menu
Real uptime, your real resolution and browser, and exactly how much localStorage this whole circus uses.
the lock screen start menu → lock
One password opens it: the most famous one on IRC. Guess wrong and it judges you — and points out that everyone can see it is ******* anyway. The security is ceremonial (a reload walks past it); the commitment is real.
the boot sequence reboot from the start menu
A BIOS POST screen with a memory check that has never once found a problem.
mail & the feed reader the mail and rss icons
An inbox where real blog posts arrive as newsletters (and the prince remains hopeful), plus an RSS reader subscribed to this very site. The compose button drafts a real reply. Dog food: eaten.
system update start menu → system update
Ceremonially installs this repo's actual recent commits, progress bar and "do not turn off your computer" and all. It remembers what it installed, so the nudge only returns when new work ships.
BIOS setup press DEL during the POST
Arrow-key menus over the real settings — wallpaper, night light, theme, screensaver. F10 saves and resumes the boot. Nothing here is decorative.
the volume tray & jukebox the taskbar speaker, or type music
One real volume the chiptune engine obeys, shared by the media app, the terminal music command and the tray. Three tracks, all synthesized, no files.
screensavers & night light idle, or the settings app
A starfield, flying toasters or mystify drift in after 45 idle seconds; a warm night-light wash eases late-night pixel-pushing. Night light is settable from Settings, Displays, BIOS and the terminal; the screensaver from Settings, BIOS and the terminal — one shared preference each, and both are killable processes.
camera, playground & monitors the icon grid
A webcam-to-ASCII camera, a sandboxed HTML/CSS/JS code playground, a live system monitor and a GitHub contributions heatmap — the desktop earns its keep.
weather & the colour picker the weather and colours icons
A five-day Amsterdam forecast over the same source as the tray chip, and an eyedropper colour tool that reads hex/rgb/hsl and pushes any colour to the live site accent.
the hall of fame the scores icon
Every game's persisted best in one board — and those same scores mint the coins your tamagotchi spends. One ledger, no fakes.
the clipboard the clipboard icon, or type clip
Every copy on the site — a terminal | copy, a blog code block, the vCard email, a picked colour, the palette's share link — lands in one rolling history. Click any entry to copy it again, or × to forget just that one; the terminal `clip` command lists and re-copies the same list. One writeClipboard, one history.
lvos-2.0.iso start menu → download
Actual installation media for an operating system with no hardware. Do not burn to disc; the release notes explain everything.
built for a thumb open the desktop on a phone
Windows open maximized so the close button is reachable, the taskbar collapses its tray behind a ⋯ and scrolls, a long-press summons the context menu (and a file's row menu), Snake grows a d-pad, Minesweeper gets a flag-mode toggle and shrinks its board to fit, and every app's buttons grow to thumb size. The terminal stops jumping sideways and its grid games stop wrapping, letter games raise the keyboard, the pixel-world swatches and the status-bar controls grow, and the destroyer flies by a virtual joystick. The whole desktop folds down to 320 pixels.
the time machine the time machine app, git checkout <hash>, ⌘K → Travel to…, or /?v=<version>
Actual time travel: every deploy of this site since 2020 is a real build sitting in the repo's history, and a service worker serves any of them back to you — the genuine old site, links and all, right down to the Vuetify version from before the rebuild. Reach it four ways off one shared history — pick a date in the app, checkout a commit hash in the terminal, jump from the command palette, or open a shareable /?v=v2.0.3 link that lands someone straight in that past build — and a bar at the bottom brings you home. No screenshots, no reconstructions. The past, rehosted on demand.
## the games gallery
Playable, in a terminal, because a website should be fun.
snake type snake
The classic, with a high score that survives your visit. Also playable on the offline page, because outages are boring.
tetris type tetris
Hold pieces, ghost preview, hard drops. Rendered entirely in monospace.
the text adventure type adventure
The site as a dungeon: an amber key under a keyboard, a hint-dispensing duck, a grue in the dark basement, and a floppy that deploys the site.
2048, pong, hangman you know the drill
The complete waiting-room canon, faithfully ported to ASCII.
the typing test type wpm
Measures how fast you type by making you type about typing.
conway's game of life type life, or click the hero
It is in the terminal, it is the homepage hero, it has its own page, and it can be your lvOS wallpaper. The museum has a favorite automaton.
ascii star wars telnet towel.blinkenlights.nl
An original homage to the greatest telnet server that ever ran.
minesweeper type minesweeper, or mines.exe
Right-click flags. The corner cells are as unfair as you remember. The terminal command opens it like chess and the whiteboard do.
chess the chess app on the desktop
A full rules engine — castling, en passant, promotion — against a small AI, or against a live visitor over the relay.
the asciiquarium type asciiquarium
A tiny fish tank swimming in your terminal. It asks nothing of you. It simply swims.
asteroids the asteroids app on the desktop
Thrust, rotate, fire; the rocks wrap the edges and split when you shoot them. A hit ends the run — and, like every game here, your best mints tamagotchi coins.
## the effects hall
Site-wide spectacles, each one a killable process.
matrix rain type matrix
There is no spoon. Any key wakes you up; kill 314 also works.
fireworks type fireworks
Canvas pyrotechnics over the page. Under reduced motion you get one artisanal ASCII firework instead.
destroy mode type destroy
A ship that shoots the actual DOM to pieces. Esc repairs the site, no refunds needed.
the boss key press b twice, fast
Instantly replaces everything with Q3_forecast_v7_FINAL(2).xlsx. Esc when the coast is clear.
CRT mode type crt, or triple-click the logo
Scanlines and glow. Welcome back to 1985.
the steam locomotive mistype ls as sl
You know exactly what you did.
party mode ↑↑↓↓←→←→BA
The Konami code does what the Konami code must.
barrel roll do a barrel roll
Star Fox taught us well. Reduced motion politely asks you to imagine it.
the high-score burst beat your best at any game
Confetti erupts the moment you top a personal record — never on the first play, and a single still frame under reduced motion. Top the GLOBAL leaderboard #1 and the burst grows, with a "new world record" banner to match.
## the hidden collection
Pieces you have to earn. This label is already too generous.
the console hunt open devtools, follow window.lv
Five rounds played from the devtools console — decode base64, inspect a live object, read a function’s own source, turn char codes back into text, then combine your answers. One line each, no trivia, no scripting — all real dev moves. Finishing it unlocks a command that exists nowhere else: an all-access backstage pass with a one-of-one code and a direct line.
the tamagotchi pet adopt <name>
Lives in the status bar, wanders the lvOS desktop, hatches within the hour, sleeps at night, sulks when unfed. Forgives instantly.
the pet economy pet coins, pet buy, or the Pet app
Your game high scores mint coins; the shop spends them on snacks and a bowtie, top hat or pixel crown the sprite actually wears — from the terminal `pet` command or the lvOS Pet app, so a keyboard-free player can spend too. No second ledger — the coins come from the hall of fame itself.
the 418 teapot ask the terminal for coffee
RFC 2324, implemented: an ASCII teapot in real 3D, rendered with arithmetic and stubbornness. Drag it to pour.
status bar toys click everything down there
A presence dot, cycling line endings, language modes, a live clock — and five rapid clicks on v2.0.0 arm something regrettable.
secrets type secrets
The self-aware index of everything this wing refuses to spell out.
sudo try it
This incident will be reported.
emacs ask for it three times
The other editor. Persistence is noted, respected, and ultimately futile.
the terminal favicon open the terminal, watch the tab
The tab icon becomes a prompt while the shell is open. The smallest exhibit in the museum.
say say hello (with cursors enabled)
A speech bubble over your live cursor, visible to everyone browsing right now.
## the multiplayer wing
The site is not always empty. Sometimes there are other people in it.
the pixel world world open
A shared 128×128 canvas: place one pixel every few seconds, pan and zoom a founding landscape, and watch it change under other visitors' hands. A minimap, named districts and a time-lapse of recent pixels come standard.
live cursors when the relay is on
Other visitors' cursors drift across the same page you are reading, each a colored dot with a name. Toggle them from the status bar.
say say hello
A speech bubble blooms over your live cursor for everyone browsing right now — the smallest possible chat, and somehow the friendliest.
the chat room type chat, or open the lvOS app
One #lounge feed shared by the terminal command and the desktop app. Ephemeral by design — the relay keeps only the last fifty lines.
chess online the ⚔ button in the chess app
Challenge a live visitor. The relay referees with the exact same rules engine the client draws with, so the boards can never diverge.
pong & the typing race pong online, wpm race
Two visitors, one server-authoritative match. Pong physics and the finish line both live on the relay; without one, you quietly fall back to solo play.
the leaderboard the hall of fame, or type scores
Local high scores — readable in the terminal with scores or the lvOS hall of fame — plus a global top table over the relay for snake, tetris, 2048, wpm and pong, submitted automatically when a game ends.
the visitor globe type globe
A spinning ASCII earth plotting everyone online by timezone — ◉ is you. Privacy-safe: only a UTC offset ever crosses the wire, never a location.
the whiteboard type draw, or open the lvOS app
A shared freehand canvas — everyone here draws on the same board, you see the other visitors’ pens move live as coloured dots, strokes appear as you make them, undo (or Ctrl+Z) takes back your last stroke for everyone, replay time-lapses the board stroke by stroke, save snapshots it to the Gallery, and clear asks once before wiping it for all. Distinct from the pixel world: this is ink, not a grid. Solo when no relay is configured.
the relay realtime/cursors-server.mjs
One tiny Node websocket server behind all of it: authoritative pixel board, matchmaking, rate limits, provenance, no accounts, no tracking. The whole multiplayer layer is optional and off by default.
the status page visit /status
An honest health check for the whole multiplayer layer: whether the relay is up, who is online, how full the pixel board is, and which features are available right now.
the pair terminal pair, then a friend types pair join <code>
Share your live shell. Hosting mints a four-letter code; whoever joins watches your transcript stream in real time, and pair allow hands them the keyboard — their commands run on your shell, output flowing back to everyone. The relay referees the room; kill pair-share.sh (or pair stop) ends the broadcast.
## the craft annex
Engineering exhibits — invisible when they work, which is the point.
fully static view-source
Everything you have seen ships as static files from a generate step. There is no server having a bad day.
the real git log git log, or /changelog
The site's actual commit history, baked in at build time, diffstats included.
view transitions click a project card
Titles and thumbnails morph between list and detail using the native View Transitions API.
both themes, all of it the sun/moon toggle
Every exhibit works in light and dark, keys off one data-theme attribute, and respects prefers-reduced-motion.
the test battery the repo
Hundreds of unit tests and a couple hundred end-to-end tests boot this museum before every deploy, so the exhibits stay dusted.
lean by default load any page, never open the terminal
The whole shell and its command registry only download the first time you press ~, and the project previews are lightweight looping video instead of multi-megabyte GIFs. A visitor who never opens the terminal never pays for it.
install it, quiet it the install chip or terminal `install`; settings → reduce motion
It installs as a real app — a rich preview sheet on Android, driven from the chip or the terminal `install` command, which keeps working even after you wave the chip away. It plays a startup chime you can mute — on the site boot and on entering lvOS — and hides a reduce-motion switch that flattens every animation, canvas ones included, on top of your system setting. Reach it from Settings or the terminal (reducemotion), pick any accent — a preset swatch or a raw colorscheme #hex, which now shows as its own live swatch in Settings — turn keyclick (mechanical-keyboard typing sounds — ticking in the terminal and every lvOS text field, Vim and the Playground included) on or off in the Settings sound section or the terminal, scale the terminal text from a Settings slider as well as the `fontsize` command, and type settings to read every appearance and sound preference in one place.
privacy check /stats
No cookies, no fingerprints; the visitor counters are public and the analytics are optional at build time.
a citizen of your phone install it, then share a link to it
Installed, it behaves like it belongs: the OS share sheet can send any link or text straight into lvOS as a sticky note in ~/stickies, and the app icon wears the unread-mail count — the same single read-state the desktop badge uses — clearing as you read.
the frame budget drag a window over the life wallpaper
A whole pass on where the milliseconds go: windows drag on the compositor instead of re-blurring their glass per move, the hero crosshair stopped forcing a reflow per mousemove, the pixel-world minimap blits a cached board instead of rescanning 16k cells a frame, and settled terminal lines are never re-diffed. Same look, calmer CPU.
this very floor [ walk the floor ], above
The museum you are standing in: rooms generated from this catalog, plaques mounted by code, one @ to walk them. The exhibit is the building.
the pixel world world open, in the terminal
A hidden shared canvas: place one pixel at a time on a 128×128 board, see who placed what, watch strangers build a landscape together. The server keeps the peace; the visitors keep the paint.
// the gift shop is the contact page — and `secrets` in the terminal lists what this label left out