Claude Media
ant CLIとClaude Codeの違い — claudeコマンドとは何か

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/antclaude(Claude Code)curl -fsSL https://claude.ai/install.sh | bash(Homebrewなら brew install --cask claude-code)

ant claudeと続けて打っても、claudeがantのサブコマンドとして動くわけではありません。2つは別々のコマンドです。

くらべる

2つのコマンドの持ち場

APIを自分で呼ぶ

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. 1

    ANTHROPIC_API_KEYがあればそれを使う

    環境変数のANTHROPIC_API_KEYが設定されていれば、キーが使われます。対話モードでは初回に承認を求められ、選択は記憶されます。

  2. 2

    ANTHROPIC_PROFILEで名指しされた、antのプロファイル

    ant auth loginで作ったプロファイルを、ANTHROPIC_PROFILEで名指ししたときだけ、この位置で使われます。

  3. 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の使い方で扱っています。

この記事を共有:XはてブLinkedIn