🌌 daedalOS 🌌
Desktop environment in the browser

Feature Overview

System 🧠
- File Explorer
- Back, Forward, Recent locations, Up one level, Address bar, Search
- Thumbnail & Details Views
- Drag & Drop File Support (internal & external)
- ZIP (write support), ZIP/ISO read support, 7Z/GZ/RAR/TAR/etc. extract support
- Writes to IndexedDb
- Group selection/manipulation & drag to sort/arrange
- Dynamic and auto cached icons for music, images, video & emulator states
- Context Menus
- Cut, Copy, Create shortcut, Delete, Rename
- Add file(s), Map directory
- 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+C, CTRL+V, CTRL+X, CTRL+A, Delete
- F2, F5, Backspace, Arrows, Enter
- SHIFT+CTRL+R, SHIFT+F10, SHIFT+F12
- In Fullscreen: Windows Key, Windows Key + R
- File information tooltips
- Allow sorting by name, size, type or date
- Persists icon position/sort order
Windows
- Expandable Sidebar
- Apps list, Documents/Pictures/Videos shortcuts, Power (clears session)
- Spotlight visual effect
- Folder support
- Keyboard shortcut opens with SHIFT+ESC
- Or Windows Key when in fullscreen
Taskbar
- Peek hover preview of windows
- Focused window indicator
- Search menu (w/Recent files)
- AI Chat Agent (Prompt API & WebLLM) (w/Summarize & Image Generation)
Clock
- Runs in a Web Worker
- NTP server time mode (ntp.js)
- Synced to system clock on load
- Date tooltip
- Calendar popup
Background & Screensaver
Run Dialog
- Launch apps by alias or paths
- Opens
ipfs: & nostr: URIs
URL
- Query parameter loading
- Examples:
/?url=/CREDITS.md
/?app=Browser
Apps 🧪
- 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 game
- Fruit fly pets driven by a live spiking simulation of 1,275 real FlyWire 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
- Spawn via
fly in Terminal or Run dialog
- Console, Elements, Network, Resources, Sources, DOM
- Activate from Start Menu or SHIFT+F12
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)
- Internet Relay Chat Client
- Connects over WebSockets
js-dos (.exe, .jsdos, .zip)
- DOS emulator
- Automatic save states on close
- Automatic window resize
Messenger
- Encrypted direct messaging client
- Utilizes Nostr Protocol (NIP-04)
- Automatic public/private key creation
- Code/text editor
- Supports all file types
- Save files via CTRL+S
- Line count, cursor position, language id
- Prettier formatting
- json, js/ts, css/sass/less, html, markdown
OpenType (.otf, .ttf, .woff)
Paint (.bmp, .gif, .ico, .jpg, .png, .tiff, .webp,)
PDF (.pdf)
- Render/Print PDF's
- Page current/count & Zoom
Photos
Ruffle (.swf, .spl)
- Creates 512x512 images using artificial intelligence
- Runs locally using WebSD
- Runs "fantasy computer" games
TinyMCE (.rtf, .whtml)
- Read & WYSIWYG modes
- File save support
- x86 emulator
- Automatic save states on close
- Automatic window resize
- Code/text editor
- Supports all file types
Webamp (.mp3, .wsz)
Games 🎮
- Play against stockfish.js, a friend, or watch CPU vs CPU
- Load PGN games w/move navigation
- Minecraft Classic compatible client
- Block breaker arcade game like Arkanoid
- Reverse engineering of 3D Pinball from Windows
- Port of the classic first-person shooter
Try It 🚀
Requirements
Development
yarn install
yarn build:prebuild
yarn dev
Production
yarn install
yarn build
yarn serve
Docker
docker build -t daedalos .
docker run -dp 3000:3000 --rm --name daedalos daedalos
Notes
- If during
yarn install you receive the error digital envelope routines::unsupported, you need to set NODE_OPTIONS to --openssl-legacy-provider (1, 2, 3)