TimeWarp.Nuru.Telemetry 3.0.0-beta.20

Prefix Reserved
This is a prerelease version of TimeWarp.Nuru.Telemetry.
dotnet add package TimeWarp.Nuru.Telemetry --version 3.0.0-beta.20
                    
NuGet\Install-Package TimeWarp.Nuru.Telemetry -Version 3.0.0-beta.20
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TimeWarp.Nuru.Telemetry" Version="3.0.0-beta.20" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TimeWarp.Nuru.Telemetry" Version="3.0.0-beta.20" />
                    
Directory.Packages.props
<PackageReference Include="TimeWarp.Nuru.Telemetry" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TimeWarp.Nuru.Telemetry --version 3.0.0-beta.20
                    
#r "nuget: TimeWarp.Nuru.Telemetry, 3.0.0-beta.20"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TimeWarp.Nuru.Telemetry@3.0.0-beta.20
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TimeWarp.Nuru.Telemetry&version=3.0.0-beta.20&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=TimeWarp.Nuru.Telemetry&version=3.0.0-beta.20&prerelease
                    
Install as a Cake Tool

TimeWarp.Nuru

<div align="center">

NuGet Version NuGet Downloads Build Status License

Route-based CLI framework for .NET - bringing web-style routing to command-line applications

</div>

Nuru means "light" in Swahili - illuminating the path to your commands with clarity and simplicity.

📦 Installation

dotnet add package TimeWarp.Nuru

🚀 Quick Start

using TimeWarp.Nuru;

NuruCoreApp app = NuruApp.CreateBuilder(args)
  .Map("add {x:double} {y:double}", (double x, double y) =>
    Console.WriteLine($"{x} + {y} = {x + y}"))
  .Build();

return await app.RunAsync(args);

Slim Builder (Lightweight)

using TimeWarp.Nuru;

NuruCoreApp app = NuruApp.CreateSlimBuilder()
  .Map("add {x:double} {y:double}", (double x, double y) =>
    Console.WriteLine($"{x} + {y} = {x + y}"))
  .Build();

return await app.RunAsync(args);

Empty Builder (Total Control)

using TimeWarp.Nuru;

NuruCoreApp app = NuruApp.CreateEmptyBuilder()
  .Map("add {x:double} {y:double}", (double x, double y) =>
    Console.WriteLine($"{x} + {y} = {x + y}"))
  .Build();

return await app.RunAsync(args);
dotnet run -- add 15 25
# Output: 15 + 25 = 40

Full Getting Started Guide

Choose Your Builder

Builder Use Case Features
NuruApp.CreateBuilder(args) Full-featured apps DI, Config, Mediator, REPL, Completion
NuruApp.CreateSlimBuilder() Lightweight tools Auto-help, Logging infra, AOT-friendly
NuruApp.CreateEmptyBuilder() Total control Type converters only, fully AOT

✨ Key Features

Feature Description Learn More
🎯 Web-Style Routing Familiar "deploy {env} --version {tag}" syntax Routing Guide
Dual Approach Mix Direct (fast) + Mediator (structured) Architecture Choices
🛡️ Roslyn Analyzer Catch route errors at compile-time Analyzer Docs
⌨️ Shell Completion Tab completion for bash, zsh, PowerShell, fish Shell Completion
🤖 MCP Server AI-assisted development with Claude MCP Server Guide
📊 Logging Package Zero-overhead structured logging Logging Docs
🚀 Native AOT Zero warnings, 3.3 MB binaries, instant startup Deployment Guide
🔒 Type-Safe Parameters Automatic type conversion and validation Supported Types
📖 Auto-Help Generate help from route patterns Auto-Help Feature
🎨 Colored Output Fluent ANSI colors without Spectre.Console Terminal Abstractions

📚 Documentation

Getting Started

Core Features

Tools & Deployment

Reference

🎯 Two Powerful Use Cases

🆕 Greenfield CLI Applications

