mcpField
Q
qianwen-usage

qianwen-usage

github.com/qianwen-aiクラウド・DevOps1155.5k 回インストール3 週間前に更新
リポジトリ

qianwen-usage について

qianwen-usageは、QianWen CLIで認証、利用量、クォータ、請求、サブスクリプションを確認するエージェントスキルです。集計だけでなく、リクエスト単位の診断にも対応します。

主な機能

  1. 01認証状態の確認とログイン
  2. 02利用量、クォータ、モデルコストの確認
  3. 03リクエストログと失敗の調査
  4. 04請求とサブスクリプションの確認

活用シーン

  1. 01無料枠の残量確認
  2. 02期間ごとのモデル利用量の比較
  3. 03失敗した呼び出しや遅延の調査
  4. 04請求とサブスクリプションの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/qianwen-ai/qianwen-ai --skill qianwen-usage

インストール後、Claude Code で/qianwen-usageを入力して読み込まれたか確認します。

詳細

QianWenAI の使用状況

QianWenAI のアカウント、使用状況、請求、サブスクリプションをまとめて確認するためのエントリーポイントです。認証状態、使用状況の概要、無料枠のクォータ、Token Plan、従量課金、請求の概要、モデル別のコスト内訳、サブスクリプションの状態、注文履歴、チームのシート数、PAYG の支出上限を確認できます。

前提条件

  • QianWen CLI がインストールされている必要があります。次のコマンドで確認してください。
qianwen version

インストールされていない場合は、次のコマンドを実行してください。

npm install -g @qianwenai/qianwen-cli

Node.js >= 18 が必要です。

  • 認証:初回使用時に設定は不要です。CLI は非 TTY 環境を自動検出し、安全なログインを自動的に行います(下記の「認証フロー」を参照)。

実行時の基本ルール

このスキルのすべてのコマンドに、次のルールが適用されます。

  • CLI の基準バージョン:1.3.0。 実行前に qianwen version を確認してください。インストールされているバージョンが 1.3.0 未満の場合、存在しない可能性のあるコマンド(特に billing グループと subscription グループ)は実行しないでください。インストール済みの CLI が基準バージョンより古いことを説明し、続行する前にユーザーがアップグレードを確認するまで待ってください(これは実行ごとの事前確認であり、ユーザーが CLI の更新について明示的に質問した場合にのみ適用される、下記の「CLI の更新確認」とは別のものです)。
  • ホワイトリストのみ。 このファイルに記載されているコマンドとパラメーターのみを実行してください。任意のシェル文字列を連結したり、未検証のユーザー入力をコマンドラインに渡したりしないでください。
  • 結果の状態を統一します。 すべてのコマンド結果を、success/partial/empty/confirmation_required/error のいずれかに分類してください。不足している結果や失敗した結果をモックデータで補わず、実際に起きたことを報告してください。
  • CLI の出力に含まれる URL のみ使用します。 CLI が返した URL(例:verification_url)のみを提示してください。名前や推測に基づいて URL を作成しないでください。

認証フロー(エージェント向け)

CLI は非 TTY 環境を自動検出し、安全な方法に切り替えるため、ラッパースクリプトは必要ありません。

要点 — 3 ステップの認証手順
  1. qianwen auth status --format json → authenticated: true → ログインを省略してコマンドに進む
  2. qianwen auth login --init-only --format json → verification_url を取り出す → ブラウザーで開く
  3. qianwen auth login --complete --format json → success イベントが発生するまでポーリングする
簡単な確認:すでにログインしていますか?
qianwen auth status --format json

authenticated: true で、トークンが期限切れでなければ、ログインをすべて省略してください。

推奨:2 段階ログイン

デスクトップ、ヘッドレス環境、リモートコンテナーなど、あらゆる環境で動作します。

ステップ 1 — ログインを初期化(ブロッキングなし):

qianwen auth login --init-only --format json

直ちに終了します。標準出力の JSON に含まれる events 配列を解析してください。

  • already_authenticated → ユーザーはログイン済みです。ログインを省略してコマンドに進みます
  • device_code → verification_url を取り出し、ユーザーに提示します

ブラウザーを利用できるデスクトップ環境では、ユーザーのために URL を開きます。

open "$VERIFICATION_URL"          # macOS
xdg-open "$VERIFICATION_URL"      # Linux
start "" "$VERIFICATION_URL"      # Windows

