# NeoUI -- CLI Tools & Build Commands
## Package Management
```bash
# Install styled components (includes Primitives + all icon libraries)
dotnet add package NeoUI.Blazor --version 3.6.3
# Headless primitives only (custom design systems)
dotnet add package NeoUI.Blazor.Primitives --version 3.6.3
# Icon libraries (included transitively with NeoUI.Blazor)
dotnet add package NeoUI.Icons.Lucide --version 3.0.0
dotnet add package NeoUI.Icons.Heroicons --version 3.0.0
dotnet add package NeoUI.Icons.Feather --version 3.0.0
# Project template
dotnet new install NeoUI.Blazor.Templates
```
## Project Template CLI
```bash
# Create new NeoUI Blazor app
dotnet new neoui -n MyApp
# With specific interactivity mode
dotnet new neoui -n MyApp -in Server # Blazor Server
dotnet new neoui -n MyApp -in WebAssembly# Blazor WASM
dotnet new neoui -n MyApp -in Auto # InteractiveAuto (default, two-project)
# Empty layout (no demo pages)
dotnet new neoui -n MyApp --empty
# List all template options
dotnet new neoui --help
```
## Build & Run
```bash
dotnet build # Builds project (also runs npm install + Tailwind CSS if configured)
dotnet run# Starts dev server at https://localhost:5001
dotnet watch # Hot-reload dev mode
dotnet publish # Publish for deployment
```
## CSS Build (Tailwind CSS v4 -- optional)
```bash
npm install # Install Tailwind and dependencies
npm run build:css # One-time CSS compilation
npm run watch:css # Watch mode for development
```
The NeoUI project template pre-configures the .csproj to auto-run the CSS build on `dotnet build`:
```xml
```
## Testing
```bash
dotnet test # Run all tests
dotnet test --filter "Category=Unit"
```
## NuGet Pack & Publish (library authors)
```bash
dotnet pack -c Release
dotnet nuget push bin/Release/*.nupkg --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json
```
## Useful dotnet CLI Tips
```bash
dotnet list package --outdated # Check for newer package versions
dotnet restore # Restore NuGet packages
dotnet clean # Clean build outputs
dotnet format# Format code (requires dotnet-format tool)
```