世界を動かす技術を、日本語で。

Show HN: DaedalOS – ブラウザ内のデスクトップ環境

2025年5月26日原文(github.com)

概要

daedalOS は、ブラウザ上で動作する先進的なデスクトップ環境。 豊富な ファイル操作機能 と多様なアプリケーションが統合。 AIチャット、エミュレータ、エディタ など多彩なツールを搭載。 Node.js/Yarn/Docker による簡単な開発・運用環境。 4年以上にわたる情熱的な開発プロジェクト。

daedalOS 機能概要

  • ブラウザ上で動作するデスクトップ環境 の提供
  • ファイルシステムエクスプローラ 機能
    • 戻る・進む・履歴・上層移動・アドレスバー・検索機能
    • サムネイル/詳細表示切替
    • 内部・外部ドラッグ&ドロップ対応
    • 読み込み進捗ダイアログ
    • ZIP書き込み、ZIP/ISO読み込み、7Z/GZ/RAR/TAR等の展開
    • IndexedDbへの書き込み
    • グループ選択・並べ替え・ドラッグでの配置変更
    • 音楽・画像・動画・エミュレータの状態アイコンの自動キャッシュ
  • コンテキストメニュー
    • 切り取り・コピー・ショートカット作成・削除・リネーム
    • ファイル追加・ディレクトリマッピング
    • 「開く」オプション、場所を開く、新規ウィンドウ、ターミナルで開く
    • ダウンロード、アーカイブ追加、ここで展開、壁紙設定、各種変換、プロパティ表示
    • 並べ替え、新規フォルダ・テキスト作成、スクリーンショット
  • キーボードショートカット
    • CTRL+C/V/X/A、Delete、F2、F5、Backspace、矢印、Enter
    • SHIFT+CTRL+R、SHIFT+F10、SHIFT+F12
    • フルスクリーン時:Windowsキー、Windows+R
  • ファイル情報ツールチップ、並べ替え、アイコン位置保持
  • ウィンドウ機能
    • サイズ変更・ドラッグ・最小化・最大化・閉じる
    • サイズ・位置・最大化状態の保持
    • 開閉アニメーション
  • スタートメニュー
    • 展開可能サイドバー
    • アプリリスト、ドキュメント/ピクチャ/ビデオショートカット、電源(セッション消去)
    • スポットライト効果、フォルダ対応、キーボードショートカット(SHIFT+ESCまたはフルスクリーン時Windowsキー)
  • タスクバー
    • ウィンドウプレビュー、フォーカス表示
    • 検索メニュー(最近のファイル表示)
    • AIチャットエージェント(Prompt API & WebLLM、要約・画像生成)
  • 時計
    • Web Workerで動作、OffscreenCanvas描画
    • NTPサーバー同期、システムクロック連携
    • 日付ツールチップ、カレンダーポップアップ
  • 壁紙&スクリーンセーバー
    • 動的アニメ壁紙(OffscreenCanvas/Web Worker)
      • Waves、Hexells、Matrix、Coastal Landscape
      • 画像・動画から設定(フィル・フィット・ストレッチ・タイル・中央)
      • スライドショー、Astronomy Picture of the Day、AI生成壁紙(Stable Diffusion)
      • カスタムスクリーンセーバー、3D FlowerBox、3D Maze、Pipes
    • URLクエリパラメータでのロード例:/?url=/CREDITS.md、/?app=Browser

アプリケーション一覧

  • BoxedWine :16/32bit Windowsアプリ実行
  • Browser :HTMLサイト表示、CORS対応、ブックマークバー、favicon、Google検索、IPFS、chrome://dino
  • DevTools :コンソール、Elements、Network、Resources、Sources、DOM
  • EmulatorJS :多機種対応ゲームROM再生
  • IRC :WebSocket経由IRCクライアント
  • js-dos :DOSエミュレータ、自動セーブ、ウィンドウ自動リサイズ
  • Marked :Markdownビューア
  • Messenger :暗号化DMクライアント(Nostr Protocol NIP-04対応)
  • Monaco Editor :コード/テキストエディタ、全ファイル形式、保存、Prettier整形
  • Paint :画像作成・編集(bmp, gif, ico, jpg, png, tiff, webp)
  • PDF :PDF表示・印刷、ページ送り・ズーム
  • Photos :HEIF, JPEG XL, QOI, TIFF対応、フルスクリーン・ズーム
  • Ruffle :Flash Playerエミュレータ
  • Stable Diffusion :AIによる画像生成(ローカル実行)
  • Terminal :ファイルシステム、オートコンプリート・履歴・パイプ、コマンド一覧、Git/Python/WebAssemblyサポート
  • Weather情報
  • eSheep :アニメーション
  • Neofetch :システム情報表示
  • TinyMCE :WYSIWYGエディタ、rtf/whtml対応
  • Virtual x86 :x86エミュレータ(img/iso)、自動セーブ、ウィンドウ自動リサイズ
  • Video Player :YouTube再生、ショートカット(音量・シーク・スケール・全画面)
  • Vim :テキストエディタ
  • Webamp :Winamp互換オーディオプレーヤー、スキン・プレイリスト・ストリーミング・ビジュアライザー
  • ゲーム :ClassiCube(Minecraft Classic互換)、DX-Ball(ブロック崩し)、Space Cadet Pinball(3Dピンボール)、Quake III Arena