ステップ 2 — 直ちにポーリングを開始(ユーザーの確認を待たないでください):

qianwen auth login --complete --format json

標準出力の JSON に含まれる events 配列を解析してください。

  • success → ログイン完了。コマンドに進みます
  • expired → デバイスコードの有効期限が切れています。ステップ 1 に戻ります
  • error → 失敗を報告します
TTY 環境(対話型ターミナル)

エージェントが TTY(ユーザーのターミナルなど)で実行されている場合は、次を実行するだけです。

qianwen auth login

CLI が自動的にブラウザーを開き、認証が完了するまでポーリングします。

JSON イベントの構造

--init-only と --complete はどちらも、単一の JSON ドキュメントを出力します。

{
  "events": [
    {"event": "device_code", "verification_url": "...", "expires_in": 300},
    {"event": "success", "authenticated": true, "user": {"aliyunId": "..."}}
  ]
}

イベントの種類:already_authenticated、device_code、success、expired、error、pending。

絶対にしないでください:
  • ❌ --complete を実行する前に「認証は完了しましたか?」とユーザーに尋ねる
  • ❌ ポーリングを始める前にユーザーの確認を待つ — URL を提示したら、直ちに --complete を実行する
  • ❌ 完了させずに --init-only を再実行する(新しいデバイスコードが作成され、前のコードが無効になります)

使用方法

すべてのコマンドは、構造化された機械解析可能な出力(推奨されるデフォルト)の --format json と、整形されたプレーンテキスト出力の --format text をサポートしています。

エージェントで使用する場合は、常に --format json を優先し、JSON レスポンスを解析してください。ユーザーが人間向けのプレーンテキストを明示的に求めた場合に限り、--format text に切り替えてください。

table 形式は ANSI コードと Unicode の罫線を含むため、プログラムで解析しないでください。

認証コマンド

qianwen auth status — 現在の認証状態を確認します

qianwen auth status --format json

qianwen auth logout — セッションをサーバー側で無効化し、ローカルの認証情報を消去します

⚠️ 確認が必要です:ログアウトすると現在のセッションに影響するため、破壊的な操作となります。必ず最初にユーザーに確認してください(confirmation_required 状態)。明示的な確認を得てからコマンドを実行してください。

qianwen auth logout
使用状況コマンド

qianwen usage summary — 使用状況の概要を表示します(無料枠、Token Plan、従量課金)

qianwen usage summary                      # Current month
qianwen usage summary --period last-month  # Last month
qianwen usage summary --from 2026-03-01 --to 2026-03-31
qianwen usage summary --format json        # JSON output

期間プリセット:today、yesterday、week、month(デフォルト)、last-month、quarter、year、YYYY-MM

qianwen usage breakdown — モデル別の使用状況の内訳を表示します

qianwen usage breakdown --model qwen3.6-plus --days 7
qianwen usage breakdown --model qwen3.5-plus --period 2026-03
qianwen usage breakdown --model qwen-plus --period 2026-03 --granularity month
qianwen usage breakdown --model qwen3.6-plus --format json

注:内訳に表示されるのは従量課金の消費量のみです。無料枠の使用量は含まれません。現在のクォータ状況を確認するには、usage free-tier を使用してください。

qianwen usage free-tier — 無料枠のクォータ詳細を表示します

qianwen usage free-tier
qianwen usage free-tier --format json

qianwen usage payg — モデル別の従量課金の使用状況と料金を表示します

現在の期間における従量課金の消費量を表示します。過去の請求サイクルについては、qianwen billing summary を使用してください(下記の請求コマンドを参照)。

qianwen usage payg
qianwen usage payg --format json
qianwen usage payg --period month --format json   # Recommended: current month PAYG

qianwen usage logs — ページ分割された呼び出しログ(リクエスト単位の履歴)を、時刻、モデル、ステータスで絞り込んで表示します

リクエスト単位の質問(「失敗した呼び出しはどれですか?」「4xx/5xx エラーを表示してください」「それらのリクエストにかかった時間は?」「最近呼び出したモデルはどれですか?」「このリクエスト ID を検索してください」など)には、こちらを使用してください。これは usage summary/breakdown(トークン数/料金の集計)とは異なります。失敗の原因調査、レイテンシ、呼び出し履歴に関する質問には、summary/breakdown ではなくこちらを使用してください。

