Amazon Quick DesktopからACP連携でKiro CLIにタスクを実行させてみた

Amazon Quick DesktopからACP連携でKiro CLIにタスクを実行させてみた

Amazon Quick DesktopからKiro CLIにACP経由でタスクを実行させる方法をまとめました。自然言語での指示、マルチターン対話、並列実行に加え、SSH経由でリモートマシン上のKiro CLIに接続する構成も紹介します。
2026.06.05

はじめに

Amazon Quick Desktopは、デスクトップ上で動作するAI仕事アシスタントです。チャットUIから自然言語で指示を出し、コーディングやドキュメント作成、各種サービスとの連携を統合的に管理できます。

一方、Kiro CLIはAWSが提供するAIエージェントで、ACP(Agent Client Protocol)に対応しています。ターミナルからヘッドレスで動作し、ファイル操作やコマンド実行、コード生成を自律的に行います。

本記事では、Amazon Quick Desktop(以下、Quick)からKiro CLIにACP経由でタスクを実行させる方法を検証しました。

  • ローカルKiro CLIの設定と動作確認(タスク実行、マルチターン対話、セキュリティ)
  • SSH経由リモート接続の試行(失敗→原因特定→成功)

https://kiro.dev/docs/cli/acp/

ACP(Agent Client Protocol)とは

ACPは、AIエージェントとクライアント(エディタやデスクトップアプリ)間の通信を標準化するプロトコルです。LSP(Language Server Protocol)がエディタと言語サーバーの通信を標準化したのと同じ発想で、AIエージェントとの対話を標準化します。

主な特徴は以下のとおりです。

  • stdin/stdout上のJSON-RPC 2.0で通信する
  • エディタやクライアントにロックインされない
  • セッションベースのエージェント対話(タスクの開始・継続・完了)を管理する

Quickでは、Coding Agentsとして Kiro、Claude Code、Codex、GitHub Copilot、Gemini CLI、Cursor などを登録できます。

https://agentclientprotocol.com/protocol/transports

環境

項目
ローカル macOS Tahoe 26.5.1 (Build 25F80)
OpenSSH 10.2p1 (LibreSSL 3.3.6)
Amazon Quick Desktop v0.811.0
Kiro CLI v2.6.0
モデル Claude Opus 4.6
リモート Fedora Linux Asahi Remix 43 Server Edition (Apple Silicon)

ローカルKiro CLIの設定手順

ローカルのKiro CLIをACP経由で接続する設定は3ステップで完了します。

Settings → Capabilities → MCP タブを開く

Quickの Settings → Capabilities → MCP タブを開きます。MCP タブにはMCP Serversの設定もありますが、Kiro CLIの登録先はページ下部の「CODING AGENTS」セクションです。

Settings → Capabilities → MCP タブの CODING AGENTS セクション

Add Agent でKiroを追加

「+ Add Agent」をクリックすると、Add Coding Agent Skill ダイアログが表示されます。Kiro がプリセットとして表示されるので、選択するだけで登録できます。

Add Coding Agent Skill ダイアログ。Kiro がプリセットとして表示される

登録完了

Kiro が Enabled 状態で登録されました。

Kiro が Enabled 状態で登録された

設定値は以下のとおりです。

項目
Name Kiro
Command /Users/your-user/.local/bin/kiro-cli
Arguments acp

プリセット選択時にCommandとArgumentsは自動設定されます。

Coding Agent Skills の仕組み

Kiro を登録すると、Quick に「Coding Agent Skills」がビルトインスキルとして自動ロードされます。内部的には Send Message To Acp Agent ツールを使ってACPエージェントと通信します。

Coding Agent Skills のビルトインスキル。Send Message To Acp Agent ツールでACPエージェントと通信する

動作確認

タスク実行

Quickのチャットで自然言語で指示を出すだけで、Kiroがタスクを実行します。

  • 「Kiroに○○を頼んで」
  • 「use Kiro to ...」

マルチターン対話

同じタスクとして継続して指示する限り、Kiroは会話のコンテキストを保持します。「さっきの結果をもとにREADMEを更新して」のように、前の指示を踏まえた継続的なやり取りが可能です。内部的には task_name によって継続タスクとして管理されています。

ノンブロッキング並列実行

今回の検証では、長時間タスクの実行中もQuickのチャットは通常どおり使えました。実際にローカルKiroとリモートKiroに同時にタスクを実行させ、それぞれ独立して完了することも確認しています。

セキュリティ確認

ACP経由でのタスク実行時のセキュリティ動作を確認しました。

承認ダイアログ

Kiroが危険性のあるコマンド(sudo など)を実行しようとすると、QuickのUI上に承認ダイアログが表示されます。人間が「Allow」を押さない限り実行されません。

ACP agent の実行許可ダイアログ

今回の環境でのsudo実行結果

今回の環境では、仮に承認してもOS側のパスワード要求が追加のガードレールとして機能しました。実際に sudo ls -la /root/ を試したところ、以下のエラーでブロックされました。

sudo: a terminal is required to read the password;
either use the -S option to read from standard input or configure an askpass helper
sudo: a password is required

承認判断のAI委任は確認できず

今回の検証では、承認判断をQuick AIに委任する方法は見つかりませんでした。承認ダイアログは人間の判断を介在させる設計のようです。

SSH経由リモート接続(失敗→成功)

