OpenScreen

Electron + React + Vite — 画面録画とデモ編集のオープンソースアプリ

1 — 概要

OpenScreen は、有料のスクリーン録画・デモ制作ツールに近い体験を、シンプルな機能セットで無料・オープンソースとして提供するデスクトップアプリ。公式 README の位置づけでは、プロダクトのウォークスルーやチュートリアル向けの録画・ズーム・トリミング・書き出しに焦点がある。

MITライセンス
1.4package 版
22Node エンジン
β開発段階
注意: 上流 README にベータ相当の注意書きがある。本ページの情報は当時点の package.json と README に基づく。最新仕様は公式リポジトリとリリースノートを参照すること。
2 — 技術スタック

デスクトップシェルは Electron、UI は React 18 と Vite 7。タイムラインは dnd-timeline、キャンバス合成やエフェクトに PixiJS と関連フィルタ、モーションに GSAP / Motion。メディア処理・書き出しには mediabunny、mp4box、web-demuxer などが列挙されている。品質管理に Biome、テストに Vitest と Playwright が入る。

領域主な技術役割の目安
シェルElectron 41ウィンドウ、トレイ、権限、ネイティブ連携
UIReact + Radix UI + Tailwindエディタ画面・設定
ビルドVite + TypeScriptレンダラーバンドル、開発サーバ
描画PixiJS 8合成レイアウト、注釈、エフェクト
入力フックuiohook-napiグローバルショートカット等(プラットフォーム依存)
書き出しmediabunny / mp4box / gif.js 等動画・GIF エクスポートパイプライン
3 — 主要機能
カテゴリ内容
キャプチャウィンドウ単位または全画面。マイクとシステム音声の録音。
ズーム自動/手動ズーム、深さ・位置・時間の調整。
見た目壁紙・単色・グラデーション・カスタム背景。モーションブラー。
編集注釈(テキスト・矢印・画像)、クリップのトリミング、区間ごとの速度変更。
書き出しアスペクト比と解像度のプリセット選択。
4 — 導入と制限

インストーラは GitHub Releases から入手する想定。macOS では未署名ビルムのため Gatekeeper 回避の手順が README に記載されている。

macOS(README 抜粋)

インストール後にターミナルで quarantine 属性を削除し、その後システム設定で画面収録・アクセシビリティを許可する流れ。

xattr -rd com.apple.quarantine /Applications/Openscreen.app

Linux

AppImage を実行権付与して起動。サンドボックスエラー時は --no-sandbox が案内されている。

chmod +x Openscreen-Linux-*.AppImage
./Openscreen-Linux-*.AppImage
OS条件・挙動
macOS13 以上。14.2 以降は音声キャプチャの許可プロンプト。12 以下はシステム音声非対応(マイクは可)。
WindowsREADME 上は追加要件なしで動作と記載。
LinuxPipeWire 推奨(Ubuntu 22.04+、Fedora 34+ 等)。古い PulseAudio のみではシステム音声が取れない場合あり。
Linux 表示サーバ: 上流の electron/main.ts では Wayland 検出時に ozone-platform=wayland と PipeWire キャプチャ用フラグを付与している。
5 — 実行時構成

メインプロセスは registerIpcHandlers で IPC を登録し、エディタ・ソース選択・カウントダウン HUD など複数の BrowserWindow を生成する。レンダラーは Vite ビルドの React アプリで、録画データはユーザーデータ配下の recordings に保存される設計(定数 RECORDINGS_DIR)。

flowchart TD User["ユーザー"] Main["Electron メイン
main.ts / IPC"] Win["ウィンドウ群
editor / overlay / selector"] Pre["preload"] React["レンダラー
React + Vite"] Cap["キャプチャ・合成
Pixi / タイムライン"] Disk["recordings ディレクトリ"] User --> Win Win --> Main Main --> Win Win --> Pre Pre --> React React --> Cap Cap --> React React -->|"IPC"| Main Main --> Disk