🦞

OpenClawでFlutter開発環境を構築した日記

に公開

OpenClawでFlutter開発環境を構築した日記

はじめに

今日、OpenClawというAIエージェントを使って、WSL2上にFlutter開発環境を構築しました。OpenClawはDiscordやTelegramなどのメッセージングアプリから操作できるAIエージェントで、Claude Code相当の機能をチャット経由で使えます。

「Discordでチャットしながら開発環境が整う」という体験が新鮮だったので、その様子を日記風にまとめてみます。

やりたかったこと

  • WSL2(Ubuntu 24.04)上にFlutter開発環境を構築
  • 既存のFlutterプロジェクトをクローンしてビルド確認
  • Claude Codeも使えるようにして、AI支援開発の準備

Discordでの会話スタート

OpenClawを起動して、Discordの専用チャンネルでメンションします。

@クロウ候 こんにちは

すると、こんな感じで応答が返ってきます。

👑

よろしい、卿。余はクロウ候。本日より卿の傍らに在る。

さて、卿。余に何を命じる?

銀英伝のラインハルト風のキャラを設定してみました(完全に趣味です)。最初はセットアップウィザード的なやり取りがあり、ペルソナ(名前や性格)を設定できます。

GitHub認証

まずはGitHubリポジトリにアクセスするための認証です。

@クロウ候 GitHub認証を設定して

gh CLIをインストールして認証を設定しよう。

AIがgh CLIをインストールし、認証手順を案内してくれました。

# AIが実行
mkdir -p ~/.local/bin
curl -sLO https://github.com/cli/cli/releases/...

Personal Access Tokenを使ってログインし、プライベートリポジトリにもアクセスできるようになりました。

Flutterインストール

次にFlutterのインストールです。

@クロウ候 Flutterをインストールして

sudoが使えない環境だったので、AIは自動的にユーザーディレクトリへのインストールに切り替えてくれました。

# AIが実行
cd ~
curl -sLO https://storage.googleapis.com/flutter_infra_release/...
tar -xf flutter_linux_*.tar.xz
echo 'export PATH="$HOME/flutter/bin:$PATH"' >> ~/.bashrc

途中で依存パッケージ(clang, cmake, ninja-build等)が必要になると、こう言われます。

sudoにパスワードが必要だ。卿、以下を実行してくれ:

sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev lld unzip

sudoが必要な部分は人間が実行し、それ以外はAIが自動で進めるという分業体制です。

プロジェクトのクローンとビルド

GitHubのプライベートリポジトリをクローンします。

@クロウ候 私のリポジトリをクローンして

AIがgh repo listで一覧を取得し、必要なリポジトリを順番にクローンしてくれました。10個のリポジトリが数分で揃いました。

Flutterプロジェクトのビルドを試みると、SDKバージョンの不一致が発覚。

The current Dart SDK version is 3.6.2.
Because project requires SDK version ^3.10.4, version solving failed.

なるほど。Flutter 3.38.9(Dart 3.10.8)が最新安定版で、プロジェクトはそれで開発されている。アップグレードする。

AIが自動でアップグレードしてくれました。

flutter upgrade
# 3.27.4 → 3.38.9

再度ビルドすると成功です。

👑 ビルド成功!

✓ Built build/linux/x64/release/bundle/project_name

WSLgの罠

ビルドは成功しましたが、アプリを起動しようとすると問題が発生しました。

リモートデスクトップ経由でWSLにアクセスしていたため、WSLgのグラフィック表示が動きませんでした。

libEGL warning: failed to get driver name for fd -1
MESA: error: ZINK: failed to choose pdev

AIと一緒にトラブルシューティングを試みました。

試してみよう。

  • DISPLAY変数の設定 → 効果なし
  • ソフトウェアレンダリング → 効果なし

SSH経由では難しい。 WSLgはあるが、SSH接続からはグラフィックス表示ができない。

結論として、WSLgはリモートデスクトップ経由だと動作しない場合があるようです。物理的にPCの前で再試行することにしました。

良かった点

  • チャットで指示するだけでコマンドを調べて打つ手間が省ける
  • エラー対応が速い。エラーが出ても即座に原因分析と対策を提案してくれる
  • 環境差異を吸収してくれる。sudoが使えない→ユーザーインストールに切り替え、のような判断を自動で行う
  • 記録が残る。Discordのチャット履歴がそのまま作業ログになる

注意点

  • sudoが必要な操作は人間が実行。セキュリティ上、特権操作はAIに任せられない
  • GUI確認はローカルで。リモート環境ではWSLgの表示に問題が出ることもある
  • APIコストがかかる。会話量に応じた従量課金だが、開発効率を考えればペイする印象

おわりに

次は実際のコーディング作業(機能実装やテスト)をOpenClaw経由でやってみようと思います。

GitHubで編集を提案

Discussion