動機

SSH経由でリモートマシン上のKiro CLIに接続できれば、以下のメリットがあります。

  • リモートのIAMロールを利用でき、ローカルに認証情報を置かずに済む
  • 開発環境を隔離でき、パッケージ追加・更新による依存汚染やバージョン不整合の影響をリモート側に閉じ込められる
  • Quickの統合管理(記録・並列管理)をリモート作業にも適用できる

前提条件

SSH経由のACP接続では、stdin/stdoutが通信に使われるため、以下が事前に整っている必要があります。

  • SSH鍵認証などで非対話ログインできること
  • 初回のhost key確認が済んでいること
  • リモート側にKiro CLIがインストール・認証済みであること
  • SSHログイン時に余計な標準出力(バナー、motd等)が出ないこと

事前にSSH経由でACPの疎通ができることを確認しました。JSON-RPCの initialize リクエストを送ると、Kiro CLI Agent v2.6.0 が正常に応答しています。

(printf '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":1,"clientCapabilities":{},"clientInfo":{"name":"test","version":"0.1.0"}}}\n'; sleep 5) | ssh 192.0.2.10 /home/your-user/.local/bin/kiro-cli acp
{"jsonrpc":"2.0","result":{"protocolVersion":1,"agentCapabilities":{"loadSession":true,"promptCapabilities":{"image":true,"audio":false,"embeddedContext":false},"mcpCapabilities":{"http":true,"sse":false},"sessionCapabilities":{},"auth":{}},"authMethods":[],"agentInfo":{"name":"Kiro CLI Agent","title":"Kiro CLI Agent","version":"2.6.0"}},"id":0}

最初の試行 → 失敗

リモートKiroを登録しましたが、MCP統合として認識されてしまいタスク実行に失敗しました。

項目
Name Kiro Remote
Command /usr/bin/ssh
Arguments 192.0.2.10 /home/your-user/.local/bin/kiro-cli acp

設定画面のテスト接続ボタンを押すと、Kiro CLI Agent v2.6.0 が応答し、ジョークまで返してきました。疎通は成功です。

ACP agent の接続許可ダイアログ

しかし、実際にタスクを実行させようとすると以下のエラーが表示されました。

Skill 'user_mcp' is registered but its tools failed to load
(the integration may not have started).

-T オプションの追加やアプリの再起動を試しましたが、改善しませんでした。

原因分析

Quickのアプリログ(~/Library/Logs/quickwork/)を、ローカルKiro経由で調査しました。これ自体がACP連携の実用例です。

ログには以下の記録が残っていました。

[UserMCP] No enabled servers in config

このメッセージから、実際のタスク実行時にはACPエージェントとして起動されておらず、MCP統合側の処理経路に入っていたことがわかりました。原因をまとめると以下のとおりです。

  • MCP統合として扱われると、Quickは対象をMCPサーバーとして扱い、tools/list メソッドでツール一覧の取得を期待する
  • kiro-cli acp はMCPではなくACPプロトコルで通信するため、tools/list には応答しない
  • テスト接続では初期化段階の応答が返るため成功しているように見えるが、実際のタスク実行時にはMCPとして tools/list などの呼び出しが行われ、ACPエージェントである kiro-cli acp とは噛み合わない

解決 → Coding Agents に再登録

「CODING AGENTS」セクションに「Custom ACP agent」として再登録しました。

項目
Name Kiro Remote
Command /usr/bin/ssh
Arguments -T 192.0.2.10 /home/your-user/.local/bin/kiro-cli acp

Custom ACP Agent としてSSH経由のリモートKiroを登録

テスト接続を実行すると、Kiro CLI Agent v2.6.0 が正常に応答しました。

テスト接続成功。Kiro CLI Agent v2.6.0 が応答

実際のタスク実行も成功し、リモートマシン上のファイル読み取りまで動作確認できました。Kiro CLIのネイティブツール(glob, read)がSSH越しに正常動作しています。

リモートKiroへのタスク実行が成功。Task list に完了表示

ローカルとリモートの環境情報取得による検証

ローカルKiroとリモートKiroそれぞれに uname -a を実行させ、接続先が異なることを確認しました。

ローカルKiroでmacOS情報取得

リモートKiroでLinux情報取得

QuickのチャットUIから同じ操作で、異なる環境でタスクを実行できています。

成功のポイント

SSH経由リモート接続を動かすためのポイントは以下の3点です。

  • 登録先を「MCP Servers」ではなく「Coding Agents」にする
  • -T(pty無効化)を付ける。余計なエスケープシーケンスの混入を防ぐ
  • ACPプロトコルとMCPプロトコルの違いを理解する

まとめ

QuickとKiro CLIのACP連携は、Settings画面から3ステップで設定できます。自然言語でタスクを実行でき、マルチターン対話やノンブロッキングな並列実行も確認できました。会話・作業履歴の一元管理やログ調査の依頼など、CLIを直接操作するのとは異なる利点があります。

SSH経由のリモート接続では、登録先の違いで失敗する落とし穴がありました。テスト接続が成功するため原因の特定が難しいですが、kiro-cli acp はACPプロトコルで通信するため、「Coding Agents」に登録する必要があります。登録先を正しくすれば、SSH越しでもKiro CLIのネイティブツールが正常に動作しました。

参考リンク

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事