ant CLIとClaude Codeの違い — claudeコマンドとは何か
ant CLIとClaude Codeのclaudeコマンドは名前が紛らわしいですが役割は別です。実際の--helpの出力と、認証が半分だけ共有される仕組みまで、境界を具体的に示します。
ant CLIとClaude Codeは何が違うのか
antは、Claude APIをターミナルから1リクエストずつ叩くためのコマンドラインツールです。Claude Codeのclaudeは、コードの読み書きやコマンド実行をエージェントに任せるためのツールです。親子関係も新旧関係もなく、並行して存在する別のツールです。
ターミナルからAPIを1回ずつ呼ぶならant、作業ごと任せるならclaudeです。
| 比べる点 | ant(ant CLI) | claude(Claude Code) |
|---|---|---|
| 主な用途 | ant(ant CLI)シェルスクリプトやCIでのAPI呼び出し | claude(Claude Code)コードの調査と修正 |
| インストール | ant(ant CLI)brew install anthropics/tap/ant | claude(Claude Code)curl -fsSL https://claude.ai/install.sh | bash(Homebrewなら brew install --cask claude-code) |
ant claudeと続けて打っても、claudeがantのサブコマンドとして動くわけではありません。2つは別々のコマンドです。
2つのコマンドの持ち場
ant CLI
ant messages create --model … --message …のように、リソースと操作を指定して1回ずつ送ります。会話履歴の保持も、ツール結果を次のリクエストに戻す処理も、呼び出す側のスクリプトが担当します。
claude(Claude Code)
自然文で依頼を渡すと、ファイルの読み込み・編集・コマンド実行を複数ターンにわたって自分で回します。エージェントループとツール実行の仕組みはClaude Code側が持っています。
両者が混同されるのは、どちらも「AnthropicのCLI」と呼べるうえ、コマンド名がantとclaudeで短く、検索結果にも並んで出てくるからです。antのソースはgithub.com/anthropics/anthropic-cliにあります。一方のClaude Codeはgithub.com/anthropics/claude-codeで、リポジトリも別です。
claudeコマンドは実際どう見えるか
claude --helpの冒頭は、このコマンドがAPIクライアントではないことをそのまま示しています。以下はv2.1.289でclaude --helpを実行したときの出力の抜粋です。
$ claude --help
Usage: claude [options] [command] [prompt]
Claude Code - starts an interactive session by default, use -p/--print for
non-interactive output
Arguments:
prompt Your prompt使い方の先頭は[prompt]、つまり自然文の依頼です。何も付けずに起動すれば対話セッションが始まり、-pを付けると結果を出力して終了します。antのように<リソース> <操作>を並べる形ではありません。
同じ出力のCommands:欄(折り返しを整えて抜粋)は、claudeが作業環境そのものを管理するコマンドであることも示します。
Commands:
agents [options] Manage background agents
auth Manage authentication
doctor Check the health of your Claude Code installation. …
install [options] [target] Install Claude Code native build. …
mcp Configure and manage MCP servers
plugin|plugins Manage Claude Code plugins
setup-token Set up a long-lived authentication token
(requires Claude subscription)並んでいるのは、バックグラウンドセッション・MCPサーバー・プラグイン・インストールの管理です。APIのリソース(モデル一覧やメッセージ、ファイル)を操作するサブコマンドは、claudeにはありません。それを担うのはantの側で、コマンド体系はant <resource>[:<subresource>] <action> [flags]です。ant models list、ant messages create、ant beta:agents retrieveといった形になります。
同じ「要約して」でも、手元に残る仕事が違う
ant CLIでClaude APIにメッセージを送るときは、モデル名・最大トークン数・メッセージ内容を引数で明示します。
ant messages create \
--model claude-opus-5-5 --max-tokens 1024 \
--message '{role: user, content: "このコミットの要約を書いて"}' \
--transform 'content.0.text' --raw-output--transformはレスポンスのJSONから本文だけを取り出す組み込みの絞り込みで、jqのような別ツールは要りません。それでも得られるのは、モデルが生成したテキスト1件です。コミットの差分を読む処理も、要約をファイルへ書く処理も、スクリプト側で用意する必要があります。
Claude Codeでは、同じ意図を自然文で渡します。
このコミットの差分を読んで要約をCHANGELOG.mdに追記して差分の取得・要約・ファイルへの書き込みを、ツール呼び出しの往復を挟みながらClaude Codeが進めます。ant CLIで同じことをするなら、git diffの出力を渡す処理とファイルへの書き込みを、利用者がシェルで書くことになります。
認証は半分だけ共有される
「別々のツールだから、ログインも完全に別」と考えると外れます。2つのツールの認証は、重なる部分と重ならない部分があります。重なりを知らないと、思わぬ組織や課金先にリクエストが飛びます。
重なるのは次の2点です。
ANTHROPIC_API_KEY環境変数は、どちらのツールも読みます。antではログインよりこの変数が優先され、意図しない組織やワークスペースに向かうことがあります。Claude Codeでも、-pの非対話モードでは変数があれば必ずこのキーを使います- Claude Codeで「Anthropic Console」アカウントを選び、キーなしでサインインすると、認証情報は
antと同じ仕組みのAnthropicプロファイルとして保存されます。書き込み先はANTHROPIC_PROFILEで指定したプロファイル、なければアクティブなプロファイル、それも無ければdefaultです(v2.1.242以降)
このキーなしサインインには副作用もあります。claude.aiのログインがマシンに残っていると、そちらがサインアウトされます。サブスクリプションで使っている環境で試すと、ログインが切り替わります。
Claude Codeがどの認証を選ぶかは、優先順位で決まります。antが書いたプロファイルが絡む部分だけを抜き出すと、次の流れです。
Claude Codeが認証を選ぶ順(ant関連の部分)
- 1
ANTHROPIC_API_KEYがあればそれを使う
環境変数の
ANTHROPIC_API_KEYが設定されていれば、キーが使われます。対話モードでは初回に承認を求められ、選択は記憶されます。 - 2
ANTHROPIC_PROFILEで名指しされた、antのプロファイル
ant auth loginで作ったプロファイルを、ANTHROPIC_PROFILEで名指ししたときだけ、この位置で使われます。 - 3
Claude Codeの/login(サブスクリプション)
名指ししていない場合、
antが書いたプロファイルは/loginのサブスクリプション認証より下位です。Pro・Max・Team・Enterpriseの標準はここです。
この図は優先順位の一部です。全体の順は、クラウドプロバイダーの認証情報、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_API_KEY、apiKeyHelper、CLAUDE_CODE_OAUTH_TOKEN、名指ししたプロファイル、/loginです。いま選ばれている認証情報は、Claude Codeなら/status、ant CLIならant auth statusで見られます。ant auth statusは、環境変数がログインを上書きしているときに警告も出します。
ant側のログインは、Claude ConsoleへのOAuthです。ワークスペースに紐づいたトークンが発行されるので、複数のワークスペースを使い分けるなら、プロファイルごとにログインしてant profile activateで切り替えます。手順はant CLIの認証設定にあります。両方のツールを使うときは、ANTHROPIC_API_KEYを環境に残していないか先に見ておくと、どちらがどの認証で動いたのかを追いやすくなります。
ant CLIとClaude Codeは組み合わせて使える
「別のツール」であることは、「一緒に使えない」ことを意味しません。ant CLIのドキュメントには、Claude Codeからantを使う節があります。antをインストールして認証済みなら、Claude Codeは追加の連携コードなしでantをシェルから呼び、構造化された出力を読んで判断できます。
Claude Codeに任せられるant CLIの作業(ドキュメントの例)
エージェントセッションの確認
「最近のエージェントセッションを一覧して、エラーになったものを要約して」と頼む使い方です。
Files APIへの一括アップロード
「
./reportsのPDFをすべてFiles APIにアップロードして、IDを出力して」と頼む使い方です。セッションイベントの追跡
特定のセッションのイベントを取得させ、エージェントがどこで詰まったかを聞く使い方です。
この組み合わせは、「APIを呼ぶ層」と「エージェント層」が互いに無関係な2本のトラックだ、という単純な理解を修正します。antはMessages APIだけのツールではありません。コマンド体系では、agents・sessions・deployments・environmentsといったベータのリソースがbeta:の接頭辞の下にあり、Claude Managed Agentsのリソースもantから操作できます。たとえばant beta:agents retrieveやant beta:sessions:events listです。エージェントを動かす基盤はAnthropic側にあっても、その操作はAPIを自分で呼ぶ層の道具で行えます。
APIを直接呼ぶ手段はant CLIだけではない
APIを自分で呼ぶ層には、ant CLI以外の選択肢もあります。Python・TypeScript・C#・Go・Java・PHP・Rubyの7言語向けにクライアントSDKが提供されていて、型の安全性、ストリーミング、リトライ、エラー処理が組み込まれています。
別のフレームワークの流儀でClaudeを呼ぶためのライブラリもあります。AppleのFoundation Models(LanguageModelSession)向けのSwiftパッケージと、OpenAI SDKの呼び出し形式のままClaudeを使えるようにする互換レイヤーです。これらはMessages APIの汎用クライアントではない、と位置づけられています。
ant CLIは、シェルスクリプトや対話的なターミナル操作から直接叩きたい場面に向きます。アプリに組み込むならクライアントSDK、OpenAI SDK前提の既存コードを最小限の書き換えで移すなら互換レイヤー、という分かれ方です。
場面別の使い分け
| 場面 | 向いているツール | 理由 |
|---|---|---|
| CI/CDでの単発のAPI呼び出し(要約・分類・抽出) | 向いているツールant CLI | 理由1リクエスト1レスポンスで完結し、シェルのパイプラインに載せやすい |
| コードベースの調査・修正・複数ファイルにまたがる変更 | 向いているツールClaude Code | 理由エージェントループが複数ターンの試行錯誤を担う |
| 自作アプリからClaudeを呼ぶ | 向いているツールクライアントSDK | 理由言語ごとの型付きインターフェースでMessages APIを呼べる |
| 自分のプロセスの中でエージェントを動かす | 向いているツールAgent SDK | 理由エージェントループを、自分が運用するプロセスの中で動かせる |
| Anthropicの管理基盤でエージェントを動かす | 向いているツールClaude Managed Agents | 理由実行基盤をAnthropic側に持たせられる |
Agent SDKとClaude Managed Agentsの違いは、エージェントをどこで動かすかです。どちらも、ant CLIを包んだ上位版という関係ではありません。
名前で見分けがつかないときの確認方法
最も確実なのは、ドキュメントのドメインです。ant CLIとクライアントSDKの情報はplatform.claude.com、Claude CodeとAgent SDKの情報はcode.claude.comにあります。検索結果でどちらのドメインが出ているかで、APIを呼ぶ層の話か、エージェント層の話かが分かります。
コマンドの形でも見分けられます。antはant <リソース> <操作> --フラグの構造で、claudeは先ほどの出力のとおり[prompt]を受け取ります。非対話で1回だけ実行するときも、claude -p "query"のように渡すのは構造化された引数ではなく自然文です。ソースの置き場はanthropics/anthropic-cliとanthropics/claude-codeで別々です。
まとめ
APIのリクエストを1本ずつ自分で組み立てるならant、複数ターンの作業を任せるならclaudeです。両方使うときは、ANTHROPIC_API_KEYとAnthropicプロファイルが共有される点だけ押さえておけば、認証の混乱は避けられます。ant CLIの導入と個別のコマンドは、ant CLIのインストール方法とant CLIの使い方で扱っています。