CLI
Every shellui-native command and option.
The CLI is a .NET global tool. Install or update it with:
dotnet tool install -g ShellUI.Native.CLI --prerelease
dotnet tool update -g ShellUI.Native.CLI --prerelease
Run every command from the folder that holds your project's .csproj.
init
Sets up ShellUI Native in the project: detects the platform, creates Components/UI, installs Shell.cs and writes shellui-native.json. On MAUI it also writes Resources/Styles/ShellUITheme.xaml.
In a project that also uses ShellUI for Blazor (it has a shellui.json), the components go in Components/Native instead, so the two sets don't clash. The namespace follows the folder: Components/UI gives YourApp.Components.UI, Components/Native gives YourApp.Components.Native.
shellui-native init [--yes] [--force] [--style default|minimal]
| Option | Description |
|---|---|
--yes |
Use the defaults without asking. |
--force |
Initialise again in a project that's already set up. |
--style |
default or minimal. Saved in shellui-native.json; it doesn't change the installed code yet. |
add
Copies components into Components/UI, with every component and helper they depend on. Adding a part, such as dialog-trigger, installs its whole family. The namespace in each file is replaced with your project's.
shellui-native add <components...> [--force]
Separate names with spaces or commas: shellui-native add button input card or shellui-native add button,input,card. An unknown name gets suggestions: shellui-native add donut answers "Did you mean 'donut-chart'?".
| Option | Description |
|---|---|
--force |
Overwrite components that are already installed (and your edits to them). |
list
Shows the components that have a template for the project's platform, with their category and whether they're installed.
shellui-native list [--installed] [--available]
| Option | Description |
|---|---|
--installed |
Only installed components. |
--available |
Only components that aren't installed yet. |
remove
Deletes each named component's file from Components/UI and drops it from shellui-native.json. Only that file goes: the parts and helpers it installed stay, since other components may use them.
shellui-native remove <components...>
update
Replaces installed components with the CLI's current templates. With no names, or with --all, it updates every installed component. Your edits to those files are overwritten, so commit first.
shellui-native update <components...>
shellui-native update --all
add never touches a file that's already in your project, so after updating the CLI a new component can land next to an older version of something it depends on. If it doesn't build, update that dependency: date-range-picker needs the current calendar, and button-group the current button.
shellui-native.json
init writes the project's configuration; add and remove keep InstalledComponents up to date.
{
"Schema": "https://native.shellui.dev/schema.json",
"Style": "default",
"ComponentsPath": "Components/UI",
"TargetPlatform": 1,
"Theme": {
"Enabled": true,
"Style": "default",
"SyncWithShellUI": true
},
"InstalledComponents": []
}