筆者(coji)が開発する成果物共有サービス「Artifact Share」に、ブラウザのプレビュー画面上でのクリック指摘といった外部イベントから、Claude Code・Codex・Cursorという3つのAIエージェントを、会話セッションを邪魔せずに起動・再開させる仕組みを実装しました。preview <file>コマンドでローカルサーバーが起動し、要素をクリックして入力した指摘をもとにエージェントが自動修正を行います。
3つのエージェントは再開メカニズムがそれぞれ異なります。Claude Codeはバックグラウンドタスク完了時に自動でターンが再開される仕組みを、Codexは実行中セッションへのメッセージキュー投入機能を、CursorはAgent Client Protocol(ACP)経由で専用セッションに固定プロンプトを送信する方式を、それぞれ利用しているといいます。
常駐デーモンを使わず「1ファイル1プロセス」を設計方針としており、preview next --waitで指摘の到着を待機し、preview done --stdinで修正結果を報告します。実装コードはGitHubのPR #198として公開されています。
出典が伝えている要点
- Artifact Shareは、AIエージェントが作成したHTMLやMarkdownなどの成果物をURLで共有できるサービスである。
- この記事はArtifact Shareのプレビュー機能について、Claude Code・Codex・Cursorという3つのAIエージェントを外部イベントで動かす実装方法をまとめたものである。
- Agent Client Protocol (ACP) は、エディタとエージェントをつなぐプロトコルである。
- preview <file>というコマンドを実行するとローカルサーバーが起動する。
- ブラウザ上でプレビュー中のファイルの要素をクリックして指摘を入力すると、エージェントがその指摘をもとに自動修正を行う。
- preview next --wait 90というコマンドで、エージェント側が指摘の到着を待機する。
- preview done --stdinというコマンドで、エージェントが修正結果を報告する。
- Claude Codeでは、バックグラウンドタスク完了時に自動でターンが再開される仕組みを利用して外部イベントからの起動を実現している。
- Codexでは、実行中のセッションにメッセージをキューとして投入する機能を使って外部イベントからの起動を実現している。
- Cursorでは、ACP経由で専用セッションに固定のプロンプトを送信することで外部イベントからの起動を実現している。
- この実装は常駐デーモンを必要とせず、「1ファイル1プロセス」という設計方針を採用している。
- 実装コードはGitHubのPR #198として公開されている。