ant CLIのインストール方法 — Claude APIに最初のリクエストを送るまで
ant CLIをHomebrew・curl・Go installでインストールし、認証してClaude APIに最初のリクエストを送るまでの手順をまとめます。
ant CLIとは何か — curlとの違い
ant CLIは、Claude APIの全リソースをターミナルから直接呼び出すためのコマンドラインツールです。Anthropicが公式に配布しており、Homebrew・curlでのバイナリ取得・Goのソースインストールという3通りの手段で導入できます。
ant CLIとは、Claude APIの各エンドポイントをサブコマンドとして公開し、リクエストの組み立てからレスポンスの整形・絞り込みまでを1本のバイナリで完結させるツールです。curlでAPIを叩くときとの違いは明確です。curlは生のJSONを自分で書き、レスポンスの整形には別途jqを挟むのが定石でした。ant CLIは型付きフラグやパイプ渡しのYAMLからリクエストボディを組み立て、ファイルの中身は@pathという参照だけでフィールドに埋め込めます。レスポンス側も--transformという組み込みのクエリでフィールドを抽出できるため、jqを別途用意する必要がありません。一覧系のエンドポイントはページネーションも自動で処理します。
手で書くJSONの量が、ant CLIでは大きく減ります。同じメッセージ送信を並べると差が分かりやすくなります。curlではdata引数にJSON全体を自分で組み立て、Authorizationやanthropic-versionのヘッダーも毎回自分で並べます。
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", "max_tokens": 1024, "messages": [{"role": "user", "content": "Hello, Claude"}]}'ant CLIでは、認証ヘッダーとanthropic-versionはログイン済みのプロファイルから自動で補われ、--messageフラグにはクォート省略可の緩い記法を渡せます。
ant messages create \
--model claude-opus-5 --max-tokens 1024 \
--message '{role: user, content: "Hello, Claude"}'ヘッダーの並べ直しやJSONのクォート漏れといった、curlでの単純ミスの温床がそのまま無くなる格好です。
対応するリソースはMessages APIだけではありません。モデル一覧のmodels、ファイルアップロードのfiles、マネージドエージェントを扱うbeta:agentsとそのセッションを扱うbeta:sessionsなど、Claude APIの主要なエンドポイントはひと通りサブコマンド化されています。どのリソースを触るときも、コマンドの組み立て方自体は共通の構造に載っているため、覚え直しの手間はほとんどありません。
インストール方法を選ぶ
環境に応じて3つのインストール手段があります。どれか1つを選べば十分で、複数を併用する必要はありません。
| 環境 | 手段 | 前提 |
|---|---|---|
| macOS | 手段Homebrew | 前提anthropics/tapを追加済み、またはbrew installが自動で追加 |
| Linux / WSL | 手段curlでバイナリ取得 | 前提tarと書き込み権限のある/usr/local/bin |
| クロスプラットフォーム(Windows含む) | 手段go install | 前提Go 1.25以降 |
macOSではHomebrewが最短です。
brew install anthropics/tap/antLinux環境やWSL上では、GitHub Releasesからバイナリを直接取得します。OSとアーキテクチャの判定を自動化するとスクリプト化しやすくなります。
VERSION=1.29.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イメージのビルドで使う場合は、latestのような可変参照ではなくこのVERSIONをイメージのビルド引数に固定しておくと、ある日突然ビルドが壊れるといった事故を防げます。バージョンを上げるときは変更履歴を見てから、意図したタイミングだけ差し替えます。ネイティブWindowsやその他の環境では、ソースからのインストールに対応しています。Go 1.25以降が入っていれば、次の1行で済みます。
go install github.com/anthropics/anthropic-cli/cmd/ant@latestバイナリは$(go env GOPATH)/binに置かれます。この場所がPATHに含まれていないと、インストール直後にantコマンドが見つからないというつまずきが起きるので、必要なら追加しておきます。
export PATH="$PATH:$(go env GOPATH)/bin"ant --versionバージョン番号が表示されればインストールは完了です。
認証して最初のリクエストを送る
インストールが終わったら、ant auth loginでブラウザ経由のOAuthログインを行います。APIキーを作って管理する手間がありません。
ant auth loginログイン方法にはAPIキー環境変数・ヘッドレス環境向けの手順・複数ワークスペースの切り替え・Workload Identity Federationなど複数の選択肢があります。組織で運用する場合の細部はant CLIの認証設定にまとめています。ここでは最短経路のant auth loginだけで先に進みます。
認証が済めば、Messages APIへのリクエストはこの形です。
ant messages create \
--model claude-opus-5 \
--max-tokens 1024 \
--message '{role: user, content: "Hello, Claude"}'{
"model": "claude-opus-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 }
}標準出力が端末に接続されているときは、レスポンスのJSON全体が整形されて表示されます。パイプで別コマンドにつなぐと出力形式が変わる挙動は、ant CLIの使い方で扱うコマンド構造・GJSON変換の話です。
レスポンスのusageフィールドにはinput_tokensとoutput_tokensが含まれます。課金はこのトークン数を基準にするため、動作確認の段階からここに目を通しておくと、本番投入後に想定外の消費量に気づくといった事態を避けやすくなります。
利用できるモデルの一覧を見るだけなら、リクエストボディを組み立てる必要すらありません。
ant models list認証が正しく通っていれば、契約しているモデルの一覧がそのまま返ります。エラーになる場合は、ワークスペースの権限かAPIキーの設定を先に疑います。
シェル補完でコマンド入力を速くする
ant CLIはbash・zsh・fish・PowerShellの補完スクリプトを内蔵しています。使っているシェルに合わせて1回だけ設定します。
ant @completion zsh > "${fpath[1]}/_ant"
# シェルを再起動するか: autoload -U compinit && compinitbashなら次の形です。
ant @completion bash > /etc/bash_completion.d/ant補完スクリプトを設定すると、サブコマンドやフラグをTabキーで補完しながら打てるようになります。サブコマンドの数が多いツールほど恩恵が大きいところです。beta:sessions:eventsのようにコロンでネストしたリソース名は正確に覚えていなくても、途中まで打ってTabを押せば候補が絞り込まれます。毎回スペルを打ち切る必要がなくなる分だけ、日常的な操作の摩擦が減ります。
つまずきやすいポイント
インストール周りでは、次の4点でつまずきやすい傾向があります。
- Homebrewの
anthropics/tap/antはmacOS専用で、Linuxでは同じコマンドが失敗する。Linux・WSLはcurlでのバイナリ取得を使う go install後にPATHを通し忘れる。$(go env GOPATH)/binが通っているかをant --versionで確認する前に見落としがち- curlバイナリ取得のアーキテクチャ判定は
uname -mが返すx86_64/aarch64をそのまま使うため、判定に失敗する環境では手動でファイル名を組み立てる必要がある - インストール手段ごとにアップデート方法が違う。Homebrewなら
brew upgrade anthropics/tap/ant、curlバイナリならVERSIONを上げて取得し直し、go installならコマンドを再実行するだけで最新版に更新できる
いずれもインストール手段を間違えたか、環境変数を消し忘れたかのどちらかに集約されます。
Claude Codeはインストールしたant CLIをそのまま使う
ant CLIをインストールして認証しておくと、Claude Codeはそれを自動で呼び出せます。専用の統合コードを書く必要はなく、Claude Codeがantにシェルアウトして構造化出力を解釈する形です。
「直近のエージェントセッションを一覧して、エラーになったものを要約して」「./reports配下の全PDFをFiles APIにアップロードして、できたIDを出力して」といった自然文の指示だけで、Claude CodeはAPIリソースの操作をantコマンドに変換して実行します。API操作をChat上の指示に変えたいチームにとっては、ant CLIの導入自体がClaude Codeの操作範囲を広げることになります。
これは専用のMCPサーバーやプラグインを別途組む話ではありません。ローカルにインストールして認証を済ませたantバイナリを、Claude Codeが既存のシェルアウト経路でそのまま利用するだけです。Claude API側のリソース管理を、Claude Codeのセッションから切り離さずに済むところに実務上の意味があります。
まとめ
ant CLIはHomebrew・curlバイナリ・go installのいずれかで導入でき、ant auth loginからant messages createまでが最短経路です。組織で複数ワークスペースを使い分ける認証設定、出力の整形やリクエストボディの渡し方を掘り下げる使い方ガイドは、それぞれ本文中で紹介した記事に続けて進めます。ソースコードとリリース履歴はanthropics/anthropic-cliのGitHubリポジトリで公開されており、不具合報告やIssueの確認、過去バージョンのタグ確認もここから行えます。Claude API全体の仕様を確認したい場合はAnthropic API完全ガイドも参考にできます。