Telerik.CLI
1.7.0
Prefix Reserved
dotnet tool install --global Telerik.CLI --version 1.7.0
dotnet new tool-manifest
dotnet tool install --local Telerik.CLI --version 1.7.0
#tool dotnet:?package=Telerik.CLI&version=1.7.0
nuke :add-package Telerik.CLI --version 1.7.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>
Create a new Telerik project from a dotnet template package. Non-interactive mode is the default — specify --interactive to run the guided interactive flow.
telerik create <product> [--template <shortName>] [--name <name>] [--output <dir>] [--interactive] [--skip-template-install] [--json] [--verbose] [--help] [template options...]
| Argument/Option | Aliases | Default | Description |
|---|---|---|---|
<product> |
— | — | Product identifier. Known values: blazor, maui. |
--template |
-t |
— | Short name of the template to use. Required in non-interactive mode when the product has more than one template. |
--name |
-n |
— | Project name. Required in non-interactive mode. |
--output |
-o |
Current directory | Parent directory for the new project. A subfolder named after the project is created inside it. |
--interactive |
-i |
false |
Run the guided interactive flow. |
--skip-template-install |
— | — | Skip downloading/updating templates. Use when the desired template version is already installed. |
--help |
-h |
— | Show help for this command or a specific template. |
--json |
— | — | Emit result as JSON. |
--verbose |
— | — | Enable verbose diagnostic output written to stderr. |
--no-update-check |
— | — | Skip the post-command update check and version notice. |
Template options:
All unrecognised tokens are forwarded verbatim to dotnet new. This includes template-specific parameters such as -int Server or --theme Basic. Adding a new option to a template package requires no Telerik CLI release.
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.
Non-interactive flow (default):
1. Validate product is provided → error + hint if missing
2. Validate --name is provided → error + hint if missing
3. Check .NET SDK availability → error if absent
4. Template version check (nuget.org)
├── Up to date → skip install
├── Outdated or not installed → dotnet new install <packageId> --force
└── Check failed, templates installed → skip install, log warning
5. Discover templates → error if none found
6. Resolve template
├── --template provided → match by short name, error if not found
├── Only one template available → auto-select
└── Multiple templates, none specified → error listing available short names
7. dotnet new <shortName>
-n "<name>"
-o "<output>/<name>"
[unmatched tokens...]
Interactive flow (--interactive):
- Check .NET SDK availability
- Template version check + install/update
- Discover templates
- Prompt: select template (auto-skip if only one)
- Prompt: project name (auto-skip if
--namewas provided) - Prompt: each template parameter (type-aware: bool / choice / text)
dotnet new <shortName> -n "<name>" -o "<output>/<name>" [parameters...]
Supported products:
| Product slug | Template package |
|---|---|
blazor |
Telerik.Blazor.Templates |
maui |
Telerik.Maui.Templates |
Examples:
# Non-interactive: create a Blazor project in the current directory
telerik create blazor --template telerik-blazor --name MyApp
# Specify output directory
telerik create blazor --template telerik-blazor --name MyApp --output ~/projects
# Pass template-specific options
telerik create blazor --template telerik-blazor --name MyApp --theme bootstrap
# Interactive flow: step-by-step prompts
telerik create blazor --interactive
# Interactive with pre-filled name: skip the name prompt
telerik create blazor --interactive --name MyApp
# Show template parameters
telerik create blazor --template telerik-blazor --help
# Skip template installation check
telerik create blazor --template telerik-blazor --name MyApp --skip-template-install
# Machine-readable output
telerik create blazor --template telerik-blazor --name MyApp --json
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.7.0 | 492 | 9/8/2026 |
| 1.6.1 | 1,731 | 8/17/2026 |
| 1.6.0 | 322 | 8/12/2026 |
| 1.5.0 | 268 | 7/30/2026 |
| 1.4.1 | 442 | 6/29/2026 |
| 1.4.0 | 234 | 6/17/2026 |
| 1.3.0 | 332 | 6/2/2026 |
| 1.2.0 | 191 | 5/26/2026 |
| 1.1.1 | 323 | 4/30/2026 |
| 1.1.1-develop.1 | 62 | 4/30/2026 |
| 1.1.0 | 116 | 4/30/2026 |
| 1.1.0-develop.2 | 62 | 4/30/2026 |
| 1.1.0-develop.1 | 106 | 3/31/2026 |
| 1.0.1 | 398 | 3/30/2026 |
| 1.0.1-develop.2 | 77 | 3/26/2026 |
| 1.0.1-develop.1 | 74 | 3/25/2026 |
| 1.0.0 | 229 | 3/17/2026 |
| 1.0.0-develop.15 | 75 | 3/17/2026 |
| 1.0.0-develop.14 | 88 | 3/17/2026 |
| 1.0.0-develop.13 | 82 | 3/17/2026 |
Version 1.7.0 (2026-09-08)
---
What's New
* add personalized telemetry
* WPF create command support and tests.
What's Fixed
* in-client telemetry jurisdiction
* userinfo scope
* add latest changes from vsx-tools
* enhance release notes formatting and parsing logic
* add clearing of the saved userId in the notice file, when the session is changed
Version 1.6.1 (2026-08-17)
---
What's Fixed
* ASP.NET CORE migrate rulesets
Version 1.6.0 (2026-08-12)
---
What's New
* WPF breaking changes analyzer tool command
What's Fixed
* bump vsx sdk versions
* enhance telemetry privacy measures and logging sanitization
* MAUI project templates
Version 1.5.0 (2026-07-30)
---
What's New
* add license info command
* Bump packages version to 17.20.0
* migrate command
What's Fixed
* ga session telemetry; notifications cli improvements
* remove AJAX setup
* update packages version
Version 1.4.1 (2026-06-29)
---
What's Fixed
* update CI/CD workflow and improve CHANGELOG generation logic
* update release notes workflow and switch to CHANGELOG.md
Version 1.4.0 (2026-06-17)
---
What's New
* add new products to setup/interactive commands
* add release notes generation and update .gitignore
* bump version
* implement the fix for PT-1277
What's Fixed
* "move up and down..." hint is shown when rows are not enough
* apply fixes for UI/UX experience during interactive mode
* NuGet config; navigation UX
* trial activation in interactive mode
* ui glitches
Version 1.3.0 (2026-06-02)
---
What's New
* upgrade command
* **vsx-tools:** bump vsx-tools package version
What's Fixed
* add support for flat-container base URL
* interactive mode UX
* UX improvements
Version 1.2.0 (2026-05-26)
---
What's New
* Add dotnet new templates version check and install
* Add project creation
* check for updates
What's Fixed
* entitlement check
Version 1.1.1 (2026-04-30)
---
What's Fixed
* Trial license activation
Version 1.1.0 (2026-04-30)
---
What's New
* add command options for diagnostics
* add release procedure
Version 1.0.1 (2026-03-30)
---
What's Fixed
* login command parameter
* nuget config path
Version 1.0.0 (2026-03-17)
---
What's New
* implement interactive setup command
* initial release
* mcp conditional configuration based on .net version
What's Fixed
* add missing command
* bump dev version
* cursor mcp config
* encryption on Mac
* fix the assembly version.
* fix the nuget publishing to the github feed.
* improve fallback login flow with manual browser launch
* leave lowest compatible target framework
* manual login fallback
* package metadata
* read me
* release path
* remove hard-coded version
* tool target framework; setup command messages
* Update artifact uploading.