コード編集やコマンド実行まで自律的にこなす注目のオープンソースAIエージェント「OpenCode」は特定モデルに縛られず、多彩なAIを切り替えて使えるのが大きな魅力です。本稿ではOpenCodeと格安AIモデルを活用し、Go言語とGUIライブラリ「Fyne」による実用的なモザイクツールの作成に挑戦します。計画立案から実装、モデル変更によるバグ修正まで、AIと二人三脚で進めるデスクトップアプリ開発の全貌を紹介します。

  • OpenCodeとGo言語でGUIアプリを作ろう

    OpenCodeとGo言語でGUIアプリを作ろう

OpenCodeとは?

最近は、AIに質問してプログラムの断片を書いてもらうだけでなく、AIに開発作業そのものを任せる「AIコーディングエージェント」が注目されています。 今回利用する「OpenCode」は、オープンソースで開発されているAIコーディングエージェントです。

OpenCodeを使うと、プロジェクトのソースコードを調べ、ファイルを編集し、コマンドを実行して動作を確認するところまでAIに任せることができます。

また、オープンソースなので、特定のAIモデルに限定されていないのも特徴です。ClaudeやGPT、Geminiなど、さまざまなAIモデルを切り替えて利用できます。そこで今回は、OpenCodeにGoのプログラムを書いてもらいながら、画像にモザイクや矢印などを書き込める実用的な画像加工ツールを作ってみましょう。

  • OpenCodeのWebサイト

    OpenCodeのWebサイト

OpenCodeのインストール

それでは、OpenCodeをインストールしてみましょう。OpenCodeは、macOS、Linux、Windowsで利用できます。ターミナルから利用する場合、公式サイトではインストールスクリプトやnpm、Homebrewなど、いくつかのインストール方法が用意されています。

例えば、macOSやLinuxでは、ターミナルを開いて、次のようなコマンドでインストールできます。

curl -fsSL https://opencode.ai/v2/install | bash

Node.jsをインストールしている場合は、次のようにnpm経由でインストールすることもできます。

npm install -g @opencode/cli

Go言語のインストール

なお、今回は、Go言語を使ってデスクトップアプリを作ります。まだGo言語をインストールしていない場合は、最初に開発環境を準備しておきましょう。Go言語は、Windows、macOS、Linuxに対応しています。公式サイトから、それぞれのOS向けのインストーラーを入手できます。こちらのGoの公式Webサイトからダウンロードできます。

  • Go言語の公式Webサイト

    Go言語の公式Webサイト

Go言語をインストールしたら、正しく動くか確かめてみましょう。ターミナルで次のコマンドを実行してみてください。インストールしたGoのバージョンが表示されたら成功です。

go version

GUIライブラリ「Fyne」を使える環境を整えよう

続いて、今回は画像の表示やモザイクをかける画像編集を行うのに、GUIライブラリのFyneを使います。Fyneをビルドするのに、OSごとに異なるライブラリが必要になります。

  • GUIライブラリ「Fyne」のWebサイト

    GUIライブラリ「Fyne」のWebサイト

以下に、macOSとWindowsの場合に必要となる追加のツールやライブラリのインストール方法を紹介します。

macOSの追加インストール

macOSでは、Xcode Command Line Toolsが必要になりますので、ターミナルで下記のコマンドを実行して、Xcodeをインストールしておいてください。

# Xcode Command Line Tools
xcode-select --install

Windowsの追加インストール

Windowsの場合は、FyneからOSのグラフィックス機能を利用するために、Cコンパイラーの開発環境が必要になります。Fyneの公式ドキュメントでは、Windows環境ではMSYS2を利用する方法が推奨されています。

まず、こちらのMSYS2の公式サイトからインストーラーをダウンロードして、MSYS2をインストールします。

インストールが終わったら、スタートメニューから「MSYS2 MinGW 64-bit」を起動します。通常の「MSYS2 MSYS」ではなく、MinGW 64-bit環境を利用する点に注意してください。Fyneの公式ドキュメントでも、この環境を利用する手順が案内されています。

最初に、パッケージ情報とインストール済みパッケージを更新します。

pacman -Syu

更新の途中でMSYS2のウィンドウを閉じるよう指示された場合は、いったん終了し、再び「MSYS2 MinGW 64-bit」を起動して、もう一度更新を実行してください。

続いて、Go言語やGit、Cコンパイラーを含む開発ツール一式をインストールします。

pacman -S git mingw-w64-x86_64-toolchain mingw-w64-x86_64-go

そして、PowerShellやコマンドプロンプトからもCコンパイラーを利用できるようにするには、次のフォルダをWindowsのPATH環境変数に追加します。

C:\msys64\mingw64\bin

環境変数を設定するには、「システムのプロパティ」から「環境変数」を開き、「Path」に上記のフォルダを追加してください。設定後は、PowerShellやターミナルをいったん閉じて、再度起動します。設定できたかどうかは、次のコマンドで確認できます。

gcc --version

すると、「gcc.exe (Rev xxx, Built by MSYS2 project) ...」のように表示されます。このように、Windowsの場合は、ちょっと大変ですが、一度設定してしまえば、Go言語のいろいろなプロジェクトで、そのまま利用できます。

Fyneのサンプルプロジェクトを実行してみよう

OSの設定が完了したら、ターミナル(WindowsならPowerShell、macOSならターミナル.app)を起動して、次のコマンドを実行してみましょう。

go run fyne.io/demo@latest

すると、次のような画面が表示されます。

  • Fyneのデモを実行したところ

    Fyneのデモを実行したところ

プロジェクトを作成しよう

環境設定お疲れ様でした。さっそく、今日の目的である、モザイクツールを作ってみましょう。これは、画像ファイルをドラッグ&ドロップで読み込み、必要な部分にモザイクをかけたり、赤線や矢印を書き込んだりできる簡単な画像加工ツールです。

まず、作業用のフォルダを作成しましょう。ここでは、gomosaicという名前にします。

mkdir gomosaic
cd gomosaic
go mod init gomosaic