スマートフォン、タブレット、2in1/PCでAlpineのシェルを使える、完全なarm64 Linux環境を実行するHarmonyOSアプリ。
leaningtech/webvm
CheerpXでx86コードをWebAssembly経由で実行し、ブラウザー内だけで動作するLinux仮想マシン。
- スター
- 17,441
- フォーク
- 3,339
- 未解決の Issue
- 12
- 最終コミット
- 14 日前
これは何?
WebVMは、HTML5とWebAssemblyを使ってクライアント側だけで動作する、サーバーレスのLinux仮想環境です。Linux ABIとの互換性を想定して設計されており、変更を加えていないDebianディストリビューションと、多数のネイティブ開発ツールチェーンをブラウザーのタブで直接実行できます。
仮想マシンはCheerpXエンジンで動作します。このエンジンは、x86からWebAssemblyへのJITコンパイラー、仮想ブロックベースのファイルシステム、Linux syscallエミュレーター、サンドボックス化されたクライアント側実行環境を提供します。Webインターフェースでは、ターミナルエミュレーターとしてxterm.jsを使用しています。
このリポジトリにはwebvm.ioのソースコードが含まれており、GitHub Pagesへのフォークや、Dockerfileからのカスタムext2ディスクイメージのビルドに対応しています。また、オプションのexit nodeやセルフホスト型Headscaleコントロールサーバーを利用できるTailscaleネットワーク機能と、Claude AI統合パネルも備えています。
主な機能
- 01x86からWebAssemblyへの変換を通じて、変更を加えていないDebianディストリビューションをブラウザー上で実行します。
- 02仮想ブロックベースのファイルシステムとLinux syscallエミュレーションを提供します。
- 03exit nodeやHeadscaleに対応したTailscaleネットワーク機能を統合しています。
- 04Dockerfileからカスタムext2ディスクイメージをビルドし、GitHub Pagesにデプロイできます。
- 05APIキーをブラウザー内にローカル保存するClaude AI統合パネルを備えています。
ユースケース
- ローカルに何もインストールせずに、Linuxシェルや開発ツールチェーンを試す。
- カスタムDockerfileを使って、Python環境などのブラウザーベースのREPLを構築する。
- 静的サイト上で、操作できるLinuxのデモやチュートリアル環境を公開する。
- 隔離されたサンドボックスでCTFの課題に取り組む。
クイックスタート
- 1
リポジトリをクローンする
git clone https://github.com/leaningtech/webvm.git - 2
依存関係をインストールする
npm install - 3
プロジェクトをビルドする
npm run build - 4
ディスクイメージを custom-disk-images/ に配置した後、Nginx を起動して http://127.0.0.1:8081 で WebVM を開く
nginx -p . -c nginx.conf
使う前に知っておきたいこと
- 公開されている CheerpX のデプロイは、個人利用と試用に限り無料です。組織での利用には商用ライセンスが必要です。
- ICMP ping など、一部の低レベルなネットワーク機能は VM 内で利用できません。
- ユーザーにはデフォルトで root 権限が付与されており、sudo はインストールされていません。
トピック
よくある質問
- webvm とは?
- CheerpXでx86コードをWebAssembly経由で実行し、ブラウザー内だけで動作するLinux仮想マシン。 WebVMは、HTML5とWebAssemblyを使ってクライアント側だけで動作する、サーバーレスのLinux仮想環境です。Linux ABIとの互換性を想定して設計されており、変更を加えていないDebianディストリビューションと、多数のネイティブ開発ツールチェーンをブラウザーのタブで直接実行できます。
- webvm は無料で使えますか?ライセンスは?
- webvm は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- webvm は今もメンテナンスされていますか?
- 活発にメンテナンス中。webvm の最終コミットは 2026年10月7日 です。
- webvm は何に使えますか?
- ローカルに何もインストールせずに、Linuxシェルや開発ツールチェーンを試す。 カスタムDockerfileを使って、Python環境などのブラウザーベースのREPLを構築する。 静的サイト上で、操作できるLinuxのデモやチュートリアル環境を公開する。 隔離されたサンドボックスでCTFの課題に取り組む。
- webvm のインストール方法は?
- リポジトリをクローンする: git clone https://github.com/leaningtech/webvm.git 依存関係をインストールする: npm install プロジェクトをビルドする: npm run build ディスクイメージを custom-disk-images/ に配置した後、Nginx を起動して http://127.0.0.1:8081 で WebVM を開く: nginx -p . -c nginx.conf
- webvm はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/leaningtech/webvm
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Warpは、ターミナルを基盤とするエージェント型開発環境で、組み込みのコーディングエージェントや、独自のCLIエージェントを利用できます。
Termuxは、スマートフォン上でシェルとインストール可能なパッケージを使えるAndroid向けターミナルアプリ兼Linux環境です。
プラットフォームにネイティブなUIとGPUレンダリングを備えた、高速で高機能なターミナルエミュレーター。埋め込み用のlibghosttyライブラリも提供します。
BYOKやローカルモデル、切断後も維持されるSSHセッション、インラインのファイルプレビューに対応した、macOS、Linux、Windows向けのオープンソースAI統合ターミナル。
Linuxで待ち受け中のポートを一覧表示し、使用プロセスの確認や終了ができるTUI。