ai& CLI
ai& CLI (aiand) は、ブラウザ経由でサインインし、API キーの管理を代行するコマンドラインツールです。コーディングエージェントを ai& で動かすための設定、プロンプトの送信、さらにモデルカタログ・リクエストログ・使用量の確認といったコンソールでの日常的な作業をターミナルから行えます。ソースコードは github.com/aiandlabs/aiand-cli で公開しています。
npm install -g @aiand/cliaiand code # サインインし、OpenCode を設定して ai& 上で起動aiand run "hello" # またはプロンプトを 1 つだけ送信インストール
Section titled “インストール”Node.js 22 以降が必要です。
npm install -g @aiand/clicurl -fsSL https://raw.githubusercontent.com/aiandlabs/aiand-cli/main/install.sh | bashirm https://raw.githubusercontent.com/aiandlabs/aiand-cli/main/install.ps1 | iexインストールスクリプトはシェルのプロファイルを編集して aiand を PATH に追加します。この変更を行わない場合は AIAND_NO_MODIFY_PATH=1 を設定してください。
アップデートとアンインストール
Section titled “アップデートとアンインストール”アップデートするには、インストールコマンドをもう一度実行します。
アンインストール時、インストールスクリプトはまず aiand が設定したすべてのコーディングエージェントを無効化してから CLI を削除します。~/.config/aiand 以下のプロファイルと認証情報は残ります。
aiand init --offnpm uninstall -g @aiand/clibash ~/.aiand/cli/install.sh uninstall& "$env:USERPROFILE\.aiand\cli\install.ps1" uninstallaiand loginaiand login を実行するとブラウザが開きます。サインインを承認すると組織の API キー が作成されます。キー名は aiand@<hostname> となるため、コンソールでマシンごとに見分けられます。ブラウザでのサインインが完了できない場合 (ブラウザがない、タイムアウトした、ターミナルがない等) は、任意のデバイスで承認するコードによるサインインに切り替わります:
Your code BCDF-GHJK Approve at https://api.aiand.com/auth/device?user_code=BCDF-GHJKコンソールで作成済みのキーを使う場合:
aiand login --paste # 入力を伏せ字で表示するプロンプトaiand login --with-token < key.txt # 標準入力からキーを読み込むaiand whoami はサインイン中のユーザー、組織、キーの有効期限を表示します。aiand status はこれに加えて、キーの保存先と設定済みのコーディングエージェントを表示します。
aiand logout は、aiand login で作成したキーを無効化するか確認します。貼り付けたキーはこのマシンから削除されるだけなので、コンソールで無効化してください。
キーの保存先
Section titled “キーの保存先”キーは OS のキーチェーンが利用できる場合はそこに、利用できない場合は ~/.config/aiand/ 以下の暗号化ファイルに保存されます。このファイルの暗号鍵は同じ場所に置かれるため、ちょっと覗かれる程度は防げますが、ディレクトリを読める人からは保護できません。AIAND_KEY_STORAGE=plaintext を設定すると、所有者のみが読める平文ファイルに保存します。
aiand login で作成したキーの有効期間は 30 日です。CLI は有効期限の 3 日前から、または API がキーを拒否した時点で、キーを自動的にローテーションします。貼り付けたキーを CLI がローテーションや無効化することはありません。
| コマンド | 内容 |
|---|---|
aiand login / aiand logout | このマシンのセッションを開始・終了 |
aiand whoami | ユーザー、組織、キーの有効期限 |
aiand status | サインイン状態と各コーディングエージェントの設定 |
aiand code | OpenCode を 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 を使えます。
コーディングエージェント
Section titled “コーディングエージェント”CLI は 3 つのコーディングエージェントに対応しています。<agent> には次のいずれかを指定します:
| エージェント | コマンド | ガイド |
|---|---|---|
| OpenCode | aiand opencode (または aiand code) | OpenCode |
| Claude Code | aiand claude | Claude Code |
| Codex | aiand codex | Codex |
aiand <agent> はエージェントを ai& 上で起動します。サインインしていなければサインインを行い、エージェントがインストールされていなければインストールを提案します。エージェントがまだ ai& 向けに設定されていなければ先に on を実行するため、以後はエージェント本来のコマンドでも ai& が使われます。
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 が各エージェントに書き込む内容は、それぞれのガイドを参照してください。
プロンプトの実行
Section titled “プロンプトの実行”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 .usageaiand chatパイプで渡した入力はプロンプトの後ろに追加されます。回答は stdout に、それ以外は stderr に出力されるため、aiand run "..." > out.md で回答だけを保存できます。回答の後にはモデル、トークン数、コスト、所要時間、リクエスト ID を示すフッターが表示されます。-q で非表示にできます。
-m を省略すると、プロファイルのモデル、またはカタログの推奨デフォルトモデルが使われます。-m auto を指定すると、アカウントが対応していればリクエストごとに ai& がモデルを選びます。自動選択 を参照。既定のモデルは aiand config set model <id> で設定できます。
aiand chat では /help と入力するとセッション内コマンドが一覧表示されます。たとえば /model <id> でモデルを切り替えられます。
モデル・ログ・使用量
Section titled “モデル・ログ・使用量”aiand models --capability vision # カタログを絞り込むaiand logs --range 1h --errors # 失敗したリクエストのみaiand logs --follow # 新しいリクエストを追跡aiand usage --range 30daysaiand 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を指定できます。
ログと使用量は、このマシンだけでなく組織全体が対象です。
組織とプロファイル
Section titled “組織とプロファイル”CLI のキーはサインイン時に選んだ 1 つの組織にスコープされます。aiand orgs で所属している組織を一覧できます。別の組織で作業するには、コンソールでデフォルトの組織を変更してから aiand login --force を実行してください。
プロファイルごとにサインインは独立しているため、プロファイルごとに別の組織のキーを持てます:
aiand login --profile workaiand --profile work usageaiand config use work # デフォルトのプロファイルにする組織が API リクエストにどう適用されるかは 組織の切り替え を参照してください。
aiand config # 現在の設定aiand config set model deepseek-ai/deepseek-v4-flashaiand config profiles # プロファイル一覧aiand config path # ファイルの場所設定は ~/.config/aiand/config.json (または $XDG_CONFIG_HOME 以下) に保存されます。認証情報は別のファイルに保存されるため、設定ファイルは共有しても安全です。優先順位はフラグ、環境変数、保存済みプロファイルの順です。
| 変数 | 効果 |
|---|---|
AIAND_API_KEY | このキーを使用 (サインイン不要、何も保存しない) |
AIAND_PROFILE | 使用するプロファイル |
AIAND_BASE_URL | API エンドポイント (デフォルト https://api.aiand.com) |
AIAND_AUTH_URL | サインイン用エンドポイント (API と異なる場合) |
AIAND_CONFIG_DIR | 設定と認証情報の保存場所 |
AIAND_HOME | エージェントの設定を探すホームディレクトリ (WSL から Windows のホームを使う場合など) |
AIAND_KEY_STORAGE | keychain、file、plaintext のいずれか |
AIAND_NO_BROWSER=1 | ブラウザを開かず、サインイン用のリンクを表示 |
AIAND_UPDATE_CHECK=0 | 1 日 1 回のアップデート通知を無効化 |
NO_COLOR | 色付き表示を無効化 |
| コード | 意味 |
|---|---|
0 | 成功 |
1 | リクエストエラーまたは使い方の誤り (メッセージでどちらか分かります) |
2 | サインインしていない、またはセッションを更新できなかった |
3 | サインインが拒否された、またはコードの有効期限が切れた |
70 | CLI のバグ (スタックトレースが表示されます) |
127 | 不明なコマンド、またはコーディングエージェントが未インストール |
130 | 中断された (Ctrl-C) |
aiand status はサインイン済みなら、ai& に接続できずキーを確認できない場合でも 0 を返し、サインインしていない場合のみ 1 を返します。そのため、これを判定に使うスクリプトは障害時も動作し続けます。
不具合の報告や機能のリクエストは GitHub で受け付けています。