CLI-Anythingの使い方:あらゆるソフトウェアをエージェントネイティブにする方法

Herve Kom

Herve Kom

17 3月 2026

CLI-Anythingの使い方:あらゆるソフトウェアをエージェントネイティブにする方法

CLI-Anythingは、AIコーディングエージェント(主にClaude Code)向けのオープンソースプラグインで、コードベースを持つあらゆるソフトウェアの完全なコマンドラインインターフェースを生成します。GIMP、Blender、LibreOffice、その他のアプリケーションを対象とすることで、ソースコードを分析し、AIエージェントがそのソフトウェアをプログラムで制御できる構造化されたCLIを生成します。

問題点:AIエージェントはGUIソフトウェアを使用できない

今日のソフトウェアスタックは、ほとんど互いに通信しない2つの世界に分かれています。

一方には、最新のAPIファーストサービスがあります。クラウドストレージ、決済プロセッサー、メールプロバイダー、分析プラットフォームなどです。これらはHTTPで通信します。AIエージェントは特別なツールなしで直接これらを呼び出すことができます。

もう一方には、ほとんどの専門的なワークフローが依存するソフトウェアがあります。画像編集用のGIMP、3D作業用のBlender、ドキュメント用のLibreOffice、オーディオ用のAudacityなどです。これらは人間がクリック操作するために作られました。これらは構造化されたAPIではなく、グラフィカルインターフェースを公開しています。

AIエージェントをこの2番目のカテゴリのソフトウェアに接続しようとすると、選択肢は限られています。手作業でカスタムラッパーを作成することもできますが、これには数週間かかり、ソフトウェアが更新されると壊れてしまいます。RPA(Robotic Process Automation)ツールを試すこともできますが、これはスクリーンショットとピクセルクリックによってGUI操作を自動化します。しかし、RPAは脆いです。ウィンドウのレイアウトが変更されたり、テーマが更新されたり、ディスプレイのスケーリングが変更されたりすると壊れてしまいます。

CLI-Anythingは異なるアプローチを取ります。人間がメニューをクリックするのをシミュレートする代わりに、ソフトウェアのソースコードを分析して、GUIがすでに呼び出している基盤となるAPIを見つけます。そして、それらのAPIを直接呼び出す実際のCLIを生成します。

AIエージェントは画面を「見る」必要はありません。構造化されたコマンドを発行します。ソフトウェアが作業を行います。

💡
エージェントのワークフローでローカルソフトウェアに加えて外部REST APIを呼び出す必要がある場合は、ApidogがAPIテスト側を処理します。これは、APIリクエストの送信、検査、整理を行う無料ツールなので、エージェントワークフローに組み込む前にAPI連携を検証できます。
ボタン

CLI-Anythingの機能

CLI-Anythingは、HKUDS(香港大学データサイエンス研究室)によって構築されたオープンソースプラグインです。クリエイターのChao Huang氏は、プロジェクトの発表で次のように述べています。

"今日のソフトウェアは人間に奉仕します。明日のユーザーはエージェントです。CLI-Anything:AIエージェントと世界のソフトウェアの間のギャップを埋めます。あらゆるソフトウェアをエージェント対応にする1つのコマンドライン。"

執筆時点で、このプロジェクトはGitHubで6,100以上のスターを獲得しています。

このプラグインはClaude Code内で動作し(実験的にCodexおよびOpenCodeでも動作します)、ソフトウェアのコードベースを対象とすると、7段階の自動パイプラインを実行します。

  1. 分析 (Analyze) - ソースコードをスキャンし、GUIアクションを基盤となるAPIにマッピングし、ソフトウェア固有の標準操作手順ドキュメントを生成します。
  2. 設計 (Design) - コマンドグループ、ステートモデル、出力形式を設計します。
  3. 実装 (Implement) - REPLモード、--json出力サポート、アンドゥ/リドゥ機能を備えたClickベースのPython CLIを構築します。
  4. テスト計画 (Plan tests) - ユニットテストとエンドツーエンドテスト計画を含むTEST.mdファイルを作成します。
  5. テスト作成 (Write tests) - test_core.py(合成データによるユニットテスト)とtest_full_e2e.py(実際のファイルによるエンドツーエンドテスト)を作成します。
  6. ドキュメント作成 (Document) - pytestを実行し、完全な結果をTEST.mdに追加します。
  7. 公開 (Publish) - setup.pyを作成し、コンソールスクリプトのエントリポイントを設定し、PATHにインストールします。

