$npx -y skills add BerriAI/litellm-skills --skill add-userCreate a new user on a live LiteLLM proxy. Asks for email, role, and optional budget/model limits, then calls POST /user/new and shows the result.
| 1 | # Add User |
| 2 | |
| 3 | Create a new user on a live LiteLLM proxy. |
| 4 | |
| 5 | ## Setup |
| 6 | |
| 7 | Ask for these if not already known: |
| 8 | ``` |
| 9 | LITELLM_BASE_URL — e.g. https://my-proxy.example.com |
| 10 | LITELLM_API_KEY — proxy admin key |
| 11 | ``` |
| 12 | |
| 13 | API reference: https://litellm.vercel.app/docs/proxy/virtual_keys#creating-a-user |
| 14 | |
| 15 | ## Ask the user |
| 16 | |
| 17 | 1. **Email** (required) |
| 18 | 2. **Role** — one of: `proxy_admin`, `proxy_admin_viewer`, `internal_user` (default), `internal_user_viewer` |
| 19 | 3. **Max budget** (optional, e.g. `10.00`) |
| 20 | 4. **Allowed models** (optional, e.g. `gpt-4o, claude-3-5-sonnet`) |
| 21 | |
| 22 | ## Run |
| 23 | |
| 24 | ```bash |
| 25 | curl -s -X POST "$BASE/user/new" \ |
| 26 | -H "Authorization: Bearer $KEY" \ |
| 27 | -H "Content-Type: application/json" \ |
| 28 | -d '{ |
| 29 | "user_email": "<email>", |
| 30 | "user_role": "<role>", |
| 31 | "max_budget": <budget_or_null>, |
| 32 | "models": [<models_or_empty>] |
| 33 | }' |
| 34 | ``` |
| 35 | |
| 36 | ## Output |
| 37 | |
| 38 | Show the user: |
| 39 | - `user_id` — they'll need this for future updates |
| 40 | - `key` — the auto-generated API key for this user |
| 41 | - `user_role`, `max_budget` |
| 42 | |
| 43 | On error show `detail` and the likely fix. |