メニュー

AI

CLI-Anythingとは:エージェント用CLIの生成と、CLI-Hubの送信と導入

公開
茹で時間
9 分
言語
日本語 · English

この記事で分かること

  • CLI-AnythingはClaude Codeなどのプラグインで、ソフトのソースコードから、JSONで結果を返すPythonのCLIと使い方のSKILL.mdをAIエージェントに生成させる。描画や書き出しは本物のソフトに任せる
  • 既製のCLIはCLI-Hubで配られ、リポジトリの一覧には79個あり、そのうち73個はGitHubのリポジトリから版を固定せずにインストールされる
  • CLI-Hubは既定で、実行したコマンド名やエージェントから呼ばれたかの判定を、端末ごとのIDを付けてPostHogに送り、環境変数CLI_HUB_NO_ANALYTICS=1で止められる
目次(5項目)
  1. CLI-Anythingとは
  2. 生成されるCLIの中身
  3. CLI-Hubで配られているCLI
  4. CLI-Hubが送る情報とインストールの仕組み
  5. 関連する記事

GitHub Trendingに、HKUDS/CLI-Anythingが上がっていました。「あらゆるソフトをAIエージェントが扱える形にする」という触れ込みで、GIMPやBlender、LibreOfficeをエージェントにコマンドで操作させるためのCLIを作ります。画面を撮って座標をクリックするGUIエージェントとは逆の発想です。何を生成するのか、入れると手元で何が動くのかを、リポジトリのコードから確かめました。

GitHubのリポジトリ「HKUDS/CLI-Anything」の紹介画像。リポジトリ名と説明、コントリビューター数やスター数、組織のアイコン
出典:HKUDS/CLI-Anything(GitHub)

CLI-Anythingとは

最初のコミットは2026年3月8日で、ライセンスはApache 2.0です。OSS Insightの集計では、公開から23日の3月31日時点でスターが25,219ありました。6月には作者らが技術報告をarXivに出しています。

報告によると、スクリーンショットから要素を探してクリックする方法は、画面の変更や表示の待ち時間で壊れやすいそうです。AIエージェントには人間向けの画面を読ませず、コマンドで操作させ、状態と結果を決まった形で返すほうがよい、というのが報告の主張です。

使い方は2つです。既製のCLIはパッケージマネージャー「CLI-Hub」で探して入れます。まだないソフトはClaude CodeやCodexなどにプラグインを入れ、そのソフトのソースコードからCLIを生成させます。

生成されるCLIの中身

手順書のHARNESS.mdは、ソースコードの分析からPyPI向けのパッケージ化までを7段階に分けています。途中にはテストの計画、実装、結果の記録があり、エージェント向けの使い方を書いたSKILL.mdも6段階目のあとに生成させます。Claude Codeでの始め方は、マーケットプレイスを足してプラグインを入れ、/cli-anything <ソースのパスかGitHubのURL>を実行する手順です。コマンドの説明によると、ソフトの名前だけでは受け付けず、ソースコードが必要です。

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

生成物はPythonのClickで書いたcli-anything-<ソフト名>というコマンドです。引数なしで起動すると対話のREPLになり、サブコマンドで1回ずつ実行することもできます。全てのコマンドに--jsonが付くので、エージェントは結果をJSONで受け取れます。

HARNESS.mdが「交渉の余地がない」とする規則で一番大きいのは、描画や書き出しを本物のソフトに任せることです。CLIはODFやSVG、MLTのXMLといったソフトの形式のファイルを直接組み立て、PDFや画像への書き出しは本物のソフトを呼びます。例えばLibreOfficeのCLIは、文書をODFとして作り、libreoffice --headless --convert-toでPDFやDOCXに変えています。ソフトが入っていなければ、代わりのライブラリで済ませずにエラーで止める決まりで、テストも本物のソフトがないと失敗します。GIMPのCLIを使うには、GIMPそのもののインストールが要るということです。

書き出しの確認にも決まりがあり、終了コードが0でも成功とみなしません。PDFなら先頭のバイト、動画なら特定のフレームの明るさ、音声なら始めと終わりの音量まで調べるよう求めています。HARNESS.mdは理由として、エージェントが自分で誤りを直すには、はっきりしたエラーが要ると書いています。

