← ブログ一覧
AI9分

AIChatとは?20以上のLLMをまとめて扱うRust製オールインワンCLIを公式リポジトリから読み解く

  • #AIChat
  • #CLI
  • #Ollama

OpenAI・Claude・Gemini・Ollamaなど、使うLLMプロバイダーが増えるほど、CLIから呼び出す方法もそれぞれ別々に覚えることになります。Rustで書かれた「AIChat」は、この悩みを1本のバイナリで解決しようとするツールです。公式リポジトリ(sigoden/aichat)のREADMEは、AIChatを「an all-in-one LLM CLI tool featuring Shell Assistant, CMD & REPL Mode, RAG, AI Tools & Agents, and More」と説明しています。

この記事は、公式GitHubリポジトリのREADME・LICENSE・Releasesページ・公式Wiki(Configuration Guide、Command Line Guide)、およびconfig.example.yamlを一次情報としています。このクラウド環境ではcargo install aichatによるビルドまでは実行でき、実際にバイナリを生成できました。一方で、新しくビルドした実行ファイルをこの検証環境のセキュリティポリシー上直接実行することができず、また実際に呼び出すOpenAI・Claude・Ollamaなどのクライアント設定や有効なAPIキーも用意していないため、--helpの実機出力やチャットの応答確認はできていません。本稿は、公式リポジトリとWikiの記載内容の整理であることを先にお伝えします。

AIChatとは:マルチプロバイダー対応のRust製LLM CLI

READMEによると、AIChatは単なるチャットクライアントではなく、CLIからの単発実行(CMDモード)、対話的なChat-REPL、Shell Assistant、RAG、Function Calling/AI Tools・MCP連携、AI Agents、ローカルAPIサーバーという複数の機能を1つのバイナリに統合したツールです。ライセンスはMIT/Apache-2.0のデュアルライセンスで、LICENSE-MITファイルの著作権表記は「Copyright (c) sigoden」でした。本稿執筆時点でスター数は10.6k、フォーク数は755、総コミット数は989件です(いずれも日々変動する数値のため、あくまで本稿執筆時点の参考値です)。GitHub上のトピックタグには ai・ai-agents・chatbot・claude・cli・function-calling・gemini・llm・ollama・openai・rag・rust・shell・webui が並んでおり、単体のチャットCLIというより「LLM活用のハブ」を志向していることがうかがえます。

対応プロバイダー:20社以上+OpenAI互換API+Ollama

READMEには「over 20 leading LLM providers」とあり、OpenAI・Claude・Gemini・Ollama・Groq・Azure-OpenAI・VertexAI・Bedrock・Github Models・Mistral・Deepseek・AI21・XAI Grok・Cohere・Perplexity・Cloudflare・OpenRouter・Ernie・Qianwen・Moonshot・ZhipuAI・MiniMax・Deepinfra・VoyageAIの24社が名前を挙げられています。これに加えて「any OpenAI-Compatible API provider」という汎用的な対応も記載されており、ローカルで動くOllamaのような実行環境も、この「OpenAI互換API」の枠で接続する形になっています。

設定ファイルの実体:config.yamlとOllamaの接続例

公式WikiのConfiguration Guideによると、設定ファイルconfig.yamlは初回起動時に自動生成され、保存場所はmacOSで~/Library/Application Support/aichat/config.yaml、Linuxで~/.config/aichat/config.yaml、Windowsで%APPDATA%\\aichat\\config.yamlです。場所はaichat --infoの出力からも確認できるとされています。modelキーで既定のモデルをopenai:gpt-4oのように指定し、clientsキー配下にプロバイダーごとの設定を並べる構成です。リポジトリ直下のconfig.example.yamlには、Ollamaを「OpenAI互換API」として繋ぐ設定例が次のように載っています。

  # For any platform compatible with OpenAI's API
  - type: openai-compatible
    name: ollama
    api_base: http://localhost:11434/v1
    api_key: xxx                                      # Optional
    models:
      - name: deepseek-r1
        max_input_tokens: 131072
      - name: llama3.1
        max_input_tokens: 128000
        supports_function_calling: true
      - name: llama3.2-vision
        max_input_tokens: 131072
        supports_vision: true
      - name: nomic-embed-text
        type: embedding
        default_chunk_size: 1000
        max_batch_size: 50

ローカルで起動したOllama(既定のポート11434)をapi_baseに指定するだけで、クラウドのプロバイダーと同じclientsの仕組みに乗せられる設計です。モデルごとにsupports_function_callingやsupports_visionといったフラグを明示する点、埋め込みモデル(type: embedding)も同じclients配下で定義する点が、設定例から読み取れます。

Shell AssistantとCMDモード:自然言語からコマンド・コードを生成

公式WikiのCommand Line Guideには、-e(--execute)オプションで自然言語の指示をシェルコマンドに変換する例としてaichat -e install nvimが、-c(--code)オプションでコードだけを出力させる例としてaichat -c fibonacci in jsが挙げられています。パイプとの組み合わせ例としてcat data.toml | aichat -c to json > data.jsonもあり、標準入力をそのままプロンプトの一部として渡せることがわかります。READMEによれば、Shell Assistantは実行環境のOSとシェルの種類に応じてコマンドを調整するとされています。

Chat-REPLとマルチモーダル入力:.fileコマンドで画像・URL・ディレクトリを渡す

