Ask m' AI について
Ask m' AI は、複数の LLM プロバイダーを利用できるスクリプト対応のデスクトップチャットアプリです。独自ツールを定義でき、MCP サーバーとしても実行できます。
主な機能
- 01複数の LLM プロバイダーへの接続
- 02独自ツールと組み込みツールの定義
- 03設定ファイル、環境変数、CLI による設定
- 04会話のターミナル出力
- 05画面テーマとコードテーマの選択
活用シーン
- 01デスクトップ画面での LLM とのチャット
- 02ターミナルスクリプトからのチャット実行
- 03LLM への独自ツールの提供
- 04MCP 対応アプリへのツール提供
MCP 対応
MCP サーバーとして実行し、組み込みツールやユーザー定義ツールを他のアプリに公開できます。また、設定した MCP サーバーに接続し、そのツールを LLM で利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Ask m' AI
Ask m' AI(ask my ai -> ask m' ai)は、LargeLanguageModels(例:OpenAI の GPT)向けの小さなデスクトップチャットアプリケーションです。
数あるチャットアプリケーションとは異なり、このアプリケーションはスクリプトからの利用を想定しています。 つまり、ターミナルから呼び出し、必要なオプションをすべて引数として渡せます。 会話はターミナルにも出力されるため、スクリプト内で使用できます。

https://github.com/user-attachments/assets/a6d16332-55a1-4866-9f3e-31490a488935
クイックスタート
LocalAI
ask-mai -b localai --llm.localai.base-url=http://localhost:8080/v1 --llm.localai.model=gpt-4
OpenAI
ask-mai -b openai --llm.openai.api-key.plain=YOUR_OPENAI_API_KEY
Ollama
ask-mai -b ollama --llm.ollama.server-url=http://localhost:11434 --llm.ollama.model=llama3.2
Anthropic
ask-mai -b anthropic --llm.anthropic.api-key.plain=YOUR_ANTHROPIC_API_KEY
Mistral
ask-mai -b mistral --llm.mistral.api-key.plain=YOUR_MISTRAL_API_KEY --llm.mistral.model=mistral-small-latest
DeepSeek
ask-mai -b deepseek --llm.deepseek.api-key.plain=YOUR_DEEPSEEK_API_KEY
Google Gemini
ask-mai -b google --llm.google.api-key.plain=YOUR_GOOGLE_API_KEY
機能
- 複数の LLM プロバイダーに対応
- ツールに対応
- LLM から呼び出せる独自のツールを定義できます
- 組み込みツールも用意されています:
- "getSystemInformation" - システムに関する情報を取得します
- "getEnvironment" - システムの環境変数を読み取ります
- "getSystemTime" - 現在のシステム時刻を取得します
- "getStats" - ファイルまたはディレクトリの統計情報を取得します
- "changeMode" - ファイルまたはディレクトリのモードを変更します
- "changeOwner" - ファイルまたはディレクトリの所有者を変更します
- "changeTimes" - ファイルまたはディレクトリのアクセス時刻や変更時刻を変更します
- "createFile" - システム上にファイルを作成します
- "createTempFile" - システム上に一時ファイルを作成します
- "appendFile" - 既存のファイルに内容を追記します
- "readTextFile" - システム上のテキストファイルを読み取ります
- "deleteFile" - ファイルを削除します
- "createDirectory" - システム上に新しいディレクトリを作成します
- "createTempDirectory" - システム上に新しい一時ディレクトリを作成します
- "deleteDirectory" - ディレクトリを削除します
- "executeCommand" - システム上でコマンドを実行します
- "callHttp" - HTTP リクエストを実行します
- MCPサーバーとして実行(下記参照)
- ask-mai' のツール(独自のツールも含む)を、MCP サーバーに対応した他のアプリケーションで使用できます
- MCPサーバーに対応
- LLM が使用できる複数の MCP サーバーを定義できます(現在はツールのみ)
- スクリプトから利用可能
- すべての設定は、以下の方法で指定できます:
- yaml 設定ファイル
- 環境変数
- コマンドライン引数
- ユーザーの質問とモデルの回答はターミナルに出力されます
- すべての設定は、以下の方法で指定できます:
- カスタマイズ可能
- 2 種類のテーマ(ライト、ダーク)から選択できます
- 複数の言語(英語、ドイツ語)から選択できます
- 複数のコードテーマから選択できます(利用可能なテーマはヘルプを参照)
このアプリケーションをインストールする
AUR(Arch Linux)
yay -S ask-mai
このアプリケーションをダウンロードする
このアプリケーションの最新バージョンは、リリースページからダウンロードできます。 オペレーティングシステム、アーキテクチャ、機能セットごとにさまざまなバージョンが用意されています。
ファイル名は次のような構成です:
ask-mai-${OS}-${ARCH}-${FEATURE}.${EXTENSION}
利用可能な OS:
- darwin - MacOS
- linux - Linux
- windows - Windows
利用可能なアーキテクチャ:
- amd64 - 64bit
- 386 - 32bit
- arm64 - ARM 64bit
利用可能な機能:
- compressed - バイナリは圧縮されています(一部のウイルス対策ソフト、特に windows では問題が発生する場合があります)
- console - バイナリはコンソールアプリケーションです(windows のみ)
- debug - バイナリには開発者ツールが含まれています(GUI ソースを確認できます)
このアプリケーションを mcp-server として起動する
最初の位置引数として ask-mai-mcp-server を指定すると、このアプリケーションを MCP サーバーとして起動できます。
ask-mai ask-mai-mcp-server
または、バイナリの名前を ask-mai-mcp-server に変更して、次のように起動できます。
ask-mai-mcp-server
MCP サーバーをストリーミング可能な HTTP サーバーとして実行するには、-http-address フラグを使用します。
ask-mai ask-mai-mcp-server --http-address=":8080"
このアプリケーションのビルド方法
- 依存関係をインストールします。wails のドキュメントを参照
- アプリケーションをビルドします。
wails build
このアプリケーションを自分でビルドしてインストールする方法(flatpak)
flatpak-builder .flatpak-build de.rainu.ask-mai.yml --repo=.flatpak-repo --install-deps-from=flathub --force-clean --default-branch=master --arch=x86_64 --ccache
flatpak build-bundle .flatpak-repo ask-mai.flatpak --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo --arch=x86_64 de.rainu.ask-mai master
sudo flatpak install --reinstall ask-mai.flatpak
アプリケーションの起動が遅すぎる場合
アプリケーションの起動速度が要件を満たさない場合は、プロンプトを自分で取得し、-ui-prompt フラグを使ってそのプロンプトでアプリケーションを起動できます。
rofi を使った例を示します。
#!/bin/sh
PROMPT=$(rofi -dmenu -p "Ask-mAI" -l 0 -location 2)
if [ $? -ne 0 ]; then
exit 1
fi
ask-mai -ui-prompt "${PROMPT}"
コントリビューション
nix を使っている場合は、nix develop を実行すると、コントリビューションに必要なすべての依存関係がそろったシェルに入れます。この flake は、すべての *.nix ファイルと *.go ファイルのフォーマットに treefmt も使用します。nix fmt でフォーマットを実行し、nix flake check でチェックできます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。