qianwen usage logs --period 7d --format json
qianwen usage logs --period 24h --status 4xx --status 5xx --format json   # recent client/server errors
qianwen usage logs --model qwen-plus --page 2 --page-size 50 --format json
qianwen usage logs --from 2026-07-25 --to 2026-08-07 --format json         # explicit range (must be ≤ 14 days)
qianwen usage logs --request-id 8c81644f-... --format json                # exact lookup

オプション:

  • --from / --to — 日付範囲(YYYY-MM-DD または RFC3339)
  • --period <preset> — 1h、24h、7d、today、yesterday、week、month、…(usage summary と同じプリセット群)。⚠️ 解決後の範囲は 14 日以下である必要があります。 month(月の中旬以降の場合)、last-month、quarter、year などのプリセットは上限を超え、INVALID_ARGUMENT が返されます。1h、24h、7d、today、yesterday、week など、短いプリセットを使用してください。
  • --model <id> — モデルで絞り込みます。複数回指定できます(複数のモデルを含めるには、--model フラグを複数回渡します)
  • --status <type> — ステータスで絞り込みます:0(キャンセル)、2xx(成功)、4xx(クライアントエラー)、5xx(サーバーエラー)。複数回指定できます
  • --request-id <id> — リクエスト ID を完全一致で指定します。指定すると、ほかのすべてのフィルターは無視されます
  • --page <n>(デフォルト 1)/--page-size <n>(1..100)

⚠️ 14 日間の範囲制限:解決後の時間範囲は14 日以下である必要があります。--from/--to または長い --period によって範囲が 14 日を超えると、INVALID_ARGUMENT(終了コード 4、"Time range cannot be longer than 14 days.")が返されます。より長い履歴を調べるには、--from/--to を使って 14 日以下の範囲をずらしながら、続けて呼び出してください。これは、複数月の範囲を指定できる usage summary/breakdown とは異なります。

ページネーション:結果はページ分割されます。ある期間内の履歴をすべて取得するには、まず --page 1 --page-size 100 から始め、すべての totalCount エントリを取得するまで、page × pageSize < totalCount の間 --page を増やし続けてください。

JSON の構造(CLI のソースに基づく — トップレベルに totalCount / page / pageSize / period / items があり、items[] 内の errorCode は失敗した呼び出しにのみ含まれます。また、usages にはリクエスト単位のトークン/文字の消費量が含まれ、失敗またはキャンセルされた呼び出しでは空になります):

{
  "totalCount": 4,
  "page": 1,
  "pageSize": 20,
  "period": { "from": "2026-07-25", "to": "2026-08-07" },
  "items": [
    { "requestId": "8c81644f-...", "model": "wan3.0-video", "statusCode": 403, "durationMs": 548, "errorCode": "Forbidden.NoPermission", "usages": [] },
    { "requestId": "8e3a2c02-...", "model": "qwen3.8-max", "statusCode": 200, "durationMs": 956, "usages": [ { "type": "tokens", "total": 1820 } ] }
  ]
}

period.from / period.to には、解決後の期間が反映されます。カレンダープリセットと明示的に指定した --from/--to の日付は YYYY-MM-DD 形式で、ローリングプリセット(1h、24h、7d)は RFC3339 タイムスタンプ形式で表示されます。一致する呼び出しがない場合、CLI は totalCount: 0 と空の items: [] を返します。これをエラーではなく empty 状態として扱ってください。

フィールド:requestId(サーバー側のトレースとの照合に使用)、model、statusCode(HTTP 形式のコード — 2xx は成功、4xx はクライアントエラー、5xx はサーバーエラー、0 はキャンセル)、durationMs(呼び出しのレイテンシ)、errorCode(失敗理由。2xx 以外の場合のみ存在)、usages(リクエスト単位の消費量。失敗またはキャンセルされた呼び出しでは空)。失敗の優先度判定には statusCode と errorCode を、レイテンシ分析には durationMs を使用してください。

内訳パラメーター:考え方

独立した3つの軸を自由に組み合わせます:

--model(必須)+ 日付範囲 + 粒度

モデルの範囲:

  • --model <id> — 単一モデル(例:qwen3.5-plus)。内訳の指定に必須です。

日付範囲 — 3つのパターンから、ユーザーが期間をどのように説明したかに応じて選びます:

パターン使用するタイミング動作
--period YYYY-MMユーザーが特定の月を指定した場合(「3月」「去年の4月」など)暦月の開始から終了までを正確に指定
--period <preset>ユーザーが相対的な期間を説明した場合last-month = 前月全体、month = 今月の現時点まで、quarter = 今四半期の現時点まで
--days Nユーザーが「直近N日間」と指定した場合今日からさかのぼる移動期間。月をまたぐ場合も自動的に処理
--from YYYY-MM-DD --to YYYY-MM-DDユーザーが具体的な日付または四半期や期間を指定した場合完全に自由に指定でき、ほかのパターンが当てはまらない場合に使用

粒度 — 範囲ではなく、結果のグループ分けを決定します:

  • day(デフォルト)— 1日につき1行。利用の急増を見つけるのに適しています。
  • month — 暦月ごとに1行。複数月にわたる傾向の把握に適しています。
  • quarter — 四半期ごとに1行。四半期ごとの比較に適しています。

基本的な例:

# Single model, single month, daily detail
qianwen usage breakdown --model qwen3.5-plus --period 2026-03

# Single model, last 3 months, monthly summary
qianwen usage breakdown --model qwen3.5-plus --days 90 --granularity month

# Single model, specific quarter, quarterly rollup
qianwen usage breakdown --model qwen3.5-plus --from 2026-01-01 --to 2026-03-31 --granularity quarter

# Single model, this month, daily breakdown
qianwen usage breakdown --model qwen3.6-plus --period month
請求コマンド

qianwen billing summary — YYYY-MM の期間を両端を含めて集計した請求額の合計

qianwen billing summary --from 2026-05 --to 2026-07 --format json
qianwen billing summary --charge-type payg --format json   # payg | subscription | all (default)

cycles には、--from から --to までの期間に含まれるすべての月が順番に含まれ、抜けはありません。各サイクルには billingCycle、aftertaxAmount、および settled フラグが含まれます。chargeType は内部値で、all、サブスクリプションの場合は prepaid、従量課金(payg)の場合は postpaid です。金額は10進数の文字列です。

JSON 出力に settled がある場合、そのサイクルの請求データが存在するかどうかを示します(true = 存在、false = なし)。true の場合は、実際の金額として aftertaxAmount を報告してください(¥0 を含みます)。

{
  "period": { "from": "2026-05", "to": "2026-08" },
  "chargeType": "all",
  "currency": "CNY",
  "cycles": [
    { "billingCycle": "202605", "aftertaxAmount": null, "settled": false },
    { "billingCycle": "202606", "aftertaxAmount": "3.710000", "settled": true },
    { "billingCycle": "202607", "aftertaxAmount": null, "settled": false },
    { "billingCycle": "202608", "aftertaxAmount": "0.000000", "settled": true }
  ],
  "totals": { "aftertaxAmount": "3.71" }
}

qianwen billing breakdown — モデル(または API キー)別の上位 N 件の消費量

qianwen billing breakdown --period month --group-by model --top 10 --format json
qianwen billing breakdown --group-by api-key --top 10 --format json

オプション:--group-by model|api-key(デフォルトは model)、--top <n>(デフォルトは10、最大100)、--granularity day|month(デフォルトは month)、--charge-type all|subscription|payg、および日付範囲を指定する --period/--from/--to。日単位の粒度では範囲を31日以下、月単位の粒度では12か月以下にする必要があります。

単一期間をクエリした場合の JSON 構造(CLI のソースに基づく、生の ConsumeBreakdown オブジェクト):

{
  "groupBy": "model",
  "period": { "from": "2026-07-01", "to": "2026-07-29" },
  "chargeType": "all",
  "rows": [
    { "groupKey": "qwen3.6-plus", "groupLabel": "qwen3.6-plus", "amount": "5.20" },
    { "groupKey": "qwen-plus", "groupLabel": "qwen-plus", "amount": "1.80" }
  ],
  "totalRows": 12,
  "totalAmount": "9.80",
  "currency": "CNY"
}

複数の期間にまたがる範囲(例:複数月)の場合、JSON は期間ごとに分割され、次の形式になります:{ "groupBy", "dateRange": { "from", "to" }, "granularity", "chargeType", "slices": [ { "period", "rows", "totalAmount" } ], "currency" }。

qianwen billing limit — 従量課金の消費上限とアラートの設定

qianwen billing limit --format json