フェーズ7の終わりには、動作するCLIがシステムにインストールされています。AIエージェントはwhich cli-anything-gimpでそれを検出し、cli-anything-gimp --helpで検査し、コマンドを発行し始めることができます。

生成されるすべてのCLIは一貫したデザインに従います。デフォルトでは人間が読めるテーブル出力、--jsonフラグで機械が読めるJSON出力、永続的なプロジェクト状態、アンドゥ/リドゥ、およびインタラクティブなREPLモードです。この一貫性が重要です。エージェントはツールごとに異なるインターフェースを学習する必要はありません。

CLI-Anythingのインストール

CLI-AnythingはPythonベースのプラグインです。npmパッケージではありません。AIコーディングエージェントにインストールし、生成されたCLIはpip install -e .でインストールされるPythonパッケージです。

要件:

Claude Code(主要な方法)

/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything

これによりプラグインがインストールされ、Claude Codeセッションで/cli-anythingスラッシュコマンドが利用可能になります。

OpenCode

リポジトリをクローンし、コマンドファイルとHARNESS.md~/.config/opencode/commands/にコピーします。これにより、5つのスラッシュコマンドが追加されます:/cli-anything/cli-anything-refine/cli-anything-test/cli-anything-validate、および/cli-anything-list

Codex

bash CLI-Anything/codex-skill/scripts/install.sh

Qodercli

bash CLI-Anything/qoder-plugin/setup-qodercli.sh

Windowsでの注意点

このプラグインはGit for Windows(bashとcygpathを含む)またはWSLを必要とします。ネイティブのWindowsシェルはサポートされていません。cygpath: command not foundというエラーが表示された場合は、Git for Windowsをインストールして再試行してください。

生成されたCLIのインストール

プラグインがソフトウェア用のCLIを生成した後、それをPATHにインストールします。

cd <software>/agent-harness
pip install -e .

これは編集可能なインストールモード (-e) を使用しており、再インストールすることなく生成されたソースへの変更が永続化されます。

最初のCLIの生成

プラグインがインストールされたら、生成は単一のコマンドで行われます。GIMPの場合のワークフローは次のとおりです。

Claude Code内:

/cli-anything ./gimp

またはGitHubリポジトリから:

/cli-anything https://github.com/blender/blender

プラグインは7段階のパイプラインを開始します。これは、コードベースのサイズやソフトウェアが公開するAPIサーフェスの数に応じて、数分かかります。

フェーズ1(分析)では、プラグインはソースコードを読み込み、GUIアクションを基盤となるAPI呼び出しにマッピングします。GIMPのような画像エディターの場合、これはレイヤーを作成したり、フィルターを適用したり、ファイルをエクスポートしたり、プロジェクトを管理したりするすべての関数を見つけることを意味します。これにより、操作の完全なセットを記述したソフトウェア固有のSOPドキュメント(GIMP.md)が生成されます。

フェーズ3(実装)では、PythonのClickフレームワークを使用してCLIを構築します。すべてのコマンドは--json出力をサポートしています。すべてのステートフル操作(ファイルを開く、プロジェクトを作成する)は、JSONファイルに状態を保存します。CLIには、色付きのプロンプトと永続的な履歴を備えたインタラクティブなREPLが含まれます。

生成されたディレクトリ構造は次のようになります。

