ant CLIのインストール方法 — Claude APIに最初のリクエストを送るまで
ant CLIをHomebrew・curl・Go installでインストールし、認証してClaude APIに最初のリクエストを送るまでの手順と、詰まったときの切り分けをまとめます。
ant CLIとは何か — curlとの違い
ant CLIは、Claude APIの各リソースをターミナルから呼び出すためのコマンドラインツールです。curlで続けていた作業のうち、JSONの手書きとレスポンスの整形が負担なら、置き換える価値があります。導入手段はHomebrew・GitHub Releasesのバイナリ取得・Goのソースインストールの3通りです。
同じメッセージ送信をcurlとant CLIで書き比べると、違いがはっきりします。まずcurlの形です。
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "claude-opus-5-5", "max_tokens": 1024, "messages": [{"role": "user", "content": "Hello, Claude"}]}'ant CLIでは、--messageフラグにクォートを省いた緩い記法を渡せます。ヘッダーの並べ直しは不要で、JSONのクォート漏れも起きにくくなります。
ant messages create \
--model claude-opus-5-5 --max-tokens 1024 \
--message '{role: user, content: "Hello, Claude"}'同じリクエストを送るときの違い
curl
JSON全体とヘッダー3本を自分で書きます。レスポンスの整形や絞り込みはjqなどの別ツールの役目です。
ant CLI
型付きフラグやパイプ渡しのYAMLでボディを作り、ファイルの中身は@pathの参照で埋め込みます。レスポンスは組み込みの--transformで絞るので、jqは要りません。
扱えるのはMessages APIだけではありません。モデル一覧のmodels、ファイルアップロードのfiles、マネージドエージェントのbeta:agentsとセッションのbeta:sessionsなどが並びます。コマンドはant <resource>[:<subresource>] <action>という共通の形で、ベータ中のリソースだけbeta:の接頭辞が付きます。使えるリソースの一覧は、手元でant --helpを実行すれば確認できます。
インストール方法を選ぶ
導入手段は環境で決まります。複数を併用する必要はありません。
| 環境 | 手段 | 前提 |
|---|---|---|
| macOS | 手段Homebrew | 前提brew install anthropics/tap/ant |
| Linux / WSL | 手段curlでバイナリ取得 | 前提tarと、書き込み権限のある/usr/local/bin |
| ソースから入れる環境 | 手段go install | 前提Go 1.25以降 |
macOSではHomebrewが最短です。
brew install anthropics/tap/antLinux環境やWSL上では、GitHub Releasesのバイナリを直接取得します。OSとアーキテクチャの判定をスクリプトに入れておくと、使い回しやすくなります。
VERSION=1.37.0
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
case $(uname -m) in
x86_64) ARCH=amd64 ;;
aarch64) ARCH=arm64 ;;
esac
curl -fsSL "https://github.com/anthropics/anthropic-cli/releases/download/v${VERSION}/ant_${VERSION}_${OS}_${ARCH}.tar.gz" \
| sudo tar -xz -C /usr/local/bin antVERSIONは公式ページに載っている固定値で、GitHubの最新リリースより古いことがあります。最新版を入れたいときは、releasesページで番号を確かめて差し替えます。
CIやDockerイメージのビルドでは、このVERSIONをビルド引数に固定する選択肢があります。latestのような可変の参照を使わなければ、ある日突然ビルドの結果が変わる事態を避けられます。
Goの環境があるなら、ソースからのインストールも使えます。バイナリの置き場所は$(go env GOPATH)/binです。
go install github.com/anthropics/anthropic-cli/cmd/ant@latestこの場所がPATHに入っていないと、インストール直後にantが見つかりません。必要なら次の1行で追加します。
export PATH="$PATH:$(go env GOPATH)/bin"ant --versionバージョン番号が表示されれば、導入は完了です。
認証して最初のリクエストを送るまでの4ステップ
導入のあとは、ログインから送信までを順に進めます。2番目のant auth statusは、つまずいたときの切り分けでも最初に使うコマンドです。
導入から最初のレスポンスまで
- 1
ant auth login でログインする
ブラウザでClaude ConsoleのOAuthログインが開きます。APIキーを作って管理する必要はありません。
- 2
ant auth status で状態を確かめる
どの認証情報が選ばれたか、有効なプロファイルとワークスペースはどれかが表示されます。
- 3
ant messages create を実行する
--model・--max-tokens・--messageの3つを渡せば、Messages APIにリクエストが飛びます。 - 4
usage を見る
レスポンス末尾の
usageで、入力と出力のトークン数を確認します。
ログインのコマンドは次の1行です。
ant auth loginブラウザを開けないリモートホストでは、ant auth login --no-browserが使えます。認可用のURLが表示されるので、ブラウザで開いて返ってくるコードをターミナルに貼り戻します。認証情報はcredentials/<プロファイル名>.jsonに保存されます。
保存先のディレクトリは環境変数ANTHROPIC_CONFIG_DIRで決まります。未設定ならmacOSとLinuxは~/.config/anthropic、Windowsは%APPDATA%\Anthropicです。
ログインしたワークスペースを先に決めておきたいときは、--workspace-idにIDを渡します。ブラウザ上のワークスペース選択画面を飛ばせます。ログアウトはant auth logoutで、ant auth logout --allなら全プロファイルの認証情報を消します。
ログイン方法には、APIキーの環境変数や複数ワークスペースの切り替え、Workload Identity Federationなどもあります。認証方法の全体像は別の記事にあります。組織での細かい設定はant CLIの認証設定に書きました。ここでは最短経路のant auth loginだけで先へ進みます。
ログインできたら、ant auth statusで状態を見ます。公式のドキュメントでは、出力が次のような形で示されています。
Active profile: default
Config dir: ~/.config/anthropic
...
(active) * Workspace wrkspc_01... (Engineering)(active)と付いた行が、実際に選ばれた認証情報とワークスペースです。このコマンドは状態を表示するだけで、ヘルスチェックではありません。終了コードを見てスクリプトの分岐に使わないよう、公式は注意しています。
認証が済めば、Messages APIへのリクエストは次の形で送れます。
ant messages create \
--model claude-opus-5-5 \
--max-tokens 1024 \
--message '{role: user, content: "Hello, Claude"}'公式のクイックスタートに載っている出力は、次のとおりです。
{
"model": "claude-opus-5-5",
"id": "msg_01YMmR5XodC5nTqMxLZMKaq6",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! How are you doing today? Is there something I can help you with?"
}
],
"stop_reason": "end_turn",
"usage": { "input_tokens": 27, "output_tokens": 20 /*, ... */ }
}返ってくるのはAPIのレスポンスオブジェクトそのもので、標準出力が端末のときは整形されて表示されます。createのようにリソースを作る・変更するコマンドは、既定の出力形式がautoです。autoはJSONを整形して出す形式です。コマンドごとの出力形式の使い分けはant CLIの使い方で詳しく扱っています。
usageにはinput_tokensとoutput_tokensが入ります。上の例では、ほかのフィールドが/*, ... */で省略されています。料金はトークン数に連動するので、動作確認の段階から見ておくと、本番に入れたあとの消費量を想像しやすくなります。
一覧系コマンドは端末で対話画面が開く
つまずきやすいのが、ant models listのような一覧・取得系のコマンドの動きです。リクエストボディを組む必要はなく、次の1行で呼べます。
ant models list一覧(list)や取得(retrieve)のコマンドは、端末に出力するとき既定で対話型のエクスプローラーが開きます。折りたたみと検索のできるTUIで、矢印キーでノードを開閉し、/で検索、qで終了します。パイプでつないだときは、整形されたJSONになります。
画面を開かずに値を取りたいときは、--formatで上書きします。
ant models retrieve --model-id claude-opus-5-5 --format yaml--transformと--raw-outputを組み合わせると、一覧から特定のフィールドだけを1行ずつ取り出せます。
ant beta:agents list --transform id --raw-output | head -1一覧系の出力は、1件ずつ別々に書き出されます。jsonlなら1行に1オブジェクトで、headやgrepにそのまま流せます。ページ送りは自動なので、続きのページを手で取りに行く必要がありません。
症状から探す — 認証とインストールのつまずき
導入で詰まる原因は、大きく3つの系統に分かれます。環境変数が上書きしている場合、PATHの通し忘れ、複数ワークスペースの使い分けです。症状ごとに、最初に見る場所を決めておきます。
症状別の最初の確認先
別の組織・ワークスペースにつながる
ANTHROPIC_API_KEYとANTHROPIC_AUTH_TOKENが残っていないか確認します。どちらもログインより優先されるので、気づかないうちに別の組織やワークスペースへ送ってしまう原因になります。ant: command not found
go installで入れたなら、$(go env GOPATH)/binがPATHに入っているかを見ます。複数のワークスペースを使い分けたい
ワークスペースごとにプロファイルを作ります。
ant auth login --profile <名前>で作り、ant profile activateで切り替えます。
公式のドキュメントには、認証情報を選ぶ優先順位の表があります。上から順に評価され、最初に見つかったものが採用されます。
| 順位 | 認証情報の取得元 |
|---|---|
| 1 | 認証情報の取得元コンストラクター引数(SDKでの指定) |
| 2 | 認証情報の取得元ANTHROPIC_API_KEY または ANTHROPIC_AUTH_TOKEN |
| 3 | 認証情報の取得元ANTHROPIC_PROFILE |
| 4 | 認証情報の取得元フェデレーション用の環境変数 |
| 5 | 認証情報の取得元有効なプロファイル(active_config、なければdefault) |
この表はSDKの解決順序として書かれたものです。antコマンドについても、環境変数がログインより優先される点は、スクリプト化のページに明記されています。SDK側の説明には、空文字を設定しただけでもAPIキーの経路が選ばれるという注意書きもあります。使わない変数は空にせず、unsetで消します。
プロファイルを使い分けるなら、環境変数が残っていないことが前提です。プロファイルは、APIキーが設定されていないときだけ参照されるためです。
ant auth login --profile other-ws
ant profile activate other-ws
ant --profile other-ws models listant profile activateは、以降のコマンドの既定を切り替えます。1回だけ別のプロファイルで実行したいときは、--profileか環境変数ANTHROPIC_PROFILEを使います。
ログインではなくAPIキーで使う場合は、ANTHROPIC_API_KEYに値を入れます。1回だけキーを変えたいときは--api-key、接続先のホストを変えたいときはANTHROPIC_BASE_URLか--base-urlです。複数のワークスペースにまたがるキーでは、どのワークスペースで実行するかをANTHROPIC_WORKSPACE_IDまたは--workspace-idで指定する必要があります。値はwrkspc_で始まるIDです。
組織の管理系のリソースを操作する場合は、既定のログインでは足りません。ant auth login --profile admin --scope "org:admin"のように、専用のプロファイルで管理者スコープを要求します。このスコープを得られるのは、組織の管理者・オーナー・プライマリオーナーだけです。発行されるトークンは組織全体に及ぶので、日常用のプロファイルとは分けておきます。
インストール手段ごとの落とし穴は、次のとおりです。
- Homebrewの手順は、公式がmacOS向けとして載せています。LinuxやWSLではcurlでのバイナリ取得に進みます
go installは、Go 1.25以降が前提です。入れ終えたらant --versionでPATHが通っているか確認します- curlでの取得は、
uname -mがx86_64かaarch64を返す環境を前提にしたスクリプトです。それ以外のアーキテクチャでは、ファイル名を手で組み立てる必要が出ます - 更新の手順は、導入手段ごとに別です。公式のクイックスタートに書かれているのは導入手順だけなので、curl取得なら
VERSIONを上げて取り直し、go installなら同じコマンドを再実行します
curlで書いた既存のスクリプトを移すとき
すでにcurlで書いたスクリプトがあるなら、ant CLIのログイン情報をそのまま流用する手もあります。ant auth print-credentials --access-tokenは、有効なプロファイルのアクセストークンを出力します。期限切れや期限間近なら、更新したうえで出力されます。
curl https://api.anthropic.com/v1/messages \
-H "Authorization: Bearer $(ant auth print-credentials --access-token)" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "claude-opus-5-5", "max_tokens": 256, "messages": [{"role": "user", "content": "hi"}]}'OAuthのアクセストークンは、AuthorizationヘッダーにBearerとして入れます。x-api-keyヘッダーは、静的なAPIキーを渡すときだけ使います。OAuthトークンをx-api-keyに入れても、OAuthトークンとしては扱われません。
リクエストがうまく動かないときは、--debugを付けます。実際のHTTPリクエストとレスポンスが標準エラー出力に出て、APIキーは伏せ字になります。
ant --debug beta:agents listエラーのレスポンスだけを絞って見たいときは、--transform-errorと--format-errorが使えます。通常の--transformと同じ書き方を、エラー側に適用するフラグです。繰り返し実行するスクリプトの組み方は、ant CLIのスクリプト化と自動化で扱っています。
シェル補完でコマンド入力を速くする
ant CLIは、bash・zsh・fish・PowerShellの補完スクリプトを内蔵しています。使っているシェルに合わせて、1回だけ設定します。
ant @completion zsh > "${fpath[1]}/_ant"
# シェルを再起動するか: autoload -U compinit && compinitbashなら、次の形です。
ant @completion bash > /etc/bash_completion.d/antfishは~/.config/fish/completions/ant.fishに出力します。PowerShellはant @completion powershell | Out-String | Invoke-Expressionで現在のセッションに読み込み、永続化したいときは$PROFILEに追記します。
補完スクリプトは、サブコマンドとフラグを補完します。
Claude Codeはインストールしたant CLIをそのまま使う
ant CLIを導入して認証しておくと、Claude Codeはこれを標準で使えます。公式のスクリプト化のページには、専用の統合コードは不要と書かれています。Claude Codeがantにシェルアウトし、構造化された出力を読み取る形です。
公式が挙げている指示の例は、次の3つです。
- 直近のエージェントセッションを一覧して、エラーになったものを要約して
./reports配下のPDFをすべてFiles APIにアップロードして、できたIDを出力して- セッションのイベントを取得して、エージェントがどこで止まったかを教えて
こうした自然文の指示で、API側のリソース操作をClaude Codeのセッションに任せられます。ant CLIとClaude Codeそのものの違いは、ant CLIとClaude Codeの違いで別に扱っています。
まとめ
macOSの手元で試すだけならHomebrewかgo install、CIやイメージのビルドのように再現性が要る場面ではVERSIONを固定したcurl取得が合います。curlで書いた既存スクリプトは、ant auth print-credentialsの値をBearerヘッダーで渡すように差し替えれば、大きく作り直さずに移せます。API全体の仕様はAnthropic API完全ガイドで確認できます。