読み取り専用 — このコマンドは PAYG の利用上限を表示するだけです。CLI では上限を変更できません。変更する場合はコンソールを案内してください。

JSON 構造(CLI のソースに基づく、生の UsageLimit オブジェクト。上限が設定されていない場合、limitAmount は null になることがあります):

{
  "status": "normal",
  "limitAmount": "500.00",
  "currency": "CNY",
  "alertThreshold": "80"
}

status の値:normal/active/exceeded/warning/unknown。

サブスクリプションコマンド

qianwen subscription status — 複数プランのサブスクリプション状況を集約して表示します

qianwen subscription status --format json
qianwen subscription status --plan token --format json

JSON の構造(CLI のソースに基づく:SubscriptionStatus のフィールドに diagnostics を加えたものです。recentOrders[].orderType と .status は、すでに Purchase / Paid などの表示ラベルにマッピングされています。null 許容フィールドは null の場合があり、配列は空の場合があります):

{
  "isGray": false,
  "plan": "Token Plan Team Edition",
  "period": { "start": "2026-07-01", "end": "2026-08-01" },
  "quota": { "remaining": 21000, "total": 25000, "usedPct": 16 },
  "autoRenew": true,
  "renewable": true,
  "remainingDays": 3,
  "seatTiers": [
    { "specType": "standard", "seats": 2, "totalCredits": 50000, "remainingCredits": 42000, "usedPct": 16, "nextCycleFlushTime": "2026-08-01" }
  ],
  "creditPacks": [
    { "instanceId": "cp-xxxxxxxx", "totalCredits": 10000, "remainingCredits": 8000, "expiresAt": "2026-12-31" }
  ],
  "recentOrders": [
    { "orderId": "20260701xxxx", "orderType": "Purchase", "orderTime": "2026-07-01 10:00:00", "amount": "199.00", "status": "Paid" }
  ],
  "diagnostics": []
}

ステータスは複数のサブコールの結果を組み合わせたものです。一部の呼び出しで失敗した場合は diagnostics に表示されます(各エントリは api、errorCode、errorMessage を含みます)。このような結果は partial 状態として扱ってください。data 全体が null の場合、コマンドは終了コード 1 で終了します(error 状態)。

⚠️ nextCycleFlushTime がクォータのリセットを意味するのは、autoRenew が true の場合のみです。 autoRenew が false(自動更新が明示的に OFF)の場合、CLI はすべてのシートティアで nextCycleFlushTime: null を返します。そのため、値が null でない場合は「この日にクレジットが全量にリセットされる」と解釈できます。autoRenew が null(更新状態が不明)の場合、このフィールドに日付が入っている可能性はありますが、リセットが保証されているとは説明しないでください。autoRenew が true でない限り、「クレジットは にリセットされます」とユーザーに伝えないでください。autoRenew が false の場合は、period.end の日付をリセットではなく、有効期限として説明してください。たとえば「サブスクリプションは に期限切れになります。自動更新が OFF のため、更新しない限りプランは失効します」のように伝えます。

qianwen subscription orders — 注文履歴(購入/更新/アップグレード)

qianwen subscription orders --page 1 --page-size 100 --format json
qianwen subscription orders --from 2026-01-01 --to 2026-06-30 --type purchase --format json

オプション:--page <n>(デフォルトは 1)、--page-size <n>(デフォルトは 20、最大 100)、--type purchase|renew|upgrade、--from / --to(YYYY-MM-DD)。

ページネーション:結果はページ単位で返されます。全履歴を取得するには、--page 1 --page-size 100 から始め、すべての pagination.total 件を取得するまで、pagination.page × pagination.pageSize < pagination.total の間 --page を増やし続けてください。

JSON の構造(CLI のソースに基づく:orderType / status は表示ラベルで、amount は通貨記号を含む表示用文字列です):

{
  "orders": [
    { "orderId": "20260701xxxx", "orderType": "Purchase", "orderTime": "2026-07-01 10:00:00", "amount": "¥199.00", "currency": "CNY", "status": "Paid" }
  ],
  "pagination": { "page": 1, "pageSize": 100, "total": 231 },
  "diagnostics": []
}

qianwen subscription tokenplan status — トークンプランのインスタンス詳細(期間、自動更新、シートの概要)

qianwen subscription tokenplan status --format json

JSON の構造(CLI のソースに基づく:対応するサブコールが失敗した場合、period / autoRenew / renewable / seatSummary は null になります。diagnostics を確認してください。クレジット値は小数を含む文字列です):

