English | 日本語
WSL2 不要。カメラは DirectShow、音声は WASAPI(sounddevice)、画面キャプチャとウィンドウ監視は PowerShell を使用。Tauri デスクトップアプリがネイティブ Windows プロセスとして動作します。
python.org からインストール、または winget で:
winget install Python.Python.3.12winget install astral-sh.uvまたは PowerShell で:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"winget install OpenJS.NodeJS.LTSgit clone <repo-url> homelife.ai
cd homelife.ai
# Python 依存関係(sounddevice も含まれます)
uv sync
# Web UI
cd web
npm install
cd ..設定 → プライバシーとセキュリティ で、ターミナルアプリ(PowerShell、Windows Terminal など)に以下を許可してください:
| 権限 | 用途 |
|---|---|
| カメラ | 内蔵 / USB カメラの撮影 |
| マイク | 内蔵 / USB マイクの録音 |
画面キャプチャとウィンドウ監視は PowerShell 経由のため、追加の権限は不要です。
WSL2 上の Ubuntu で動作します。スクリーンキャプチャとウィンドウ監視は PowerShell 経由で Windows 側を操作し、カメラ・マイクは usbipd で USB デバイスを WSL2 に渡します。
PowerShell(管理者)で実行:
wsl --install -d Ubuntu-24.04インストール後、Ubuntu を起動してユーザー名・パスワードを設定します。
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install -y python3.12 python3.12-venv python3.12-devcurl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrccurl -fsSL https://fnm.vercel.app/install | bash
source ~/.bashrc
fnm install 22
fnm use 22sudo apt install -y alsa-utils
# audio グループに追加(再ログイン後に有効)
sudo usermod -aG audio $USERWindows 側(PowerShell 管理者)に usbipd をインストール:
winget install usbipdカメラを接続して USB バス ID を確認し、WSL2 にアタッチ:
usbipd list
usbipd bind --busid <BUSID> # 例: 2-3
usbipd attach --wsl --busid <BUSID>PCを再起動したり WSL2 を再起動するたびに
usbipd attachが必要です。自動化したい場合は Task Scheduler でログイン時に実行するよう設定してください。
WSL2 側でデバイスが認識されているか確認:
sudo apt install -y v4l-utils
v4l2-ctl --list-devicesgit clone <repo-url> homelife.ai
cd homelife.ai
# Python 依存関係
uv sync
# Web UI
cd web && npm install && cd ..カメラ・マイクは内蔵のものをそのまま使います。外付けデバイスや USB パススルーは不要です。スクリーンキャプチャは screencapture、ウィンドウ監視は osascript を使用します(どちらも macOS 内蔵)。
pyenv 経由が推奨:
brew install pyenv
pyenv install 3.12
pyenv global 3.12または Homebrew で直接:
brew install python@3.12curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.zshrcbrew install fnm
fnm install 22
fnm use 22または Homebrew で直接:
brew install node@22git clone <repo-url> homelife.ai
cd homelife.ai
# Python 依存関係(sounddevice も含む)
uv sync
# Web UI
cd web && npm install && cd ..初回起動時にダイアログが出ますが、事前に手動で許可しておくとスムーズです。
システム設定 → プライバシーとセキュリティ で以下を許可してください。
- ターミナルから
vidaを動かす場合: Terminal / iTerm2 などのターミナルアプリ - 配布版デスクトップアプリを使う場合:
vida
| 項目 | 対象アプリ | 用途 |
|---|---|---|
| カメラ | Terminal(または使用するターミナル) | 内蔵カメラ |
| マイク | Terminal(または使用するターミナル) | 内蔵マイク |
| アクセシビリティ | Terminal(または使用するターミナル) | ウィンドウ監視(osascript) |
| 画面収録 | Terminal(または使用するターミナル) | スクリーンキャプチャ |
画面収録権限について: macOS Sequoia 以降、
screencaptureコマンドにも画面収録の許可が必要です。許可していない場合、スクリーンキャプチャが黒画像になります。
権限を変更したあとは、対象アプリを再起動してください。
- CLI / ターミナル運用: ターミナルを再起動してから
life start - デスクトップアプリ:
vida.appを終了して再起動
デスクトップアプリ(推奨): アプリを起動し、設定パネルでGemini APIキーを入力してください。設定はSQLiteデータベース(data/life.db)に保存されます。
CLIのみのフォールバック: デスクトップアプリなしでデーモンを実行する場合は、.envでAPIキーを設定します:
echo "GEMINI_API_KEY=your-key-here" > .envGemini API キーは Google AI Studio で取得できます。
デスクトップアプリ: すべての設定はアプリ内の設定UIで管理されます。初回起動時にデフォルト値が自動適用されます。
CLIのみのフォールバック: ヘッドレス/CLI使用の場合は、life.tomlで設定できます:
[llm]
provider = "gemini"
gemini_model = "gemini-3.1-flash-lite-preview"
[capture]
interval_sec = 30
[presence]
enabled = true全オプションは README.md の Configuration セクション を参照。
LLM がユーザーの名前・職業・環境を把握するためのコンテキストファイル。
mkdir -p data
cat > data/context.md << 'EOF'
名前: (あなたの名前)
職業: (職業・やっていること)
環境: (自宅/オフィス、使用言語など)
その他: (習慣やよくやること)
EOFReleases からインストーラーをダウンロードして実行。初回起動時にPython環境が自動セットアップされます。
開発モードで起動する場合:
cd web && npx tauri devアプリがデーモンを自動管理します。ウィンドウを閉じるとシステムトレイに格納されます。
life start -d # デーモンをバックグラウンドで起動- ライブフィード: http://localhost:3002
# 単体でフレーム解析(カメラ・画面・LLM が動くか確認)
life look
# 最近のフレーム確認
life recent
# デーモンの状態確認
life status# Windows 側で再アタッチ
usbipd attach --wsl --busid <BUSID># WSL2 側でデバイス確認
v4l2-ctl --list-devices
# 設定UIでdevice番号を変更、またはCLIのみの場合はlife.tomlで変更:
# [capture]
# device = 1 # /dev/video1 なら 1# スクリーンキャプチャが真っ黒 → 画面収録権限
# カメラが開けない → カメラ権限
# ウィンドウ名が取得できない → アクセシビリティ権限
システム設定 → プライバシーとセキュリティ で該当項目を確認し、ターミナルアプリにチェックを入れてください。変更後はターミナルを再起動してから life start を実行してください。