Noundry.Cli 1.5.0
by Noundry
Noundry CLI (nd)
The Master CLI Wrapper for dotnet.exe and Noundry Framework Tools
nd is a unified command-line interface that provides seamless access to dotnet.exe commands and the entire suite of Noundry framework tools. It's designed to streamline your development workflow by providing a single, fast, and intuitive CLI with beautiful UI and progress indicators for every operation.
Features
- ๐ Single CLI for Everything - One tool to access dotnet and all Noundry utilities
- โก Fast & Efficient - Built with .NET 9.0 for optimal performance
- ๐จ Beautiful UI - Powered by Spectre.Console with rich formatting and progress indicators
- ๐ง Project Initialization - Interactive wizard to create noundry.json configuration
- ๐ฆ Automatic Tool Installation - Installs missing tools on-demand with user permission
- ๐ Tool Management - Install, uninstall, and update Noundry tools with simple commands
- โฑ๏ธ Progress Tracking - Every command shows execution time and progress
- ๐ Verbose & Debug Modes - Detailed logging with
--verboseand--debugflags - ๐ Extensible - Easy integration with additional Noundry tools
Installation
Install as .NET Global Tool
# Install from NuGet
dotnet tool install --global Noundry.Cli
# Verify installation
nd --version
Build and Install from Source
# Clone the repository and navigate to the project directory
cd Noundry.Cli
# Build and pack
dotnet pack -c Release
# Install globally
dotnet tool install --global --add-source ./bin/Release Noundry.Cli
# Verify installation
nd --version
Update
dotnet tool update --global Noundry.Cli
Uninstall
dotnet tool uninstall --global Noundry.Cli
Quick Start
1. Initialize a New Project
nd init
This will start an interactive wizard that:
- Prompts for project name
- Prompts for project type (web-api or web-app)
- Installs
Noundry.Templatesfrom NuGet (if not already installed) - Creates a new project using the Noundry template
- Creates
noundry.jsonconfiguration file - Creates
global.jsonwith specified .NET SDK version
Non-Interactive Mode:
# Create project with all options specified
nd init -n MyApp -f net90
# Specify output directory
nd init -n MyApi -o ./src/MyApi --framework net100
2. Install Noundry Tools
nd install
This command installs all Noundry CLI tools globally:
- ndng - Noundry Engine CLI (deployment automation)
- slurp - Noundry Slurp tool
- authnz - Noundry AuthnzNet CLI
- lgby - Noundry Logably CLI
- njobs - Noundry Jobs CLI
- ndotenvx - Noundry DotEnvX tool
- bowtie - Noundry Tuxedo Bowtie CLI
- cufflink - Noundry Tuxedo Cufflink CLI
Note: Some tools may not yet be published to NuGet. The command will show which tools installed successfully and which failed. Tools can also be auto-installed on first use.
3. Configure Private Package Server
nd nd-package-server --apikey YOUR_API_KEY
This adds packages.noundry.com as a NuGet source, enabling access to commercial Noundry packages.
Global Options
All commands support the following global options:
| Option | Short | Description |
|---|---|---|
--verbose |
-v |
Enable verbose logging for detailed operation information |
--debug |
-d |
Enable debug logging (includes verbose output plus debug details) |
--version |
Display the CLI version | |
--help |
-h |
Display help information |
Examples:
# Run with verbose logging
nd -v install
# Run with debug logging
nd --debug init
# Check version
nd --version
Commands Reference
Core Commands
nd init
Initialize a new Noundry project using Noundry.Templates.
Synopsis:
nd init [OPTIONS]
Options:
-n, --name <NAME>- Project name (will prompt if not provided)-o, --output <DIR>- Output directory (defaults to project name)-f, --framework <VERSION>- Framework version (net80, net90, net100) [default: net90]
Examples:
# Interactive mode (recommended)
nd init
# Specify project name and framework
nd init -n MyWebApi -f net90
# Full non-interactive mode
nd init --name MyApp --output ./src/MyApp --framework net100
What it does:
- Prompts for project name (if not provided via
-n) - Prompts for project type (C# web-api or C# web-app)
- Installs
Noundry.Templatesfrom NuGet if not installed - Creates project using
noundry-webapiornoundry-webapptemplate - Creates
noundry.jsonwith project configuration - Creates
global.jsonwith SDK version and rollForward policy
Note: If Noundry.Templates is not published to NuGet yet, the command falls back to standard dotnet templates (webapi or webapp).
Output:
_ _ _ ____ _ ___
| \ | | ___ _ _ _ __ | |_ __ _ _/ ___| | |_ _|
| \| |/ _ \| | | | '_ \ | __/ _` | | | | | | | |
| |\ | (_) | |_| | | | | | || (_| |_| | |___| |___ | |
|_| \_|\___/ \__,_|_| |_| \__\__,_(_) \____|_____|___|
Initializing Noundry project...
Project name: MyAwesomeApp
Project type:
> C# web-api
C# web-app
โ Installed Noundry.Templates
โ Created project 'MyAwesomeApp'
โ Created noundry.json
โ Created global.json
โ Project Initialized
โญโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโฎ
โ Setting โ Value โ
โโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ Project Name โ MyAwesomeApp โ
โ Project Type โ C# web-api โ
โ Template โ noundry-webapi โ
โ Output Directory โ MyAwesomeApp โ
โ Framework โ net90 โ
โ Noundry Version โ nd10 โ
โ Processing Time โ 2341ms โ
โฐโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโฏ
Project created in: C:\Projects\MyAwesomeApp
Next steps:
1. cd MyAwesomeApp
2. nd install
3. nd dn build
4. nd dn run
nd dn
Wrapper for dotnet.exe - run any dotnet command through nd.
Synopsis:
nd dn <dotnet-command> [args...]
Examples:
# Build project
nd dn build
# Build in Release configuration
nd dn build -- -c Release
# Run application
nd dn run
# Create new web API (use -- before options)
nd dn new webapi -- -n MyApi
# Create console app with output directory
nd dn new console -- -n MyApp -o Output
# Restore packages
nd dn restore
# Run tests
nd dn test
# Publish application (use -- before options)
nd dn publish -- -c Release -o ./publish
Important: When using dotnet commands with options like -n, -c, -o, use the -- separator to prevent the CLI from parsing them:
# Correct:
nd dn new console -- -n MyApp -o Output
# Without options, no separator needed:
nd dn build
nd dn run
nd dn test
What it does:
- Executes dotnet.exe with the provided arguments
- Captures and displays stdout/stderr in real-time
- Shows execution time
- Returns the same exit code as dotnet.exe
Output:
Running: dotnet build -c Release
Microsoft (R) Build Engine version 9.0.0 for .NET
...
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:02.15
โ Command completed successfully in 2156ms
nd install
Install all Noundry CLI tools globally via NuGet.
Synopsis:
nd install
What it does:
- Checks if each Noundry tool is already installed
- Installs missing tools via
dotnet tool install --global - Shows progress for each tool
- Provides summary of installation results
Output:
โโ Installing Noundry Tools โโ
โ ndng is already installed
Installing slurp...
โ Installed slurp
Installing authnz...
โ Installed authnz
...
โโ Installation Complete โโ
โญโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโฎ
โ Metric โ Value โ
โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโค
โ Total Tools โ 8 โ
โ Installed/Availableโ 8 โ
โ Failed โ 0 โ
โ Processing Time โ 4523msโ
โฐโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโฏ
โ All Noundry tools are ready!
nd uninstall
Uninstall Noundry CLI tools (single tool or all tools).
Synopsis:
nd uninstall [tool] [OPTIONS]
Arguments:
[tool]- Specific tool alias to uninstall (optional, uninstalls all if not specified)
Options:
-f, --force- Force uninstall without confirmation prompt
Examples:
# Uninstall all tools (with confirmation)
nd uninstall
# Uninstall a specific tool
nd uninstall ng
# Force uninstall without confirmation
nd uninstall --force
# Force uninstall specific tool
nd uninstall slurp -f
What it does:
- Prompts for confirmation (unless
--forceis used) - Checks if each tool is installed
- Uninstalls tools via
dotnet tool uninstall --global - Shows progress for each tool
- Provides summary of uninstallation results
Output:
โโ Uninstalling Noundry Tools โโ
โ Uninstalled ndng
โ Uninstalled slurp
โ authnz is not installed
...
โโ Uninstall Complete โโ
โญโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโฎ
โ Metric โ Value โ
โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโค
โ Tools Processed โ 8 โ
โ Uninstalled โ 6 โ
โ Failed โ 0 โ
โ Processing Time โ 2341msโ
โฐโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโฏ
โ Uninstall completed successfully!
nd update
Update Noundry CLI tools to their latest versions.
Synopsis:
nd update [tool]
Arguments:
[tool]- Specific tool alias to update (optional, updates all if not specified)
Examples:
# Update all tools
nd update
# Update a specific tool
nd update ng
What it does:
- Checks if each tool is installed
- Updates installed tools via
dotnet tool update --global - Skips tools that aren't installed
- Shows progress for each tool
- Provides summary of update results
Output:
โโ Updating Noundry Tools โโ
โ Updated ndng
โ Updated slurp
โ authnz is not installed (run 'nd install' first)
...
โโ Update Complete โโ
โญโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโฎ
โ Metric โ Value โ
โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโค
โ Tools Processed โ 8 โ
โ Updated โ 5 โ
โ Not Installed โ 2 โ
โ Failed โ 1 โ
โ Processing Time โ 3421msโ
โฐโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโฏ
โ Tools updated successfully!
nd nd-package-server
Add packages.noundry.com private NuGet package server.
Synopsis:
nd nd-package-server --apikey <API_KEY>
Options:
--apikey <KEY>- API key for packages.noundry.com (required)
Examples:
# Add with API key
nd nd-package-server --apikey YOUR_API_KEY_HERE
# Interactive prompt for API key
nd nd-package-server
What it does:
- Removes existing "noundry" NuGet source if present
- Adds https://packages.noundry.com/v3/index.json as NuGet source
- Configures authentication with provided API key
- Enables access to commercial Noundry packages
Output:
โโ Adding Noundry Package Server โโ
โโ Configuration Complete โโ
โญโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Setting โ Value โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Source Name โ noundry โ
โ Source URL โ https://packages.noundry.com/v3/index.jsonโ
โ Status โ โ Configured โ
โ Processing Timeโ 892ms โ
โฐโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ Noundry package server configured successfully!
You can now install commercial Noundry packages.
Noundry Tool Wrappers
All Noundry CLI tools can be invoked through the nd command. If a tool is not installed, nd will prompt to install it automatically.
nd ng
Noundry Engine CLI - Deployment automation tool for .NET applications on Linux servers.
Synopsis:
nd ng [command] [args...]
Examples:
# Initialize server
nd ng init --host 192.168.1.100 --key ~/.ssh/id_rsa --email admin@example.com
# Deploy application
nd ng add myapp --test --port 5000
# Deploy files
nd ng deploy myapp.noundry.app --source ./publish
# Install database
nd ng database --type postgres --name myapp_db
# View logs
nd ng log myapp-noundry-app
# List deployments
nd ng list
# Generate GitHub Actions workflow
nd ng github-action myapp.com
Tool Package: Noundry.Engine.Cli
Command: ndng
Documentation: See ENGINE-CLI.md in the Noundry.Engine.Cli package
nd slurp
Noundry Slurp - Data ingestion and processing tool.
Synopsis:
nd slurp [command] [args...]
Examples:
nd slurp --help
Tool Package: Noundry.Slurp
Command: slurp
nd authnz
Noundry AuthnzNet CLI - Authentication and authorization management.
Synopsis:
nd authnz [command] [args...]
Examples:
nd authnz --help
Tool Package: Noundry.AuthnzNet.Cli
Command: authnz
nd lgby
Noundry Logably CLI - Logging and observability platform.
Synopsis:
nd lgby [command] [args...]
Examples:
nd lgby --help
Tool Package: Noundry.Logably.Cli
Command: lgby
nd jobs
Noundry Jobs CLI - Background job processing system.
Synopsis:
nd jobs [command] [args...]
Examples:
nd jobs --help
Tool Package: Noundry.Jobs.Cli
Command: njobs
nd envx
Noundry DotEnvX - Environment variable management tool.
Synopsis:
nd envx [command] [args...]
Examples:
nd envx --help
Tool Package: Noundry.DotEnvX
Command: ndotenvx
nd bowtie
Noundry Tuxedo Bowtie CLI - Tuxedo framework bowtie component.
Synopsis:
nd bowtie [command] [args...]
Examples:
nd bowtie --help
Tool Package: Noundry.Tuxedo.Bowtie.Cli
Command: bowtie
nd cufflink
Noundry Tuxedo Cufflink CLI - Tuxedo framework cufflink component.
Synopsis:
nd cufflink [command] [args...]
Examples:
nd cufflink --help
Tool Package: Noundry.Tuxedo.Cufflink.Cli
Command: cufflink
Configuration File
noundry.json
The noundry.json file is created by nd init and stores your project configuration:
{
"DotnetVersion": "net90",
"NoundryVersion": "nd10",
"ProjectName": "MyAwesomeApp",
"ProjectType": "C# web-api"
}
Fields:
- DotnetVersion - Target .NET version (net80, net90, net100)
- NoundryVersion - Noundry framework version (nd10 = Noundry 1.0)
- ProjectName - Name of your project
- ProjectType - Type of project (C# web-api or C# web-app)
global.json
Created automatically by nd init if it doesn't exist:
{
"sdk": {
"version": "9.0.0",
"rollForward": "latestMinor"
}
}
Complete Workflow Example
Here's a complete example of creating and deploying a new web API:
# 1. Initialize project
nd init --framework net90
# Enter project name: MyApi
# Select: C# web-api
# 2. Install Noundry tools
nd install
# 3. Configure private package server (if using commercial packages)
nd nd-package-server --apikey YOUR_API_KEY
# 4. Create new web API project
nd dn new webapi -- -n MyApi
# 5. Build the project
cd MyApi
nd dn build -- -c Release
# 6. Run tests
nd dn test
# 7. Publish application
nd dn publish -- -c Release -o ./publish
# 8. Initialize deployment server (using Engine CLI)
nd ng init --host 192.168.1.100 --key ~/.ssh/id_rsa --email admin@example.com
# 9. Install PostgreSQL database
nd ng database --type postgres --name myapi_db --user myapi_user
# 10. Deploy to test domain
nd ng add myapi --test --port 5000
# 11. Upload application files
nd ng deploy myapi.noundry.app --source ./publish
# 12. View logs
nd ng log myapi-noundry-app
# 13. Deploy to production
nd ng add myapi.com --port 5000 --ssl
# 14. Deploy files to production
nd ng deploy myapi.com --source ./publish
Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Noundry CLI (nd) โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Core Commands โ โ
โ โ โข init - Project initialization โ โ
โ โ โข install - Install Noundry tools โ โ
โ โ โข uninstall - Uninstall Noundry tools โ โ
โ โ โข update - Update tools to latest versions โ โ
โ โ โข nd-package-server - Configure NuGet source โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Dotnet Wrapper (dn) โ โ
โ โ โข Wraps dotnet.exe commands โ โ
โ โ โข Real-time output capture โ โ
โ โ โข Execution time tracking โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Tool Wrappers โ โ
โ โ โข ng - Engine CLI (deployment) โ โ
โ โ โข slurp - Data ingestion โ โ
โ โ โข authnz - Authentication/Authorization โ โ
โ โ โข lgby - Logging/Observability โ โ
โ โ โข jobs - Background jobs โ โ
โ โ โข envx - Environment variables โ โ
โ โ โข bowtie - Tuxedo Bowtie โ โ
โ โ โข cufflink- Tuxedo Cufflink โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Infrastructure โ โ
โ โ โข Spectre.Console - Beautiful UI โ โ
โ โ โข Auto tool installation โ โ
โ โ โข Progress indicators โ โ
โ โ โข Execution time tracking โ โ
โ โ โข Verbose/Debug logging modes โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โผ โผ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ dotnet.exe โ โ Noundry CLI Toolsโ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
Key Benefits
1. Unified Interface
Instead of remembering multiple CLI commands and their package names:
# Before
dotnet build
dotnet tool install --global Noundry.Engine.Cli
ndng init
dotnet tool install --global Noundry.Slurp
slurp process
# After
nd dn build
nd install # Installs all tools at once
nd ng init
nd slurp process
2. Automatic Tool Management
If you try to use a tool that's not installed, nd will offer to install it:
$ nd ng init
Tool 'ndng' is not installed.
Would you like to install ndng? (y/n): y
Installing ndng...
โ ndng installed successfully!
Running: ndng init
...
3. Beautiful, Consistent UI
All commands use Spectre.Console for:
- Color-coded output
- Progress indicators
- Execution time tracking
- Tables and formatted output
- FigletText headers
4. Fast & Efficient
- Built with .NET 9.0 for maximum performance
- Minimal overhead - commands execute as fast as calling tools directly
- Parallel tool checking and installation
Project Structure
Nd-Cli/
โโโ Noundry.Cli/
โ โโโ Commands/
โ โ โโโ InitCommand.cs # nd init
โ โ โโโ DotnetCommand.cs # nd dn
โ โ โโโ InstallCommand.cs # nd install
โ โ โโโ UninstallCommand.cs # nd uninstall
โ โ โโโ UpdateCommand.cs # nd update
โ โ โโโ PackageServerCommand.cs # nd nd-package-server
โ โ โโโ NgCommand.cs # All tool wrappers
โ โโโ Models/
โ โ โโโ NoundryConfig.cs # noundry.json model
โ โโโ Services/
โ โ โโโ ConfigService.cs # Configuration management
โ โ โโโ ProcessRunner.cs # Process execution
โ โ โโโ ToolRegistry.cs # Tool mappings
โ โ โโโ ToolCommandExecutor.cs # Tool wrapper logic
โ โ โโโ Logger.cs # Logging service
โ โโโ Program.cs # CLI setup
โ โโโ Noundry.Cli.csproj # Project file
โโโ Noundry.Cli.Tests/
โ โโโ Models/
โ โ โโโ NoundryConfigTests.cs # Config validation tests
โ โโโ Services/
โ โ โโโ ToolRegistryTests.cs # Registry tests
โ โ โโโ LoggerTests.cs # Logger tests
โ โโโ Noundry.Cli.Tests.csproj # Test project
โโโ .github/workflows/
โ โโโ ci.yml # CI pipeline
โ โโโ release.yml # Release pipeline
โโโ README.md
โโโ CHANGELOG.md
โโโ CONTRIBUTING.md
โโโ SECURITY.md
โโโ LICENSE
Generated Files:
โโโ bin/Release/
โ โโโ Noundry.Cli.1.1.0.nupkg # NuGet package
โโโ noundry.json # Project configuration (generated by nd init)
Requirements
- .NET 9.0 SDK or later
- Windows, macOS, or Linux
- Internet connection (for installing tools from NuGet)
Troubleshooting
Tool Not Found After Installation
If a tool is not found after installation, you may need to restart your terminal or add the .NET tools directory to your PATH:
Windows:
$env:PATH += ";$env:USERPROFILE\.dotnet\tools"
Linux/macOS:
export PATH="$PATH:$HOME/.dotnet/tools"
Permission Denied
If you get permission errors when installing tools, ensure you have write access to the global tools directory:
Windows: %USERPROFILE%\.dotnet\tools
Linux/macOS: ~/.dotnet/tools
NuGet Package Server Issues
If you're having trouble accessing packages.noundry.com:
- Verify your API key is correct
- Check internet connectivity
- Try removing and re-adding the source:
dotnet nuget remove source noundry
nd nd-package-server --apikey YOUR_API_KEY
Build Errors
If the project doesn't build:
Ensure you have .NET 9.0 SDK installed:
dotnet --versionClean and rebuild:
nd dn clean nd dn build
Contributing
Contributions are welcome! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
MIT License - see LICENSE file for details.
Support
- Issues: https://github.com/noundry/nd-cli/issues
- Documentation: https://noundry.com/docs/nd-cli
- Email: support@noundry.com
Acknowledgments
Built with:
- Spectre.Console - Beautiful console UI
- Spectre.Console.Cli - Command-line framework
- .NET 9.0 - Application framework
Made with โค๏ธ by the Noundry team
For more information, visit noundry.com
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.5.0 Current | 0 | 12/30/2025 |
Info
- Last updated 26 days ago
- License
- Download package
Statistics
- Total Downloads
- 0
- Current Version Downloads
- 0
Authors
Noundry