コンテンツにスキップ

ai& CLI

ai& CLI (aiand) は、ブラウザ経由でサインインし、API キーの管理を代行するコマンドラインツールです。コーディングエージェントを ai& で動かすための設定、プロンプトの送信、さらにモデルカタログ・リクエストログ・使用量の確認といったコンソールでの日常的な作業をターミナルから行えます。ソースコードは github.com/aiandlabs/aiand-cli で公開しています。

Terminal window
npm install -g @aiand/cli
aiand code # サインインし、OpenCode を設定して ai& 上で起動
aiand run "hello" # またはプロンプトを 1 つだけ送信

Node.js 22 以降が必要です。

Terminal window
npm install -g @aiand/cli

インストールスクリプトはシェルのプロファイルを編集して aiand を PATH に追加します。この変更を行わない場合は AIAND_NO_MODIFY_PATH=1 を設定してください。

アップデートとアンインストール

Section titled “アップデートとアンインストール”

アップデートするには、インストールコマンドをもう一度実行します。

アンインストール時、インストールスクリプトはまず aiand が設定したすべてのコーディングエージェントを無効化してから CLI を削除します。~/.config/aiand 以下のプロファイルと認証情報は残ります。

Terminal window
aiand init --off
npm uninstall -g @aiand/cli
Terminal window
aiand login

aiand login を実行するとブラウザが開きます。サインインを承認すると組織の API キー が作成されます。キー名は aiand@<hostname> となるため、コンソールでマシンごとに見分けられます。ブラウザでのサインインが完了できない場合 (ブラウザがない、タイムアウトした、ターミナルがない等) は、任意のデバイスで承認するコードによるサインインに切り替わります:

Your code BCDF-GHJK
Approve at https://api.aiand.com/auth/device?user_code=BCDF-GHJK

コンソールで作成済みのキーを使う場合:

Terminal window
aiand login --paste # 入力を伏せ字で表示するプロンプト
aiand login --with-token < key.txt # 標準入力からキーを読み込む

aiand whoami はサインイン中のユーザー、組織、キーの有効期限を表示します。aiand status はこれに加えて、キーの保存先と設定済みのコーディングエージェントを表示します。

aiand logout は、aiand login で作成したキーを無効化するか確認します。貼り付けたキーはこのマシンから削除されるだけなので、コンソールで無効化してください。

キーは OS のキーチェーンが利用できる場合はそこに、利用できない場合は ~/.config/aiand/ 以下の暗号化ファイルに保存されます。このファイルの暗号鍵は同じ場所に置かれるため、ちょっと覗かれる程度は防げますが、ディレクトリを読める人からは保護できません。AIAND_KEY_STORAGE=plaintext を設定すると、所有者のみが読める平文ファイルに保存します。

aiand login で作成したキーの有効期間は 30 日です。CLI は有効期限の 3 日前から、または API がキーを拒否した時点で、キーを自動的にローテーションします。貼り付けたキーを CLI がローテーションや無効化することはありません。

コマンド内容
aiand login / aiand logoutこのマシンのセッションを開始・終了
aiand whoamiユーザー、組織、キーの有効期限
aiand statusサインイン状態と各コーディングエージェントの設定
aiand codeOpenCode を ai& 上で起動 (必要なら先に設定)
aiand <agent>同様にコーディングエージェントを ai& 上で起動
aiand <agent> on / off / statusコーディングエージェントを ai& を使うよう設定・設定を解除・確認
aiand initインストール済みのコーディングエージェントを検出してまとめて設定
aiand run-agent <agent>設定を変更せず、1 セッションだけコーディングエージェントを ai& で実行
aiand restore <agent> --forceエージェントの設定を aiand が変更する前の状態に戻す
aiand run <prompt>プロンプトを 1 つ送信し、回答を stdout にストリーミング
aiand chat対話形式の会話
aiand modelsモデルカタログ (請求通貨建ての料金付き)
aiand logs最近のリクエスト (--follow で新しいリクエストを追跡)
aiand usageリクエスト数とトークン数 (前の期間との比較付き)
aiand orgs所属している組織
aiand configプロファイルと既定値
aiand key exportアクティブなキーを出力 (他のツールへのパイプ用)

ほとんどのコマンドは --json に対応し、すべてのコマンドで --help を使えます。

CLI は 3 つのコーディングエージェントに対応しています。<agent> には次のいずれかを指定します:

エージェントコマンドガイド
OpenCodeaiand opencode (または aiand code)OpenCode
Claude Codeaiand claudeClaude Code
Codexaiand codexCodex

aiand <agent> はエージェントを ai& 上で起動します。サインインしていなければサインインを行い、エージェントがインストールされていなければインストールを提案します。エージェントがまだ ai& 向けに設定されていなければ先に on を実行するため、以後はエージェント本来のコマンドでも ai& が使われます。

Terminal window
aiand claude # Claude Code を ai& 上で起動 (必要なら先に設定)
aiand claude on # Claude Code が ai& を使うよう設定
aiand claude status # Claude Code の現在の設定を確認
aiand claude off # aiand が追加した設定だけを削除
aiand run-agent claude # このセッションだけ ai& を使い、設定は変更しない
aiand init --all # インストール済みのすべてのエージェントを設定