gimp/
  agent-harness/
    GIMP.md           # ソフトウェアSOPドキュメント
    setup.py
    cli_anything/     # 名前空間パッケージ (__init__.pyなし - PEP 420)
      gimp/
        README.md
        gimp_cli.py   # メインCLIエントリポイント
        core/         # プロジェクト、セッション、エクスポートモジュール
        utils/        # REPLスキン、ヘルパー
        tests/
          test_core.py
          test_full_e2e.py
          TEST.md

生成されたすべてのCLIはcli_anything.*名前空間(例:cli_anything.gimp)の下に存在します。これにより、複数のアプリケーションのCLIを生成した場合の名前の衝突を防ぎます。

生成されたCLIの使用

agent-harnessディレクトリでpip install -e .を実行すると、新しいCLIが利用可能になります。

cli-anything-gimp --help

これにより、利用可能なすべてのコマンドグループとそのサブコマンドが表示されます。命名は一貫しており、すべてのツールがcli-anything-<software>というCLIを生成します。

人間が読める出力(デフォルト)

# 新しいプロジェクトを開始
cli-anything-gimp project new --width 1920 --height 1080

# レイヤーを一覧表示
cli-anything-gimp layer list

# レイヤーを追加
cli-anything-gimp layer add --name "Background" --type solid --color "#ffffff"

# フィルターを適用
cli-anything-gimp filter apply --name "gaussian-blur" --radius 3

# エクスポート
cli-anything-gimp export save --format png --output ./output.png

AIエージェント向けのJSON出力

AIエージェントがCLIを呼び出すとき、機械が読める出力を得るために--jsonを使用します。

cli-anything-gimp --json project new --width 1920 --height 1080
# 返り値: {"status": "ok", "project_id": "proj_abc123", "width": 1920, "height": 1080}

cli-anything-gimp --json layer add -n "Background"
# 返り値: {"status": "ok", "layer_id": "layer_001", "name": "Background"}

JSON出力はすべてのコマンドで一貫しています。status、操作固有のフィールド、そして何かがうまくいかなかった場合はエラーの詳細が含まれます。

インタラクティブなREPLモード

長時間のセッションの場合は、REPLを起動します。

cli-anything-gimp

これにより、色付きのプロンプト、タブ補完、永続的な履歴を備えたインタラクティブシェルに入ることができます。ワークフローを構築していて、スクリプト化する前にコマンドをインタラクティブに試したい場合に便利です。

アンドゥ/リドゥ

状態を変更する操作は、50レベルのアンドゥスタックをサポートします。

cli-anything-gimp undo
cli-anything-gimp redo

CLIの洗練とテスト

生成されたCLIが最初のパスで常に完全であるとは限りません。/cli-anything:refineコマンドはギャップ分析を行い、不足しているコマンドを追加します。

一般的な洗練

/cli-anything:refine /home/user/gimp

これは、ソフトウェアのAPIサーフェスに対して既存のCLIをスキャンし、カバーされていない操作を特定し、そのギャップに対して新しいコマンドを追加します。

焦点を絞った洗練

/cli-anything:refine /home/user/blender "particle systems and physics simulation"

より多くのカバーが必要な領域がわかっている場合は、フォーカスの説明を渡します。プラグインは、すべてを再分析するのではなく、コードベースのその部分をターゲットにします。

テストの実行

/cli-anything:test /home/user/gimp

これによりテストスイートが実行され、結果がTEST.mdに更新されます。プロジェクトは、11のアプリケーションで1,508以上のテストが100%の合格率でパスしたと報告しています。

検証

/cli-anything:validate /home/user/gimp

CLIハーネスがHARNESS.md仕様に照らして、すべての構造要件を満たしているかを確認します。

利用可能なCLIのリスト表示

/cli-anything:list
/cli-anything:list --json        # 機械が読める出力
/cli-anything:list --path /home  # 特定のディレクトリを検索