{
  "product": "Token Plan Team Edition",
  "period": { "start": "2026-07-01", "end": "2026-08-01", "remainingDays": 3 },
  "autoRenew": { "enabled": true, "period": 1, "periodUnit": "M" },
  "renewable": { "canRenew": true, "interceptCode": null },
  "seatSummary": {
    "groups": [
      { "specType": "standard", "seats": 2, "assigned": 1, "totalValue": "50000", "surplusValue": "42000", "unit": "Credits", "nextCycleFlushTime": "2026-08-01" }
    ],
    "total": { "seats": 2, "totalValue": "50000", "surplusValue": "42000", "unit": "Credits" }
  },
  "diagnostics": []
}

4 つのデータフィールドがすべて null の場合、コマンドは終了コード 1 で終了します(error 状態)。

⚠️ seatSummary.groups[].nextCycleFlushTime がクォータのリセットを意味するのは、autoRenew.enabled が true の場合のみです。 autoRenew.enabled が false(自動更新が明示的に OFF)の場合、CLI はすべてのグループで nextCycleFlushTime: null を返します。autoRenew 自体が null(状態が不明)の場合、日付が入っている可能性はありますが、リセットが保証されているとは扱わないでください。autoRenew.enabled が true の場合に限り、「クレジットは にリセットされます」と伝えてください。false の場合は、period.end を、更新しない限りプランが失効する有効期限として提示してください。

qianwen subscription tokenplan seats — シートごとの詳細と残りクレジット(チームのシート)

qianwen subscription tokenplan seats --page 1 --page-size 100 --format json
qianwen subscription tokenplan seats --spec-type standard --format json   # pro | standard

オプション:--page <n>(デフォルトは 1)、--page-size <n>(デフォルトは 20、最大 100)、--spec-type pro|standard。ページネーションのルールは注文履歴と同じです。page.current × page.size < page.total の間、--page を増やし続けてください。

JSON の構造(CLI のソースに基づく:cycle / config は null の場合があります。cycle.surplusValue は、現在のサイクルにおけるそのシートの残りクレジットです):

{
  "page": { "current": 1, "size": 100, "total": 2 },
  "filter": { "specType": null },
  "items": [
    {
      "instanceCode": "tp-xxxxxxxx",
      "specType": "standard",
      "status": "NORMAL",
      "memberId": "12xxxxxxxxxxxx34",
      "assignable": true,
      "assignment": "assigned",
      "payMode": "Subscription",
      "productType": "TokenPlan",
      "cycle": { "startTime": "2026-07-01", "endTime": "2026-08-01", "totalValue": "25000", "surplusValue": "21000", "unit": "Credits" },
      "config": { "planType": "standard", "creditValue": 25000, "seatNum": 1, "quotaCycle": "MONTH" }
    }
  ],
  "diagnostics": []
}

出力とエージェントでの表示ルール

CLI コマンドは、エージェント/パイプ環境ではデフォルトで JSON を返します(auto 形式:TTY → table、pipe → json)。 JSON はエージェント向けの主要な出力形式です — 常に --format json を明示的に指定し、構造化された応答を解析してから、人が読みやすい要約をユーザーに提示してください。

JSON 出力例(--format json)
qianwen usage summary --period month --format json

以下の 3 つのセクションを含む構造化 JSON を返します:

{
  "period": { "from": "2026-04-01", "to": "2026-04-24" },
  "free_tier": [
    { "model_id": "qwen3.6-plus", "quota": { "remaining": 850000, "total": 1000000, "unit": "tokens", "used_pct": 15 } }
  ],
  "token_plan": {
    "subscribed": true,
    "planName": "Token Plan Team Edition",
    "status": "valid",
    "totalCredits": 25000,
    "remainingCredits": 21000,
    "usedPct": 16,
    "resetDate": "2026-05-01",
    "addonRemaining": 8000
  },
  "pay_as_you_go": {
    "models": [
      { "model_id": "qwen3.6-plus", "usage": { "tokens_total": 480000 }, "cost": 0.38, "currency": "CNY" },
      { "model_id": "qwen-plus", "usage": { "tokens_total": 460000 }, "cost": 0.13, "currency": "CNY" }
    ],
    "total": { "cost": 0.51, "currency": "CNY" }
  }
}
テキスト出力例(--format text)
qianwen usage summary --period month --format text
Usage Summary  ·  2026-04-10

