LiteLLM Proxy CLIに入門してみた

LiteLLM Proxy CLIに入門してみた

2025.12.03

はじめに

前回Claude CodeでLiteLLMを使用しました。

https://dev.classmethod.jp/articles/claude-code-via-litellm-with-amazon-bedrock/

モデルはconfig.yamlで追加可能ですが、ホットリロードには対応しておらずサービスの再起動が発生しわずかながらダウンタイムが発生してしまいます。
ダウンタイムを回避するにはAdmin UIからモデルの追加を行う必要があるのですが、同様の操作はCLIからも可能です。
LiteLLM Proxy CLIを使うことで、モデル追加だけでなくユーザー管理やAPIキー発行もターミナルから実行できます。

やってみる

LiteLLM Proxy CLIのインストール

uv を使ってインストールします。

uv tool install 'litellm[proxy]'

インストールが完了すると、litellmlitellm-proxy の2つのコマンドが使えるようになります。

環境変数の設定

CLIから接続するProxyのURLを以下のように環境変数で指定します。

export LITELLM_PROXY_URL=https://litellm-server:4000

ログイン

以下のコマンドを実行すると、ブラウザが開いてSSO認証が始まります。

litellm-proxy login

Opening browser to: http://192.168.0.42:4000/sso/key/generate?source=litellm-cli&key=sk-65a176dd-60d0-4f44-8c03-72d206948534
Please complete the SSO authentication in your browser...
Session ID: sk-65a176dd-60d0-4f44-8c03-72d206948534
Waiting for authentication...
Still waiting for authentication...

✅ Login successful!
JWT Token: sQGuAOM7qUmRNYknmvlx...
You can now use the CLI without specifying --api-key

login

ブラウザでログインが完了すると、CLIがJWTトークンを取得し、以降のコマンドで自動的に使用されます。

認証状態の確認

現在の認証状態を確認するには whoami を使います。

litellm-proxy whoami
✅ Authenticated
User Email: unknown
User ID: 28c1b879-79fc-4178-904c-d7fdbb78ac20
User Role: cli
Token age: 0.0 hours

認証済みであれば、ユーザーID、ロール、トークンの経過時間などが表示されます。

モデル一覧の取得

Proxyで利用可能なモデルを確認します。

litellm-proxy models list
                          Available Models
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ ID                         ┃ Object ┃ Created          ┃ Owned By ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ claude-sonnet-4-5-20250929 │ model  │ 2023-03-01 03:56 │ openai   │
│ claude-haiku-4-5-20251001  │ model  │ 2023-03-01 03:56 │ openai   │
└────────────────────────────┴────────┴──────────────────┴──────────┘

作成日が2023年になっていたり、Owned ByはOpenAIになっていたりとよくわからない状態となっていました。
おそらくconfig.yamlで追加したモデルだからでしょうか。

ユーザー一覧の取得

以下のコマンドで登録されているユーザーを一覧が確認できます。

litellm-proxy users list
                                                 Users
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━┓
┃ User ID                              ┃ Email                   ┃ Role        ┃ Teams ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━┩
│ 28c1b879-79fc-4178-904c-d7fdbb78ac20 │ test-user@example.com.  │ proxy_admin │       │
│ default_user_id                      │ None                    │ proxy_admin │       │
└──────────────────────────────────────┴─────────────────────────┴─────────────┴───────┘

初期ユーザーと今回ログインしているユーザーが確認できました。

APIキー一覧の取得

発行済みのAPIキー一覧が取得できます。

litellm-proxy keys list
Showing 2 keys out of 2
                                                                    API Keys
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━┓
┃ Key Hash                                                         ┃ Alias             ┃ User ID                              ┃ Team ID ┃ Spend ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━┩
│ 8ccef9feeb0c28ec129c0073c5a576a627bfa8cf8823e7513b7a3256eb424a71 │ None              │ 72fcccf5-3224-413b-89fb-f82aef0fc95f │ None    │ 0.0   │
│ 82141002ce2f004180d9dff7a8a8630d3700f29b814251ceebc25c32867f451c │ litellm-proxy-cli │ 28c1b879-79fc-4178-904c-d7fdbb78ac20 │ None    │ 0.0   │
└──────────────────────────────────────────────────────────────────┴───────────────────┴──────────────────────────────────────┴─────────┴───────┘

Spend 列で各キーの使用金額を確認できるので、予算管理に便利そうです。

ユーザーの作成

以下のコマンドでユーザーの作成も可能です。

litellm-proxy users create --email=test-user1@example.com --max-budget=10
{
  "key_alias": null,
  "duration": null,
  "models": [],
  "spend": 0.0,
  "max_budget": 10.0,
  "user_id": "72fcccf5-3224-413b-89fb-f82aef0fc95f",
  "team_id": null,
  "max_parallel_requests": null,
  "metadata": {},
  "tpm_limit": null,
  "rpm_limit": null,
  "budget_duration": "7d",
  "allowed_cache_controls": [],
  "config": {},
  "permissions": {},
  "model_max_budget": {},
  "model_rpm_limit": null,
  "model_tpm_limit": null,
  "guardrails": null,
  "prompts": null,
  "blocked": null,
  "aliases": {},
  "object_permission": null,
  "key": "sk-pdAy18Z4ywpXjSN8DeXSFg",
  "budget_id": null,
  "tags": null,
  "enforced_params": null,
  "allowed_routes": [],
  "allowed_passthrough_routes": null,
  "allowed_vector_store_indexes": null,
  "rpm_limit_type": null,
  "tpm_limit_type": null,
  "key_name": "sk-...XSFg",
  "expires": null,
  "token_id": null,
  "organization_id": null,
  "litellm_budget_table": null,
  "token": null,
  "created_by": null,
  "updated_by": null,
  "created_at": "2025-12-03T11:52:39.993000Z",
  "updated_at": "2025-12-03T11:52:39.993000Z",
  "user_email": "test-user1@example.com",
  "user_role": "internal_user",
  "teams": null,
  "user_alias": null
}

どうやらユーザー作成と一緒にAPIキーも発行されるようです。
Admin UI上からもAPIキーが確認できました。

alt text

まとめ

今回はLiteLLM Proxy CLIでLiteLLMの管理操作を行ってみました。
CLIのため他のコマンドと組み合わせることで色々なことができそうです。
どなたかの参考になれば幸いです。

この記事をシェアする

FacebookHatena blogX

関連記事