実世界での使用例

CLI-Anythingは11のアプリケーションで実証されています。各カテゴリが実際のワークフローにどのようにマッピングされるかを以下に示します。

GIMPを使った画像処理パイプライン

AIエージェントは、製品画像のバッチ処理を行うことができます。標準寸法にリサイズし、一貫した透かしを適用し、複数の形式でエクスポートします。各ステップは構造化されたCLIコマンドです。エージェントは人間の介入なしに数百の画像を処理できます。

cli-anything-gimp project open --file product.jpg
cli-anything-gimp layer add --name "Watermark" --type image --source watermark.png
cli-anything-gimp layer position --name "Watermark" --x 10 --y 10
cli-anything-gimp export save --format webp --output product-final.webp

LibreOfficeを使ったドキュメント生成

LibreOfficeは実際のPDFを生成します。エージェントは、テンプレートから請求書、レポート、契約書を作成し、動的データを入力し、PDFにエクスポートする、これらすべてをスクリプトから行えます。

cli-anything-libreoffice document open --template invoice-template.ods
cli-anything-libreoffice cell set --address "B5" --value "Acme Corp"
cli-anything-libreoffice cell set --address "C10" --value "1500.00"
cli-anything-libreoffice export pdf --output invoice-2026-001.pdf

Blenderを使った3Dレンダリング

Blenderのレンダリングには時間がかかりますが、スクリプト可能です。エージェントは、GUIなしでレンダリングジョブをキューに入れたり、シーンパラメータを設定したり、出力を管理したりできます。

cli-anything-blender scene open --file product-scene.blend
cli-anything-blender render set --samples 256 --output /renders/product
cli-anything-blender render start --format png

OBS Studioを使ったストリーミングの自動化

OBSは放送ツールです。CLI-Anythingを使用すると、シーン遷移、ソース管理、録画コントロールをスクリプト化できます。

cli-anything-obs scene set --name "Main Camera"
cli-anything-obs recording start
cli-anything-obs scene set --name "Screen Share"
cli-anything-obs recording stop --output session.mp4

CI/CD統合

これらのどれもCI/CDパイプラインに組み込むことができます。コミットごとにBlenderレンダリングを構築するGitHubアクションや、LibreOfficeテンプレートからPDFリリースノートを生成するワークフローも、簡単になります。

Apidogを使ったエージェントワークフローの構築

CLI-Anythingはローカルソフトウェアを扱います。しかし、ほとんどのプロダクションエージェントワークフローでは、外部APIを呼び出す必要があります。処理された画像をCDNにアップロードしたり、生成されたPDFをドキュメント管理システムにプッシュしたり、レンダリングされたビデオをレビュープラットフォームに送信したりする場合などです。

Apidogがその側面を処理します。これは、REST API呼び出しをテスト、文書化、自動化するための無料のAPIクライアントです。

具体的な例を挙げます。GIMPで製品画像を処理し、クラウドストレージAPIにアップロードするエージェントを構築しているとします。CLI-AnythingはGIMPコマンドを提供します。Apidogを使用すると、アプリケーションコードを記述する前にストレージAPIをテストできます。

Apidogでは、次のことを行います。

  1. API資格情報を変数として保存する環境を設定する。
  2. リクエスト形式を確認するために、サンプルファイルでアップロードエンドポイントをテストする。
  3. ファイルURLが正しく返されることを確認するために、応答に対してアサーションを実行する。
  4. 機能するリクエストをcurlコマンドまたはコードスニペットとしてエクスポートし、エージェントスクリプトにドロップする。

これにより、コードを書いて実行し、不可解なエラーが出て、問題がGIMPコマンドにあるのか、API呼び出しにあるのかを突き止めようとするデバッグサイクルを省くことができます。統合する前にAPIが機能することを知ることができます。

Apidogは自動テストスイートもサポートしています。ワークフローが機能したら、すべての実行で実行されるテストアサーションを追加して、リグレッションを検出できます。

