discover · compare · collections · requirements · contribute · feed · watching · stats · help with your tokens
DustinBrett/daedalOS · source
Snapshot 0 · 2026-11-04T12:47:26Z · JavaScript · MIT
Content fingerprint
d1785965a3e2058bc16aa77056179cd773662bb1445c9fb9a32b2a59b5006375GitHub description at capture
Desktop environment in the browser
README at capture
## 🌌 **daedalOS** 🌌
## _Desktop environment in the browser_

### Feature Overview
[](https://www.youtube.com/watch?v=djCqHH0SCmA)
# System 🧠
### [File System](https://github.com/jvilk/BrowserFS)
- File Explorer
- Back, Forward, Recent locations, Up one level, Address bar, Search
- Thumbnail & Details Views
- [Drag & Drop](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API) File Support (internal & external)
- Loading progress dialog
- Archives
- Browse [ZIP](https://github.com/jvilk/BrowserFS/blob/master/src/backends/ZipFS.ts) & [ISO](https://github.com/jvilk/BrowserFS/blob/master/src/backends/IsoFS.ts) files as folders
- Create ZIP files ([fflate](https://www.npmjs.com/package/fflate))
- Extract 7Z/GZ/RAR/TAR/etc. ([7z-wasm](https://github.com/use-strict/7z-wasm))
- Writes to [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)
- Group selection/manipulation & drag to sort/arrange
- Sort by name, size, type or date
- Persists icon position/sort order
- Dynamic and auto cached icons for [music](https://github.com/Borewit/music-metadata-browser), images, video & emulator states
- Context Menus
- Cut, Copy, Create shortcut, Delete, Rename
- [Add file(s)](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications), [Map directory](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)
- Open with options/dialog, Open file/folder location, Open in new window, Open Terminal here
- Download, Add to archive, Extract here, Set as wallpaper, Set as mouse pointer, Convert audio/video/photo/spreadsheets, Properties (w/Details)
- Sort by, New Folder, New Text Document
- Screen Capture
- Keyboard Shortcuts
- CTRL+A, CTRL+C, CTRL+X, CTRL+V, Delete (or CTRL+D)
- F2 (Rename), F5 or CTRL+R (Refresh), Backspace (Up one level)
- Arrows, Home, End, Enter (Open), ALT+Enter (Properties), ALT+N (New window)
- CTRL+SHIFT+3 (Thumbnail view), CTRL+SHIFT+6 (Details view)
- File information tooltips
### Windows
- [Resizable and Draggable](https://github.com/bokuweb/react-rnd)
- Minimize, Maximize & Close
- Persists size/position/maximized states
- [Animates](https://motion.dev/) opening and closing
### Start Menu
- Expandable Sidebar
- Apps list, Documents/Pictures/Videos shortcuts, Power (clears session)
- Spotlight visual effect
- Folder support
- Opens with **_SHIFT+ESC_** (or the Windows key in fullscreen)
### Taskbar
- [Peek](https://github.com/bubkoo/html-to-image) hover preview of windows
- Focused window indicator
- Search menu (w/Recent files)
- AI Chat Agent ([Prompt API](https://docs.google.com/document/d/1VG8HIyz361zGduWgNG7R_R8Xkv0OOJ8b5C9QKeCjU0c/edit) & [WebLLM](https://github.com/mlc-ai/web-llm)) (w/Summarize & Image Generation)
### Keyboard Shortcuts
| Shortcut | Action |
| -------------------- | -------------------------------- |
| SHIFT+ESC | Start Menu |
| SHIFT+CTRL+E | File Explorer |
| SHIFT+CTRL+R | Run dialog |
| SHIFT+CTRL+S | Search |
| SHIFT+CTRL+X | Start button context menu |
| SHIFT+CTRL+D | Show desktop |
| SHIFT+CTRL+Up / Down | Maximize / Minimize (or restore) |
| SHIFT+F5 | Reload |
| SHIFT+F10 | Terminal |
| SHIFT+F12 | DevTools |
| CTRL+ALT+F4 | Close focused window |
| F11 | Toggle fullscreen |
In fullscreen the Windows key opens the Start Menu, Windows key combos work in place of SHIFT+CTRL (e.g. Windows Key + R), ALT+F4 closes the focused window and ESC exits fullscreen.
### Clock
- Runs in a [Web Worker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers)
- Drawn in an [OffscreenCanvas](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas)
- NTP server time mode ([ntp.js](http://www.ntpjs.org/))
- Synced to system clock on load
- Date tooltip
- Calendar popup
### Background & Screensaver
- Dynamic animated wallpapers ([OffscreenCanvas](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas)/[Web Worker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers))
- Milky Way ([density wave theory](https://beltoforion.de/en/spiral_galaxy_renderer/), device orientation parallax)
- [Vanta Waves](https://www.vantajs.com/?effect=waves)
- [Hexells](https://znah.net/hexells/)
- [Matrix](https://rezmason.github.io/matrix/) (2D & 3D)
- [Coastal Landscape](https://www.shadertoy.com/view/fstyD4)
- Set via image/video (Fill, Fit, Stretch, Tile, Center)
- Picture Slideshow
- Online image sources
- [NASA Astronomy Picture of the Day](https://science.nasa.gov/apod/)
- [Art Institute of Chicago](https://api.artic.edu/docs/)
- [Metropolitan Museum of Art](https://metmuseum.github.io/)
- [Lorem Picsum](https://picsum.photos/)
- AI generated wallpapers via [Stable Diffusion](https://stability.ai/stable-diffusion) (requires WebGPU)
- Screen saver file support (**_.xscr_**)
- [3D FlowerBox](https://github.com/kevin-shannon/3D-FlowerBox)
- [3D Maze](https://github.com/ibid-11962/Windows-95-3D-Maze-Screensaver)
- [3D Pipes](https://github.com/1j01/pipes)
- Hackers
### Run Dialog
- Launch apps by alias or paths
- Opens `ipfs://` & `nostr:` URIs
### URL
- Query parameter loading
- Examples:
- `/?url=/CREDITS.md`
- `/?app=Browser`
# Apps 🧪
### [BoxedWine](http://www.boxedwine.org/) (**_.exe, .zip_**)
- Runs 16/32-bit Windows applications
### Browser (**_.htm, .html_**)
- Loads websites (_w/CORS support_)
- Bookmark bar with favicon support
- Proxy support (Wayback Machine & The Old Net)
- Back/Forward & Reload
- Google search via Address bar
- IPFS protocol support
- [chrome://dino](https://github.com/wayou/t-rex-runner) game
### [DesktopFly](https://github.com/DenisSergeevitch/desktop-fly)
- Fruit fly pets driven by a live spiking simulation of 9,907 real [FlyWire](https://flywire.ai/) connectome neurons, with escape, backward retreat, grooming, sleep & circadian rhythm
- Every fly has its own brain & senses: window edges are walkable terrain, dragged windows & the cursor loom, clicks swat, and a takeoff startles nearby flies
- Flies learn: swat one while it is watching something and it learns to avoid that thing
- Spawn via `fly [count]` (up to 5) in Terminal or the Run dialog, see `fly help` for details
### [DevTools](https://eruda.liriliri.io/)
- Console, Elements, Network, Resources, Sources, DOM
- Activate from Start Menu or **_SHIFT+F12_**
### [EmulatorJS](https://github.com/ethanaobrien/emulatorjs) (**_.32x, .a26, .a52, .a78, .gb, .gba, .gbc, .gen, .gg, .j64, .jag, .lnx, .n64, .nds, .nes, .ngc, .ngp, .pce, .sfc, .smc, .smd, .sms, .v64, .vb, .vboy, .ws, .wsc, .z64_**)
- Plays console game ROMs
### [IRC](https://kiwiirc.com/)
- Internet Relay Chat Client
- Connects over WebSockets
### [js-dos](https://js-dos.com/) (**_.exe, .jsdos, .zip_**)
- DOS emulator
- Automatic save states on close
- /Users/Public/Snapshots
- Automatic window resize
### [Marked](https://marked.js.org/) (**_.md_**)
- Markdown Viewer
### Messenger
- Encrypted direct messaging client
- Utilizes [Nostr Protocol](https://nostr.com/) ([NIP-17](https://github.com/nostr-protocol/nips/blob/master/17.md), [NIP-04](https://github.com/nostr-protocol/nips/blob/master/04.md) for older clients)
- Automatic public/private key creation
- Sign in with a [NIP-07](https://github.com/nostr-protocol/nips/blob/master/07.md) extension or nsec
- Message requests, spam folder, bulk delete & blocking
- Default contacts from the author npub & the site's `/.well-known/nostr.json` ([NIP-05](https://github.com/nostr-protocol/nips/blob/master/05.md))
### [Monaco Editor](https://microsoft.github.io/monaco-editor/)
- Code/text editor
- Supports all file types
- Save files via **_CTRL+S_**
- Line count, cursor position, language id
- [Prettier](https://prettier.io/) formatting
- JSON, JS/TS, CSS/Sass/Less, HTML, Markdown, XML
### [OpenType](https://github.com/opentypejs/opentype.js) (**_.otf, .ttf, .woff_**)
- Font viewer
### [Paint](https://github.com/1j01/jspaint) (**_.bmp, .gif, .ico, .jpeg, .jpg, .png, .tif, .tiff, .webp_**)
- Create & edit images
### [PDF](https://mozilla.github.io/pdf.js/) (**_.pdf_**)
- Render/Print PDFs
- Page current/count & Zoom
### Photos
- [Supported Formats](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#supported_image_formats)
- [HEIF](https://github.com/catdad-experiments/libheif-js) (**_.heic, .heif_**)
- [JPEG XL](https://github.com/niutech/jxl.js) (**_.jxl_**)
- [QOI](https://gist.github.com/nicolaslegland/f0577cb49b1e56b729a2c0fc0aa151ba) (**_.qoi_**)
- [TIFF & RAW](https://github.com/photopea/UTIF.js) (**_.tif, .tiff, .cr2, .dng, .nef_**)
- Cursors (**_.ani, .cur_**)
- Fullscreen & [Zoom](https://github.com/anvaka/panzoom)
### [Ruffle](https://ruffle.rs/) (**_.swf, .spl_**)
- Flash Player emulator
### [Stable Diffusion](https://stability.ai/stable-diffusion)
- Creates 512x512 images using artificial intelligence
- Runs locally using [WebSD](https://mlc.ai/web-stable-diffusion/) (requires WebGPU)
### [Terminal](https://xtermjs.org/)
- Activate from Start Menu or **_SHIFT+F10_**
- File system support
- Autocomplete & history
- Pipe commands together
- Command list via `help`
- [Git support](https://isomorphic-git.org/) (checkout & clone)
- [Python support](https://pyodide.org/) (**_.py_**)
- [JavaScript support](https://bellard.org/quickjs/) via `qjs`
- [WebAssembly Package Manager](https://wapm.io/) (**_.wasm_**)
- Ex: `wapm cowsay moo` ([\#](https://wapm.io/package/cowsay))
- [FFmpeg](https://github.com/ffmpegwasm/ffmpeg.wasm) & [ImageMagick](https://github.com/KnicKnic/WASM-ImageMagick) conversion
- [Weather information](https://wttr.in/)
- [eSheep](https://adrianotiger.github.io/web-esheep/)
- Neofetch
- Boots Linux in Virtual x86 via `linux` or `wsl`
### [TIC-80](https://tic80.com/) (**_.tic_**)
- Runs "fantasy computer" games
### [TinyMCE](https://www.tiny.cloud/tinymce/) (**_.rtf, .whtml_**)
- Read & WYSIWYG modes
- File save support
### [Virtual x86](https://copy.sh/v86/) (**_.bin, .dsk, .img, .iso_**)
- x86 emulator
- Automatic save states on close
- /Users/Public/Snapshots
- Automatic window resize
### [Video Player](https://videojs.com/)
- [Supported Formats](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs) (**_.mp4, .webm, .mkv, .mov, .m4v, .ogv, .3gp, .m3u8, etc._**)
- AVI/DivX decoded via [codecbox.js](https://github.com/duanyao/codecbox.js)
- Plays [YouTube](https://github.com/videojs/videojs-youtube) videos/shortcuts
- Keyboard Shortcuts (Volume, Seek, Scale, Fullscreen)
### [Vim](https://github.com/coolwanglu/vim.js)
- Code/text editor
- Supports all file types
### [Webamp](https://webamp.org/) (**_.mp3, .wsz, .asx, .m3u, .pls_**)
- Winamp audio player
- [Skin support](https://skins.webamp.org/) (w/random skins via [Winamp Skin Museum](https://skins.webamp.org/))
- Playlist & streaming support
- Visualization support (["Milkdrop"](https://github.com/jberg/butterchurn))
# Games 🎮
### [Chess](https://github.com/jhlywa/chess.js) (**_.pgn_**)
- Play against [stockfish.js](https://github.com/nmrugg/stockfish.js), a friend, or watch CPU vs CPU
- Load PGN games w/move navigation
### [ClassiCube](https://www.classicube.net/)
- Minecraft Classic compatible client
### [DX-Ball](https://habr.com/en/post/147339/)
- Block breaker arcade game like Arkanoid
### [Space Cadet Pinball](https://github.com/alula/SpaceCadetPinball)
- Reverse engineering of 3D Pinball from Windows
### [Quake III Arena](https://github.com/lrusso/Quake3)
- Port of the classic first-person shooter
# Try It 🚀
### Requirements
- [Node.js](https://nodejs.org/en/download/) 22+
- [Yarn](https://classic.yarnpkg.com/)
### Development
`build:prebuild` generates the file system and search indexes the app loads at startup, so re-run it after adding or removing files in `public/`.
```sh
yarn install
yarn build:prebuild
yarn dev
```
Then open http://localhost:3000.
### Production
Builds a static export to `out/` and serves it on http://localhost:3000.
```sh
yarn install
yarn build
yarn serve
```
### Docker
```sh
docker build -t daedalos .
docker run -dp 3000:3000 --rm --name daedalos daedalos
```
### Tests & Linting
```sh
yarn test # Jest unit tests
yarn e2e # Playwright end-to-end tests (run `yarn playwright install` once first)
yarn lint # Oxlint
```