READMEの「制限」の節は、CLIの生成にはClaude Opus 4.6やGPT-5.4のような最上位のモデルが要り、小さいモデルでは不完全なCLIになりやすいと書いています。ソースコードがなく、実行ファイルしかないソフトでは質が大きく落ちること、1回の生成で全機能を覆えず、/cli-anything:refineでの追加を繰り返す前提であることも書かれています。

CLI-Hubで配られているCLI

既製のCLIはPyPIのcli-anything-hub(10月18日時点で0.4.1)で入れるcli-hubコマンドから探します。cli-hub search imageで探し、cli-hub install gimpで入れる形です。エージェントに探させるためのcli-hub-meta-skillというスキルもあります。

リポジトリのregistry.jsonには、CLI-Anythingの方式で作ったCLIが79個載っています。分類ではAIが8個で最も多く、DevOps、Web、動画、グラフィックス(GPUのデバッグや3Dの解析)が6個ずつです。GIMPやBlenderのような制作ソフトのほか、ZoomやJumpServerのようにWebのAPIを包むもの、Slay the Spire IIのようなゲームもあります。別のpublic_registry.jsonには、Lark(Feishu)の公式CLIなど、ほかの開発元のCLIが24個あり、11個はnpmで入れる形です。

READMEのテスト結果の表には、30個のCLIで合計2,464件のテストが通ったとあります。数字は開発元の自己申告で、CLIごとの件数は10件から208件まで開きがあります。

CLI-Hubが送る情報とインストールの仕組み

CLI-HubのREADMEは、利用状況の匿名のイベントを送ると書いています。コードを読むと、送り先は既定でPostHogで、cli-hubを実行するたびに次の情報が送られます。

  • 実行したサブコマンドの名前と、OSの種類
  • エージェントから呼ばれたかの判定。CLAUDE_CODEやCODEXなどの環境変数と、親プロセスの名前(claude、codex、cursorなど)、標準入力が端末かどうかから推し量る。CIやスクリプトから呼ぶと、エージェント扱いになる
  • 初回に作り、~/.cli-hub/に保存する端末ごとのランダムなID
  • install、uninstall、launchのときは対象のCLIの名前。cli-hub canなどの検索では、入力した検索語の先頭120字

個人のファイルの中身は送りませんが、同じIDで使い方が積み重なります。送信は環境変数CLI_HUB_NO_ANALYTICS=1で止められるので、会社の端末やCIでは先に設定しておいたほうがよさそうです。

インストールの仕組みにも、見ておきたい点があります。registry.jsonの79個のうち66個は、pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=...の形で、このリポジトリのmainブランチから直接インストールされます。ほかの7個も、別の作者のGitHubのリポジトリから同じ形で入ります。どちらも版を固定しないので、同じcli-hub installでも、実行した日によって入るコードが変わります。一覧そのものはhkuds.github.ioから取っていて、手元の控えは1時間で古いとみなされます。installer.pyは、一覧のインストールコマンドに|や&&があればシェル経由で実行し、そのコメントには「コマンドは信頼できる一覧から来る」とあります。一覧が書き換えられれば、手元でそのコマンドが動く作りです。業務の端末ではcli-hubを通さず、必要なCLIだけをコミットを指定してpip installするほうが、何が入ったかを後から追えそうです。

エージェントが自分でコマンドを組み立てる点は、開発元も危険として扱っています。SECURITY.mdは、人が1行ずつ確かめない前提で、プロンプトインジェクションを受けたエージェントが細工した引数をソフトに渡す筋書きを挙げています。対策として、subprocessでshell=Trueを使わない、コーデック名を許可リストで確かめる、出力先のパスを正規化する、といった決まりをCLIの作り手に課しています。CLIはコミュニティのPull Requestで増えているので、使うCLIがこの決まりを守っているかは、入れる前にコードで確かめたほうがよさそうです。

関連する記事

エージェントに手順を渡すスキルの例は、Googleのスキル集の記事に書きました。CLI-Anythingは、スキルのSKILL.mdに加えて、ソフトを操作するコマンドそのものを配る点が違います。エージェントにとっての使いやすさの測り方は、Agent Experienceの記事で扱っています。

udon
Microsoft 365、ServiceNow、Copilotなどを自ら検証し実務で使える「コシのある知見」を記録しています。