CLI

Every shellui-native command and option.

The CLI is a .NET global tool. Install or update it with:

bash
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.

bash
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.

bash
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.

bash
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.

bash
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.

bash
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.

json
{
  "Schema": "https://native.shellui.dev/schema.json",
  "Style": "default",
  "ComponentsPath": "Components/UI",
  "TargetPlatform": 1,
  "Theme": {
    "Enabled": true,
    "Style": "default",
    "SyncWithShellUI": true
  },
  "InstalledComponents": []
}

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.