CommandAI

CommandAI

Jason Jacobs (open source, MIT license) · ライティング · コーディング

CommandAI は、ふだんの言葉で書いた依頼をシェルスクリプト、チャットの返答、データベース照会に変えるオープンソースの AIコマンドラインツールだ。ChatGPT、OpenAI互換サーバー、ローカルの Ollama モデルのいずれでも動く。

CommandAI の画面プレビュー

CommandAI について

What Is CommandAI

CommandAI は npm で command-ai として配布される端末向けツール群だ。やりたいことを普通の言葉で書くと、モデルがスクリプトを書き、実行計画を説明し、承認したところで動き出す。

パッケージには3つのプログラムが入っている。ai はシステム作業、aic は対話、aiq はデータベースへの質問を担当する。それぞれ感嘆符付きの版があり、確認を飛ばして実行する。別のスクリプトから呼ぶときに使いやすい。

プロジェクトは alpha だと自ら明言している。README はプロンプトをモデルごとに調整していると断っており、GPT 系で通る依頼がローカルの Ollama モデルでは書き直しを要することがある。サンドボックスも取り消しもないため、実行前の計画確認が実質的な安全策になる。

Getting Started

  1. Node.js 18 以上を入れ、npm install -g command-ai を実行する。
  2. ai config を走らせ、Ollama、ChatGPT、OpenAI互換エンドポイントのどれかを選ぶ。設定は ~/.commandai/config.json に保存される。
  3. 依頼を引用符で囲んで渡す。例は ai "create a cron job that checks my IP and pings a URL when it changes"。
  4. 表示された計画と説明を読み、確認してから実行させる。
  5. データを扱うときは aiq config で Postgres、MySQL、SQLite、MSSQL の接続を登録する。

AIツール情報

CommandAIの料金、対応プラットフォーム、性能を簡単に確認できます。

無料プランはい
有料プランFree software, no tiers; model usage billed by your provider
プラットフォームWindows, macOS, Linux (Node.js 18+)
開発元Jason Jacobs (open source, MIT license)
カテゴリライティング · コーディング
リリース日May 2024
最終更新Oct 2024
サイト訪問数N/A
サイト世界ランキングN/A
API提供状況いいえ

こんな人におすすめ

このツールが最も力を発揮するユーザー、タスク、シーン。

ユーザー

  • 端末で作業することが多い開発者。cron の設定、プロジェクトの雛形作成、ファイル整理といった雑用をターミナルアシスタントに任せたい。ただし計画を読んでから承認する前提だ。
  • 聞きたいことは決まっているが SQL が書けないデータ分析担当。すでに使っている Postgres や MySQL の接続に対してデータベース照会を回せる。
  • 自前のハードウェアで Ollama を動かす Privacy 重視のチーム。依頼がローカルネットワークの外に出ない。

タスク

  • 一度きりの自動化。スクリプトを書かせ、計画を確認し、実行する。検索エンジンに寄り道しなくて済む。
  • 年に数回しか触らず、オプションを覚えられないツールへの自然言語の指示。
  • しきい値を超えた行の抽出や週ごとの登録数集計など、探索的なデータベース照会。
  • 設定ファイル、サーバー、最初のルートまでを一気に用意する立ち上げ作業。

シーン

  • 深夜の当番。ポート確認やログローテーションのための短いスクリプトがすぐ要るとき。
  • 慣れないコードベースに入り、ディスク上の中身を CLI に説明させたり整理させたりする場面。
  • 外部と切り離された、あるいは規制の厳しい端末。ホスト型チャットは使えないが Node.js は入っている。

主な機能

日常の言葉で作業を実行

中心の流れは、一文を受け取り、実行できるスクリプトと説明を返す。説明のほうが役に立つことが多い。承認する前に、触れるファイル、サービス、副作用を名指ししてくれるからだ。

3つの道具を1つのパッケージに

ai、aic、aiq がシステム作業、対話、データの質問を分担する。npm パッケージを1つ入れれば3つとも揃う。チャットやデータベース部分のために別の設定は要らない。

モデルの選択:ChatGPT、OpenAI互換、Ollama

設定の1項目でバックエンドが決まる。OpenAI、同じ API を話す自前サーバー、モデル名を指定した Ollama のいずれかを向けられる。切り替えは1行の編集で済み、再インストールは不要だ。

実行前に計画を表示

どのコマンドも最初に計画を出し、既定では承認を待つ。余分な読解が邪魔なら計画表示は切れる。確認に応答できないパイプライン向けに感嘆符付きの版も用意されている。

4種類のエンジンに対するデータベース照会

aiq は MySQL、Postgres、SQLite、MSSQL を扱う。接続は ~/.commandai/db.json に置き、SQLite のファイルは設定なしで第1引数に渡せる。

読める設定ファイル

設定は ~/.commandai 配下の素の JSON だ。バイナリの保管場所に隠れていないので、差分を比べ、別のマシンへコピーし、dotfiles リポジトリに置ける。

メリットとデメリット

メリット

  • MIT ライセンスで導入は無料。席数もサブスクリプションもない。
  • 実行前の計画確認があるため、生成されたコマンドを盲目的な補完より信頼しやすい。
  • ローカルの Ollama モデルで動くので、プロンプトもファイルパスも自分のハードウェア内に収まる。
  • 設定は読みやすい JSON のままで、チームが1つのファイルを複数のマシンに揃えられる。
  • データベース対応が4エンジンに及び、小規模な CLI 補助ツールが省きがちな MSSQL も入っている。

デメリット

  • alpha 段階で、npm の最終リリースは2024年10月。新しいターミナルエージェントに比べてモデル対応が遅れている。
  • 生成されたスクリプトは自分の権限で動き、サンドボックスがない。計画が誤っていても承認すれば実ファイルが消える。
  • プロンプトの品質はモデルによって振れる。ローカルモデルはホスト型より書き直しが多い。
  • API もチーム向け管理画面も Web 版もない。CLI の外は README 頼みになる。

よくある質問

ふだんの言葉で書いた依頼をシェルスクリプトに変え、計画を見せ、確認後に実行する。同じパッケージに対話モードとデータベース質問モードもある。