READMEのChat-REPL(対話モード)には、タブ補完・複数行入力・履歴検索・キーバインド設定・カスタムプロンプトといった機能があるとされています。入力として受け付けられる対象は幅広く、README記載の.fileコマンドの例では、ローカルファイル(.file image.png data.txt)、ディレクトリ(.file dir/)、リモートURL(.file https://example.com)、直前の応答そのもの(.file %%)、さらに複数の入力と指示文を組み合わせる形(.file dir/ data.txt -- explain)まで同じ構文で扱えるとされています。CLIから直接渡す場合は-f(--file)オプションに対応します。

RAG・AI Agents・ローカルAPIサーバー:単体のチャットCLIを超える機能

READMEはRAGを「外部ドキュメントを会話に組み込み、より正確で文脈に合った応答を得る機能」と説明し、AI Agentsについては「AI Agent = Instructions (Prompt) + Tools (Function Callings) + Documents (RAG)」という構成式とともに、CLI版のOpenAI GPTsに相当するものだと位置づけています。Function Calling/AI Toolsの実体としては、別リポジトリのsigoden/llm-functionsが案内されています。加えてaichat --serveでローカルAPIサーバーを起動すると、既定で127.0.0.1:8000にChat Completions API(/v1/chat/completions)、Embeddings API(/v1/embeddings)、Rerank API(/v1/rerank)を公開するほか、ブラウザから使える「LLM Playground」(/playground)と、複数モデルを並べて比較できる「LLM Arena」(/arena?num=2)というWebアプリも同時に配信されるとREADMEに記載されています。

リリースの歩み:直近はv0.30.0

GitHubのReleasesページによると、本稿執筆時点の最新版はv0.30.0(ページ表示は「06 Jul」で年の表示はなく、リポジトリのフッター表記から2026年と推測されます)です。このリリースではOSC52クリップボードコードへの対応、ダーク/ライトテーマの自動検出、.regenerateの機能強化のほか、エージェントモードでのツール利用やOpenAIのtool_callsメッセージの扱いに関する修正が記録されています。1つ前のv0.29.0ではClaude 3.7 Sonnetへの対応や--file・RAGドキュメントのglob機能強化、v0.28.0では推論トークン(<think>タグ)の表示対応やRAGのリランカー対応が主な内容でした。対応プロバイダーの入れ替わりも目立ち、v0.28.0ではhyperbolic・novita・fireworks・siliconflow・togetherのサポートが終了し、v0.30.0ではlingyiwanwuクライアントのサポートが終了しています。クラウドLLM業界の変化に合わせて、対応プロバイダーの追加・整理が継続的に行われている様子がうかがえます。

この記事で確認できなかったこと

このクラウド環境ではcargo install aichatによるビルド自体は成功し、実行ファイルの生成までは確認できました。しかし、新しく生成した実行ファイルをこの検証環境のセキュリティポリシー上直接実行することができなかったため、aichat --helpやaichat --versionの実際の出力、Chat-REPLの操作感、Shell Assistantが実際に生成するコマンドの内容は確認していません。また、OpenAI・Claude・Ollamaなどの有効なAPIキーやローカルサーバーも用意していないため、実際のチャット応答、RAGの検索結果、AI Agentsの動作、--serveで起動するLLM Playground・LLM Arenaの画面も未確認です。本稿はあくまで公式README・Wiki・Releasesページ・config.example.yamlという一次情報の記載に基づく整理です。

向いている場面・まだ注意が必要な場面

  • 向いている:OpenAI・Claude・Geminiなど複数のクラウドLLMと、Ollamaで動かすローカルモデルを、プロバイダーごとに別々のCLIやSDKを覚えずに同じclients設定の枠組みで切り替えたい場合。設定例を見る限り、既存のOllama環境をそのまま追加の「OpenAI互換クライアント」として組み込めそうです
  • まだ注意が必要:READMEに記載された対応プロバイダーの一覧は、過去のリリースノートを見る限りリリースごとに追加・終了が行われています。特定のプロバイダーを前提に導入する場合は、使っているバージョンのREADMEとリリースノートで、そのプロバイダーが現在も対応しているか確認したほうが安全です。また本稿執筆時点では実行ファイルの実機動作を確認できていないため、導入前にREADMEやWikiの手順で動作を確認することをおすすめします

まとめ

AIChatは、Shell Assistant・Chat-REPL・RAG・AI Agents・ローカルAPIサーバーを1本のRust製バイナリに統合したオールインワンのLLM CLIです。公式READMEとWikiの記載を整理した範囲では、OpenAI・Claude・Geminiなどクラウド側のプロバイダーだけでなく、config.example.yamlの設定例にあるとおりOllamaのようなローカル実行環境も「OpenAI互換API」として同じ仕組みで接続できる点が特徴的でした。一方で、このクラウド環境では実行ファイルのビルドまでは確認できたものの、実機での実行やAPIキーを使った実際の応答確認はできなかったため、導入を検討する場合は公式リポジトリの手順に沿って、自分の環境で一度動かしてみることをおすすめします。

参考にした一次情報

まずは、やりたいことを聞かせてください

「何から手をつければいいか分からない」段階でも大丈夫です。 ご相談・お見積りは無料。碧南近郊なら直接伺います。