Build modern command-line tools from scratch:

NuruCoreApp app = new NuruAppBuilder()
  .Map
  (
    "deploy {env} --version {tag?}",
    (string env, string? tag) => Deploy(env, tag)
  )
  .Map
  (
    "backup {source} {dest?} --compress",
    (string source, string? dest, bool compress) => Backup(source, dest, compress)
  )
  .Build();

🔄 Progressive Enhancement

Wrap existing CLIs to add auth, logging, or validation:

NuruCoreApp app = new NuruAppBuilder()
  .Map
  (
    "deploy prod",
    async () =>
    {
      if (!await ValidateAccess()) return 1;
      return await Shell.ExecuteAsync("existing-cli", "deploy", "prod");
    }
  )
  .Map
  (
    "{*args}",
    async (string[] args) => await Shell.ExecuteAsync("existing-cli", args)
  )
  .Build();

Detailed Use Cases with Examples

🌟 Working Examples

Calculator Samples - Four complete implementations you can run now:

./samples/calculator/calc-mixed.cs add 10 20        # Direct: fast
./samples/calculator/calc-mixed.cs factorial 5      # Mediator: structured

AOT Example - Native AOT compilation with source generators

Cocona Comparison - Migration guides from Cocona

⚡ Performance

Implementation Memory Speed (37 tests) Binary Size
Direct (JIT) ~4 KB 2.49s N/A
Direct (AOT) ~4 KB 0.30s 🚀 3.3 MB
Mediator (AOT) Moderate 0.42s 🚀 4.8 MB

Native AOT is 88-93% faster than JITFull Performance Benchmarks

🤖 AI-Powered Development

Install the MCP server for AI assistance:

dotnet tool install --global TimeWarp.Nuru.Mcp

Get instant help in Claude Code, Roo Code, or Continue:

  • Validate route patterns before writing code
  • Generate handler code automatically
  • Get syntax examples on demand
  • Real-time error guidance

MCP Server Setup Guide

⌨️ Shell Completion

Enable tab completion for your CLI with one line of code:

NuruCoreApp app = new NuruAppBuilder()
  .Map("deploy {env} --version {tag}", (string env, string tag) => Deploy(env, tag))
  .Map("status", () => ShowStatus())
  .EnableStaticCompletion()  // ← Add this
  .Build();

Generate completion scripts for your shell:

# Bash
./myapp --generate-completion bash >> ~/.bashrc

# Zsh
./myapp --generate-completion zsh >> ~/.zshrc

# PowerShell
./myapp --generate-completion powershell >> $PROFILE

# Fish
./myapp --generate-completion fish > ~/.config/fish/completions/myapp.fish

Supports:

  • ✅ Command completion (deploy, status)
  • ✅ Option completion (--version, --force)
  • ✅ Short option aliases (-v, -f)
  • ✅ All 4 major shells (bash, zsh, PowerShell, fish)

See shell-completion-example for a complete working example.

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for details.

For Contributors:

📄 License

This project is licensed under the Unlicense - see the license file for details.


<div align="center">

Ready to build powerful CLI applications?

Get Started in 5 MinutesView ExamplesRead the Docs

</div>

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on TimeWarp.Nuru.Telemetry:

Package Downloads
TimeWarp.Nuru

Route-based CLI framework for .NET - batteries included with telemetry, REPL, and shell completion

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0-beta.20 39 12/12/2025
3.0.0-beta.19 271 12/10/2025
3.0.0-beta.18 268 12/9/2025
3.0.0-beta.17 278 12/9/2025
3.0.0-beta.15 478 12/8/2025
3.0.0-beta.14 246 12/8/2025
3.0.0-beta.13 241 12/7/2025
3.0.0-beta.12 666 12/2/2025
3.0.0-beta.11 610 12/2/2025
3.0.0-beta.10 610 12/2/2025
3.0.0-beta.9 585 12/1/2025
3.0.0-beta.8 292 11/30/2025