-- Free Tier Quota -------------------------------------------------------
Model                Remaining      Total          Progress
qwen3.6-plus         850K tokens    1M tokens      85% left
wan2.6-t2i           38 images      50 images      76% left
--------------------------------------------------------------------------

-- Token Plan  ·  Token Plan Team Edition - Standard Seat  ·  valid-------
Usage:      25K / 25K Credits
Quota Left: 100%
Status:     valid
Resets:     2026-06-01
--------------------------------------------------------------------------

-- Pay-as-you-go · 2026-04-01 → 2026-04-10 -------------------------------
Model                Usage              Cost
qwen3.6-plus         480K tok           ¥0.38
qwen-plus            460K tok           ¥0.13
--------------------------------------------------------------------------
Total                —                  ¥0.51
⚠️ 重要:ユーザーへの出力方法

--format json を使用する場合(エージェントに推奨):

  1. JSON を解析し、ユーザーの質問に関連するデータを抽出します
  2. 人が読みやすい要約を提示します。生の JSON をそのままユーザーに表示しないでください
  3. 要約の後に分析を追加します。--- で明確に区切ってください

--format text を使用する場合:

  1. CLI の出力をそのまま表示します。変更や再フォーマットはしないでください
  2. すべての書式を保持します。配置、空白、プログレスバー、区切り線を維持してください
  3. 出力の後にのみ分析を追加します。--- で明確に区切ってください

次のことは絶対にしないでください:

  • ❌ 解釈せずに生の JSON をユーザーに表示する
  • ❌ テキストや表の出力を再フォーマットまたは要約する
  • ❌ 「使用状況はこちらです:」のような前置きを追加する
  • ❌ テキストや表の出力を箇条書きに変換する

✅ 正しい例(JSON モード):

Your QianWen usage for April:

**Free Tier**: qwen3.6-plus has 85% remaining (850K / 1M tokens), wan2.6-t2i has 76% remaining (38 / 50 images).
**Token Plan**: 16% used (21K / 25K Credits remaining).
**Pay-as-you-go**: ¥0.51 total — qwen3.6-plus ¥0.38, qwen-plus ¥0.13.

---

**💡 Analysis**: Your qwen3.6-plus free tier is 85% remaining...

✅ 正しい例(テキストモード):

[CLI text output - exactly as-is]

---

**💡 Analysis**: Your qwen3.6-plus free tier is 85% remaining...

❌ 誤った例:

Here's your usage:
- qwen3.6-plus: 850K tokens remaining (85% left)

終了コード

コード意味
0成功
1一般/使用方法エラー
2認証エラー
3ネットワークエラー
4設定エラー
130中断
  • 終了コードが 0 以外の場合でも、まず stdout にある構造化 JSON の解析を試みてください。利用可能なエラーペイロードや部分的な結果が含まれている場合があります。
  • 終了コードが 2(認証エラー)の場合:ユーザーに認証フローを案内してから、元のタスクを再試行します。再試行は最大 1 回です。ログインを繰り返すことは絶対にしないでください。

CLI の更新確認

ユーザーが CLI の更新確認を明示的に求めた場合(例:「CLI の更新を確認して」「CLI のバージョンを確認して」「CLI の新しいバージョンはある?」):

  1. 次を実行します:qianwen version --check
  2. 結果を報告します。

QianWen CLI は更新通知を標準で処理するため、このスキルで追加の stderr シグナル処理を行う必要はありません。

実装上の注意

  • 従量課金:API が返すのは合計使用量のみです(入力/出力の内訳はありません)
  • Token Plan:プラン単位のクレジット消費量を集計します(モデルごとの内訳はありません)
  • logout:サーバー側のセッションを取り消し、ローカルの認証情報(キーチェーンとファイル)を消去します。サーバー側の呼び出しはベストエフォートですが、ローカルのログアウトは常に成功します。
  • 認証:PKCE を使用する OAuth 2.0 Device Authorization Grant を使用します。利用可能な場合は認証情報を OS のキーチェーンに保存し、利用できない場合は暗号化されたファイルに保存します。
  • breakdown には --model が必須です:以前の Python 実装とは異なり、この CLI では breakdown に --model が必要です。すべてのモデルの使用量を照会するには、代わりに qianwen usage summary を使用してください。

コメント