エージェント名より後の引数は、aiand claude -p "explain this repo" のようにそのままエージェントに渡されます。aiand 自身のフラグはエージェント名より前に置き (aiand --profile work codex)、aiand がサブコマンドとして解釈してしまう引数の前には -- を付けてください (aiand opencode -- status)。モデルを指定するには on に --model <id> を渡します。

on は最初に変更する前にエージェントの設定のスナップショットを取り、off は aiand が追加した設定だけを削除します。aiand が変更する前の設定をそのまま復元するには aiand restore <agent> --force を実行します。on が各エージェントに書き込む内容は、それぞれのガイドを参照してください。

Terminal window
aiand run "why is the sky blue?"
cat main.ts | aiand run "review this file"
aiand run -m deepseek-ai/deepseek-v4-flash --system "be terse" "summarize CAP theorem"
aiand run --no-stream --json "hello" | jq .usage
aiand chat

パイプで渡した入力はプロンプトの後ろに追加されます。回答は stdout に、それ以外は stderr に出力されるため、aiand run "..." > out.md で回答だけを保存できます。回答の後にはモデル、トークン数、コスト、所要時間、リクエスト ID を示すフッターが表示されます。-q で非表示にできます。

-m を省略すると、プロファイルのモデル、またはカタログの推奨デフォルトモデルが使われます。-m auto を指定すると、アカウントが対応していればリクエストごとに ai& がモデルを選びます。自動選択 を参照。既定のモデルは aiand config set model <id> で設定できます。

aiand chat では /help と入力するとセッション内コマンドが一覧表示されます。たとえば /model <id> でモデルを切り替えられます。

Terminal window
aiand models --capability vision # カタログを絞り込む
aiand logs --range 1h --errors # 失敗したリクエストのみ
aiand logs --follow # 新しいリクエストを追跡
aiand usage --range 30days
aiand usage --metrics # 詳細な内訳
  • aiand models は カタログ を、100 万トークンあたりの請求通貨建て料金とともに一覧表示します。サインインしていなくても使え、その場合は USD 建てになります。--search、--capability、--sort で絞り込みや並べ替えができます。
  • aiand logs は リクエストログ を表示します。--range には 15m、1h、6h、24h (デフォルト)、7days、30days を指定できます。
  • aiand usage は 使用量 を前の期間と比較して要約します。--range には 1h、24h、7days (デフォルト)、30days、3months を指定できます。

ログと使用量は、このマシンだけでなく組織全体が対象です。

CLI のキーはサインイン時に選んだ 1 つの組織にスコープされます。aiand orgs で所属している組織を一覧できます。別の組織で作業するには、コンソールでデフォルトの組織を変更してから aiand login --force を実行してください。

プロファイルごとにサインインは独立しているため、プロファイルごとに別の組織のキーを持てます:

Terminal window
aiand login --profile work
aiand --profile work usage
aiand config use work # デフォルトのプロファイルにする

組織が API リクエストにどう適用されるかは 組織の切り替え を参照してください。

Terminal window
aiand config # 現在の設定
aiand config set model deepseek-ai/deepseek-v4-flash
aiand config profiles # プロファイル一覧
aiand config path # ファイルの場所

設定は ~/.config/aiand/config.json (または $XDG_CONFIG_HOME 以下) に保存されます。認証情報は別のファイルに保存されるため、設定ファイルは共有しても安全です。優先順位はフラグ、環境変数、保存済みプロファイルの順です。

変数効果
AIAND_API_KEYこのキーを使用 (サインイン不要、何も保存しない)
AIAND_PROFILE使用するプロファイル
AIAND_BASE_URLAPI エンドポイント (デフォルト https://api.aiand.com)
AIAND_AUTH_URLサインイン用エンドポイント (API と異なる場合)
AIAND_CONFIG_DIR設定と認証情報の保存場所
AIAND_HOMEエージェントの設定を探すホームディレクトリ (WSL から Windows のホームを使う場合など)
AIAND_KEY_STORAGEkeychain、file、plaintext のいずれか
AIAND_NO_BROWSER=1ブラウザを開かず、サインイン用のリンクを表示
AIAND_UPDATE_CHECK=01 日 1 回のアップデート通知を無効化
NO_COLOR色付き表示を無効化
コード意味
0成功
1リクエストエラーまたは使い方の誤り (メッセージでどちらか分かります)
2サインインしていない、またはセッションを更新できなかった
3サインインが拒否された、またはコードの有効期限が切れた
70CLI のバグ (スタックトレースが表示されます)
127不明なコマンド、またはコーディングエージェントが未インストール
130中断された (Ctrl-C)

aiand status はサインイン済みなら、ai& に接続できずキーを確認できない場合でも 0 を返し、サインインしていない場合のみ 1 を返します。そのため、これを判定に使うスクリプトは障害時も動作し続けます。

不具合の報告や機能のリクエストは GitHub で受け付けています。