Telerik.CLI
1.6.0
Prefix Reserved
See the version list below for details.
dotnet tool install --global Telerik.CLI --version 1.6.0
dotnet new tool-manifest
dotnet tool install --local Telerik.CLI --version 1.6.0
#tool dotnet:?package=Telerik.CLI&version=1.6.0
nuke :add-package Telerik.CLI --version 1.6.0
Telerik CLI
Unified command-line interface for Telerik products and services. The CLI is published as a set of .NET global tools, all using the telerik command, each covering a distinct domain:
| Command | Description |
|---|---|
setup |
One-shot full developer-machine setup |
login |
Authenticate with a Telerik account |
logout |
Clear the locally persisted login session |
whoami |
Display the currently authenticated user |
nuget |
Configure the Telerik NuGet package source |
license |
Fetch and store the Telerik license key |
mcp |
Manage MCP server configuration for IDEs |
create |
Create a new Telerik project interactively |
add |
Add Telerik to an existing project workspace |
migrate |
Analyze Telerik projects for breaking changes |
upgrade |
Check for and apply CLI updates |
Global Options
Every command accepts a --json flag. When omitted, output is human-readable plain text. When present, the result is printed as indented JSON to stdout.
Every command also accepts a --verbose flag. When present, diagnostic messages are written to stderr, which is useful for troubleshooting.
Every command also accepts a --no-update-check flag. By default, the CLI checks for a newer version of itself after each command and prints a notice to stderr if one is available. Pass --no-update-check to suppress this check, which is useful in CI pipelines or latency-sensitive scripts.
Commands that require authentication (login, nuget config, license get-key) also accept a --no-browser flag for environments where the browser cannot complete the loopback OAuth redirect (e.g. firewall, antivirus, WSL, corporate proxy). When used, the command prints the authorization URL to the console, prompts you to open it in a browser and log in manually, then asks you to paste the full redirect URL from the address bar so the authorization code can be extracted and exchanged for an access token.
{
"exitCode": 0,
"success": true,
"message": "Human-readable message",
"data": { }
}
Session data and credentials are stored in an OS-specific state directory:
| OS | Path |
|---|---|
| Windows | %AppData%\Telerik |
| macOS / Linux | ~/.telerik |
Commands
Setup
telerik setup
One-shot command that runs the full Telerik developer-machine setup in sequence:
login— authenticate with a Telerik accountnuget config— configure the Telerik NuGet package sourcelicense get-key— download and store the Telerik license keymcp config— register MCP server configuration for all detected IDEs
telerik setup [--scope user|project] [--nuget-path <path>] [--force] [--no-browser] [--interactive | --no-interactive] [--verbose] [--json] [--no-update-check]
| Option | Default | Description |
|---|---|---|
--scope |
user |
NuGet configuration scope: user or project |
--nuget-path |
— | Path to NuGet.config or project directory (required when --scope project) |
--force |
— | Overwrite existing NuGet source configuration without prompting |
--no-browser |
— | Use manual OAuth flow for environments where the browser cannot complete the loopback redirect |
--interactive |
on (when stdin is a terminal) | Prompt step-by-step; each prompt shows its default value in brackets — pressing Enter accepts it |
--no-interactive |
on (when stdin is redirected) | Run fully non-interactively, relying on explicit options or their built-in defaults. Recommended for CI use |
--verbose |
— | Enable verbose diagnostic output written to stderr |
--json |
— | Emit result as JSON |
--no-update-check |
— | Skip the post-command update check and version notice |
- When
--interactiveis on (the default when stdin is a terminal), the user is prompted step-by-step through each stage. - Pass
--no-interactiveto skip all prompts and run with explicit options or built-in defaults. This is the automatic default when stdin is redirected (e.g. in CI pipelines).
Authentication
telerik login
Authenticate with a Telerik account via browser-based OAuth. Persists the session locally so subsequent commands run without re-authenticating.
telerik login [--no-browser] [--verbose] [--json] [--no-update-check]
- If a valid session already exists, returns immediately without opening the browser.
- On success, stores access token, refresh token, email, and profile info in the state directory.
- Use
--no-browserin environments where the browser cannot complete the loopback OAuth redirect (e.g. firewall, antivirus, WSL, corporate proxy). The command prints the authorization URL, prompts you to log in manually in a browser, then asks you to paste the full redirect URL from the address bar so the authorization code can be extracted and exchanged for an access token.
telerik logout
Clear the locally persisted login session.
telerik logout [--verbose] [--json] [--no-update-check]
telerik whoami
Display information about the currently authenticated user.
telerik whoami [--verbose] [--json] [--no-update-check]
NuGet
telerik nuget config
Add or update the Telerik NuGet package source (https://nuget.telerik.com/v3/index.json) in the user-level or a project-level NuGet.config.
telerik nuget config [--scope user|project] [--path <path>] [--api-key <key>] [--force] [--no-browser] [--verbose] [--json] [--no-update-check]
| Option | Default | Description |
|---|---|---|
--scope |
user |
Configuration scope: user or project |
--path |
— | Path to NuGet.config or project directory (required when --scope project) |
--api-key |
— | Telerik NuGet API key. If omitted, a new key is generated from the current session |
--force |
— | Overwrite the existing NuGet source entry if one is already configured |
--no-browser |
— | Use manual credential provider for environments where the browser cannot complete the loopback OAuth redirect (e.g. firewall, antivirus, WSL, corporate proxy) |
--verbose |
— | Enable verbose diagnostic output written to stderr |
Licensing
telerik license get-key
Download and store the Telerik license key for the authenticated account.
telerik license get-key [--no-browser] [--verbose] [--json] [--no-update-check]
- Requires an active session (
telerik loginfirst), or pass--no-browserto authenticate inline. - Stores the key file in the standard
ProductLicenseKeylocation. - Use
--no-browserin environments where the browser cannot complete the loopback OAuth redirect (e.g. firewall, antivirus, WSL, corporate proxy). The command prints the authorization URL, prompts you to log in manually in a browser, then asks you to paste the full redirect URL from the address bar so the authorization code can be extracted and exchanged for an access token.
MCP
telerik mcp config <ide> <product>
Register a Telerik product's MCP server in the global MCP configuration file for a specific IDE. Upserts the server entry by name, preserving all other entries.
telerik mcp config [--ide <ide>] [<product>] [--verbose] [--json] [--no-update-check]
| Argument/Option | Values |
|---|---|
--ide |
vscode, cursor, visualstudio, or all |
product |
blazor or all |
Passing all for either argument targets every known IDE or product respectively.
telerik mcp all
Convenience shorthand for mcp config all all — registers all known products into every detected IDE.
telerik mcp all [--verbose] [--json] [--no-update-check]
Supported products:
| Product slug | MCP server name |
|---|---|
blazor |
telerik-blazor-mcp |
IDE configuration file locations:
| IDE | OS | Path |
|---|---|---|
| VS Code | Windows | %APPDATA%\Code\User\mcp.json |
| VS Code | macOS | ~/Library/Application Support/Code/User/mcp.json |
| VS Code | Linux | ~/.config/Code/User/mcp.json |
| Cursor | Windows | %USERPROFILE%\.cursor\mcp.json |
| Cursor | macOS / Linux | ~/.cursor/mcp.json |
| Visual Studio | Windows | %USERPROFILE%\.mcp.json |
Project creation
telerik create <product>
Interactively create a new Telerik project from a product template. The command checks for a .NET SDK, downloads the latest templates, and guides you through template selection and project configuration step by step.
telerik create <product> [--output <path>] [--skip-template-install] [--verbose] [--json] [--no-update-check]
| Argument/Option | Default | Description |
|---|---|---|
product |
— | Product to create a project for. Currently supported: blazor |
--output / -o |
current directory | Output directory for the new project |
--skip-template-install |
— | Skip downloading/updating templates. Use when the desired template version is already installed |
--verbose |
— | Enable verbose diagnostic output written to stderr |
--json |
— | Emit result as JSON |
--no-update-check |
— | Skip the post-command update check and version notice |
Prerequisites: The .NET SDK must be installed. If it is not found, the command exits with an error and links to https://dot.net/download.
Interactive flow:
- Checks that the .NET SDK is available on the machine.
- Downloads and installs the latest template NuGet package for the chosen product (unless
--skip-template-installis passed). - Prompts you to select a template (shown only when the product provides more than one template).
- Prompts for a project name.
- Prompts for any template-specific parameters (choices, boolean flags, or free-text values). Default values are shown in brackets — pressing Enter accepts the default.
- Creates the project in the output directory.
At any prompt, type cancel to abort the operation.
Supported products:
| Product slug | Template package |
|---|---|
blazor |
Telerik.Blazor.Templates |
Example:
# Create a Blazor project interactively in the current directory
telerik create blazor
# Create a Blazor project in a specific directory, skipping template update
telerik create blazor --output ./my-app --skip-template-install
Migrate
Scans Telerik projects for breaking API changes between product versions. Supports Telerik UI for WPF (C#, VB.NET, and XAML) and Telerik UI for ASP.NET Core (Razor views).
telerik migrate analyze
Analyze a project and report breaking changes.
telerik migrate analyze --product <product> [--project <path>] [--file <path...>] [--directory <path>] [--from-version <version>] [--to-version <version>] [--min-confidence direct|inherited|inferred] [--manifest <path>] [--mode razor|text] [--no-install] [--verbose] [--json] [--no-update-check]
| Option | Default | Product scope | Description |
|---|---|---|---|
--product |
aspnetcore |
Both | Target product: wpf or aspnetcore. |
--project |
— | Both | Path to a .csproj/.vbproj file or a directory containing one. Discovers all source files and auto-detects the Telerik version from PackageReference. |
--file |
— | WPF only | One or more specific source files (space-separated). |
--directory |
— | WPF only | Recursively scan a directory for .cs, .vb, and .xaml files. No project file needed. |
--from-version |
Auto-detected | WPF only | Telerik version upgrading from (YYYY.R.BBB, e.g. 2020.3.915). Required when using --directory or --file alone; auto-detected from PackageReference when --project is used. |
--to-version |
Latest in manifest | WPF only | Telerik version upgrading to. Defaults to the newest version in the embedded manifest. |
--min-confidence |
inferred |
WPF only | Minimum confidence level to include in results: direct, inherited, or inferred. See Confidence levels. |
--manifest |
Embedded | Both | Path to a custom breaking-changes JSON manifest. Uses the built-in manifest when omitted. |
--mode |
razor |
ASP.NET Core only | Scanner engine: razor (uses the Razor compiler, requires dotnet restore) or text (regex-based fallback, zero dependencies). |
--no-install |
— | ASP.NET Core only | Skip the automatic upgrade of Telerik.UI.for.AspNet.Core to the latest version. When passed and the package is outdated, the command exits with code 3. |
--verbose |
— | Both | Enable verbose diagnostic output written to stderr. |
--json |
— | Both | Emit result as JSON. |
--no-update-check |
— | Both | Skip the post-command update check and version notice. |
At least one of --project, --file, or --directory is required.
Examples:
# WPF: auto-detect version from PackageReference
telerik migrate analyze --product wpf --project ./MyWpfApp.csproj
# WPF: explicit version range
telerik migrate analyze --product wpf --project ./MyWpfApp.csproj --from-version 2020.3.915 --to-version 2026.2.701
# WPF: CI gate — direct confidence only, JSON output
telerik migrate analyze --product wpf --project ./MyWpfApp.csproj --min-confidence direct --json
# ASP.NET Core (default product)
telerik migrate analyze --project ./MyAspApp.csproj
# ASP.NET Core: text mode, skip package upgrade
telerik migrate analyze --project ./MyAspApp.csproj --mode text --no-install
telerik migrate fix
Apply auto-fixable breaking changes to ASP.NET Core Razor view files. ASP.NET Core only.
telerik migrate fix [--project <path>] [--manifest <path>] [--mode razor|text] [--no-install] [--dry-run] [--verbose] [--json] [--no-update-check]
| Option | Default | Description |
|---|---|---|
--project |
— | Path to the .csproj file or project directory containing .cshtml files to fix. Required. |
--manifest |
Embedded | Path to a custom breaking-changes JSON manifest. Uses the built-in manifest when omitted. |
--mode |
razor |
Scanner engine: razor (uses the Razor compiler, requires dotnet restore) or text (regex-based fallback). |
--no-install |
— | Skip the automatic upgrade of Telerik.UI.for.AspNet.Core. When passed and the package is outdated, the command exits with code 3. |
--dry-run |
— | Preview changes without writing files. |
--verbose |
— | Enable verbose diagnostic output written to stderr. |
--json |
— | Emit result as JSON. |
--no-update-check |
— | Skip the post-command update check and version notice. |
- Low-confidence findings are reported as notes only and are not auto-fixed — manual review is required.
- Files are written atomically: changes are applied only if all fixes for a given file succeed.
Example:
# Preview what would be fixed without changing files
telerik migrate fix --project ./MyAspApp.csproj --dry-run
# Apply all auto-fixable changes
telerik migrate fix --project ./MyAspApp.csproj
Upgrade
telerik upgrade
Check for the latest version of the Telerik CLI and print the upgrade command. Auto-detects whether the tool is installed globally or locally.
telerik upgrade [--global] [--local] [--source <url>] [--version <version>] [--prerelease] [--verbose] [--json] [--no-update-check]
| Option | Default | Description |
|---|---|---|
--global |
— | Assume global tool installation (skip auto-detection) |
--local |
— | Assume local tool installation (skip auto-detection) |
--source |
— | NuGet source URL to use for the version check and update |
--version |
— | Target a specific version (skips latest-version check) |
--prerelease |
— | Include pre-release versions when checking for updates |
--verbose |
— | Enable verbose diagnostic output written to stderr |
--json |
— | Emit result as JSON |
--no-update-check |
— | Skip the post-command update check and version notice |
--globaland--localare mutually exclusive.- When neither is specified, the installation mode is detected automatically.
Telemetry
The Telerik CLI collects telemetry to help improve CLI quality and reliability.
You can opt out by setting the TELERIK_CLI_TELEMETRY_OPTOUT environment variable to 1 or true.
When opted out, the CLI stops collecting telemetry.
Copyright 2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
Packaged distributions of Progress [insert product name] obtained from NuGet are made available pursuant to the Progress [insert product name] EULA at https://www.telerik.com/purchase/license-agreements, unless you have entered into a separate MSA with the licensor.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.6.1 | 1,200 | 8/17/2026 |
| 1.6.0 | 316 | 8/12/2026 |
| 1.5.0 | 264 | 7/30/2026 |
| 1.4.1 | 438 | 6/29/2026 |
| 1.4.0 | 231 | 6/17/2026 |
| 1.3.0 | 330 | 6/2/2026 |
| 1.2.0 | 190 | 5/26/2026 |
| 1.1.1 | 321 | 4/30/2026 |
| 1.1.1-develop.1 | 60 | 4/30/2026 |
| 1.1.0 | 115 | 4/30/2026 |
| 1.1.0-develop.2 | 61 | 4/30/2026 |
| 1.1.0-develop.1 | 105 | 3/31/2026 |
| 1.0.1 | 396 | 3/30/2026 |
| 1.0.1-develop.2 | 76 | 3/26/2026 |
| 1.0.1-develop.1 | 73 | 3/25/2026 |
| 1.0.0 | 227 | 3/17/2026 |
| 1.0.0-develop.15 | 73 | 3/17/2026 |
| 1.0.0-develop.14 | 86 | 3/17/2026 |
| 1.0.0-develop.13 | 80 | 3/17/2026 |
| 1.0.0-develop.12 | 70 | 3/17/2026 |
### What's New
- WPF breaking changes analyzer tool command (#106) (e722be8)
- WPF breaking changes analyzer tool command (#106) (e722be8)
### What's Fixed
- enhance telemetry privacy measures and logging sanitization (#76) (6db09cf)
- MAUI project templates (#103) (f65410e)
- bump vsx sdk versions (#105) (2715758)
- bump vsx sdk versions (#105) (2715758)
- enhance telemetry privacy measures and logging sanitization (#76) (6db09cf)
- MAUI project templates (#103) (f65410e)
# 1.5.0 (2026-07-30)
### What's Fixed
- ga session telemetry; notifications cli improvements (#87) (62b6a75)
- remove AJAX setup (#98) (7fb22ab)
- update packages version (#100) (56c51df)
### What's New
- add license info command (#85) (7e176c2)
- Bump packages version to 17.20.0 (#94) (12ca99f)
- migrate command (#96) (de64196)
## 1.4.1 (2026-06-29)
### What's Fixed
- update CI/CD workflow and improve CHANGELOG generation logic (#83) (54a5da8)
- update release notes workflow and switch to CHANGELOG.md (#82) (c9558ae)
# 1.4.0 (2026-06-17)
### What's Fixed
- "move up and down..." hint is shown when rows are not enough (#73) (801b23d)
- apply fixes for UI/UX experience during interactive mode (#81) (2ece251)
- NuGet config; navigation UX (#74) (ab8075a)
- trial activation in interactive mode (#79) (5a02ad6)
- ui glitches (#80) (d822c1f)
### What's New
- add new products to setup/interactive commands (#78) (2309c00)
- add release notes generation and update .gitignore (#59) (fc34761)
- bump version (#75) (9048576)
- implement the fix for PT-1277 (#77) (c1e6d15)
# 1.3.0 (2026-06-02)
### What's Fixed
- add support for flat-container base URL (#71) (336a59b)
- interactive mode UX (#69) (911a927)
- UX improvements (#72) (09f9608)
### What's New
- upgrade command (#70) (6d6feca)
- **vsx-tools:** bump vsx-tools package version (#66) (332bb0d)
# 1.2.0 (2026-05-26)
### What's Fixed
- entitlement check (#65) (e5a6f5d)
### What's New
- Add dotnet new templates version check and install (#64) (c1f4a55)
- Add project creation (#45) (acd40a8)
- check for updates (#58) (78dc2ce)
## 1.1.1 (2026-04-30)
### What's Fixed
- Trial license activation (#53) (02d5f39)
# 1.1.0 (2026-04-30)
### What's New
- add command options for diagnostics (#40) (9b4a004)
- add release procedure (#50) (c59cb1a)
## 1.0.1 (2026-03-30)
### What's Fixed
- login command parameter (#37) (0028d0a)
- nuget config path (#38) (c7aea34)
# 1.0.0 (2026-03-17)
### What's Fixed
- add missing command (#32) (3c08eb0)
- bump dev version (cf95bae)
- cursor mcp config (#8) (0f940f6)
- encryption on Mac (#19) (2523577)
- fix the assembly version. (#25) (0211858)
- fix the nuget publishing to the github feed. (#12) (f7a24ba)
- improve fallback login flow with manual browser launch (#28) (745343b)
- leave lowest compatible target framework (#33) (8384623)
- manual login fallback (#26) (0c00fc6)
- package metadata (c0b9db2)
- read me (#24) (f6e601b)
- release path (ad98e69)
- remove hard-coded version (ceb96f0)
- tool target framework; setup command messages (#34) (6db809d)
- Update artifact uploading. (#21) (72f898d)
### What's New
- implement interactive setup command (#31) (b337903)
- initial release (4f78fee)
- mcp conditional configuration based on .net version (#27) (170075e)