開発・運用要件

  • Node.jsYarn 必須
  • 開発手順
    • yarn install
    • yarn build:prebuild
    • yarn dev
  • 本番運用手順
    • yarn install
    • yarn build
    • yarn serve
  • Docker対応
    • docker build -t daedalos .
    • docker run -dp 3000:3000 --rm --name daedalos daedalos
  • 注意点
    • yarn install時にdigital envelope routines::unsupportedエラー発生時は、NODE_OPTIONSに--openssl-legacy-providerを指定

補足・開発背景

  • デモサイトhttps://dustinbrett.com
  • 開発歴4年以上、個人の情熱プロジェクト
  • 目標 :自分のPCにリモート接続したかのような体験をWeb上で再現
  • 今後も継続的な進化を目指す

Hackerたちの意見

すごく深いし、今まで見た中でこれよりも良く動いてる。しかも、これはスマホからの話だけどね。よくできてる!クエイクも動かせたし、まだキーボードを繋げてないけど。

そう言ってくれてありがとう!機能的に「深い」ものを作ろうと頑張ったんだ。いくつかのゲームやデモはデスクトップでの方が動作が良いけど、できるだけ多くのデバイスで動くようにしたよ。

これ、めっちゃ印象的だし、特にフォントのレンダリングやボタンのホバーエフェクトがExplorerにかなり近い!アニメーション壁紙の作り方も気になってちょっと探ってみたけど、カスタム開発ツールもいいサプライズだった。マイクロソフトがWindowsのアイコンを盗まれることをどれだけ気にしてるかは分からないけど、Facebook MessengerやVLC、VSCode、Chromiumから直接アイコンを使うのは、もっと注目されると問題になるかもね。

これ、すごい!よくできてるし、モバイルでもめっちゃスムーズに動く!ただ、ブラウザはちょっと制限があって、ほとんどのサイトが「埋め込み」を防ごうとしてるみたい。でも、ウェブコンテンツをプロキシして埋め込める方法があるよ:https://www.webfuse.com/use-case/embed-unembeddable-content これを試してみたいなら教えてくれれば、設定手伝うよ。

20ユーザーで月€529になるけど、もっとたくさんのユーザーをサポートする必要があるんじゃないかな?クライアントサイドのソリューションがあれば、無限にスケールできるのに、みんなが自分のnode.jsプロキシを運用する必要がなくなるのに。

ありがとう!実は、アドレスバーの右側に「プロキシ設定」ボタンを追加したんだ。これでいくつかの無料プロキシを選べるようになってる。プロトタイプのブラウザではこれで大丈夫だったけど、もし本格的なプロキシが必要なら、君が言ったようなものを考えるかも。

まさに魔法みたい!リアルすぎて、これがウェブサイトだってことを思い出すのが大変だった!こんなに多様なインターフェースのニュアンスを捉えるのに、かなりの時間がかかったんだろうね!

リアルだと言ってくれて嬉しい!今のレベルのディテールに達するまでに、確かに何年もかかったよ。毎日何かを追加したり調整したりしているところだ。

UIの正確さと細部へのこだわりがすごい!小さなウィンドウの境界線までちゃんと再現してる。いい仕事だね!

ありがとう!詳細にこだわってくれたことを嬉しく思うよ。小さな部分を正確にするのにかなりの時間をかけたからね。ちょっとしたことが気になるタイプだから、こういうプロジェクトで「正しい」感じを追求できるのは少し安心するんだ。

これ、めちゃくちゃクールだね!Vimみたいなプログラムがどう動いてるのか知りたい。エミュレーションなのかな?どちらにしても、素晴らしい楽しいプロジェクトにおめでとう!

ありがとう!Vim.jsや他の多くのアプリは、Emscriptenを使ってネイティブのソースコードをWebAssemblyで動かせるように移植したものなんだ。

Hacker Newsで議論の続きを見る