知っておくべき制限事項

WindowsサポートにはGit BashまたはWSLが必要

生成されたCLIはPythonベースで、bashスタイルのパス処理に依存しています。Windowsでは、Git for Windows(bashとcygpathを含む)またはWSLが必要です。ネイティブのPowerShellはサポートされていません。

ターゲットソフトウェアがインストールされている必要がある

CLI-Anythingは、ラップするソフトウェアをバンドルしません。GIMP、Blender、LibreOffice、およびその他のツールは、生成されたCLIを実行するのと同じマシンにインストールされている必要があります。CLIは実際のアプリケーションのバックエンドを直接呼び出します。

Pythonのみの出力

生成されるすべてのCLIはPython Clickアプリケーションです。他の言語でCLIを生成するオプションはありません。ワークフローでNode.jsまたはGo CLIラッパーが必要な場合は、別途構築する必要があります。

Claude Codeが安定したプラットフォーム

Claude Codeは主要で最もテストされた環境です。CodexとOpenCodeの統合は実験的とされています。Claude Code以外では機能が不安定になる可能性があります。

生成品質はコードベースに依存

プラグインはソースコードを分析して、GUIアクションの背後にあるAPIを見つけます。コードベースの構造が不十分だったり、難読化されていたり、GUIの状態と密接に結合されている場合、分析がコマンドを見落としたり、不完全なラッパーを生成したりする可能性があります。洗練ステップは役立ちますが、複雑なプロプライエタリソフトウェアをきれいにラップするのはより困難になる場合があります。

ボタン

FAQ

CLI-Anythingはどのようなソフトウェアでも動作しますか?

原則として、はい。アクセス可能なコードベースを持つあらゆるソフトウェアのCLIを生成できます。実際には、ソースコードがGUIアクションを基盤となるAPI呼び出しに明確にマッピングしているオープンソースソフトウェアで最も効果を発揮します。このプロジェクトは、GIMP、Blender、Inkscape、Audacity、Kdenlive、Shotcut、OBS Studio、Draw.io、LibreOffice、AnyGen、Zoomで動作することを実証しています。

このプロジェクトは無料で利用できますか?

はい。CLI-AnythingはMITライセンスで、github.com/HKUDS/CLI-Anythingで完全にオープンソースとして公開されています。

使用するにはPythonの知識が必要ですか?

いいえ。Pythonを記述する必要はありません。プラグインがすべてのPythonコードを生成します。生成されたCLIを実行するには、システムにPython 3.10以降がインストールされている必要があります。

AIエージェントからだけでなく、自分のコードから生成されたCLIを使用できますか?

はい。生成されたCLIは通常のコマンドラインツールです。シェルスクリプト、Makefile、Pythonコード、またはサブプロセスを実行できるあらゆるものから呼び出すことができます。

HARNESS.mdファイルとは何ですか?

HARNESS.mdは、CLI-Anythingによって生成されたハーネスがどのようなものであるべきかを定義する仕様ドキュメントです。コマンド構造、出力形式、テスト要件、およびパッケージングをカバーしています。検証ステップでは、生成されたCLIがこの仕様に照らしてチェックされます。

自社が開発した内部ツール用のCLIを生成できますか?

はい。プライベートな内部ツールを含む、ファイルシステム上の任意のコードベースをプラグインに指定してください。プラグインはローカルで実行され、ソースコードがどこかに送信されることはありません。

これはModel Context Protocol (MCP) とどう比較されますか?

MCPは、標準化されたサーバープロトコルを介してAIエージェントを外部サービスに接続します。CLI-Anythingは、APIを持たないGUIアプリケーション用のローカルCLIラッパーを生成します。これらは異なる問題を扱います。クラウドサービスにはMCPを、デスクトップソフトウェアにはCLI-Anythingを使用する場合があります。

追加リソース

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる