Diagnosing a Wolverine Application from the Command Line

Wolverine is a configuration-heavy framework. Conventions, policies, middleware, transports, and explicit routing all layer together, which is powerful — but it can leave you asking “what is my app actually doing?” This tutorial is a guided tour of the command-line tools Wolverine gives you to answer exactly that, roughly in the order you’d reach for them when something looks off.

For the exhaustive flag-by-flag reference, see the Command Line Integration and Diagnostics guides. This page is the walkthrough.

Opt Into the Command Line

Every command below rides on the JasperFx command-line integration. You opt in with a single line at the bottom of Program.cs:

// Opt into JasperFx for command line parsing to unlock the built in
// diagnostics and utility tools within your Wolverine application
return await app.RunJasperFxCommands(args);

From your project root, list what’s available:

dotnet run -- help

::: tip The metadata commands — describe, codegen, codegen-preview, describe-routing, and OpenAPI generation — run without a live database or message broker. Wolverine detects “CLI metadata mode” and stubs out persistence and transports, so these are safe to run in CI or on a laptop with no infrastructure. :::

Step 1: Get the Big Picture with describe

When in doubt, start here:

dotnet run -- describe

describe prints a series of tabular reports about the running configuration:

  • Wolverine Options — the basics, including which assembly Wolverine thinks is your application assembly and which extensions loaded
  • Listeners — every configured listening endpoint and local queue, with how each is configured
  • Message Routing — where known, published message types are routed
  • Sending Endpoints — configured endpoints that send messages externally
  • Error Handling — a preview of the active message-failure policies
  • HTTP Endpoints — all Wolverine HTTP endpoints (only when WolverineFx.Http is in use)

This is also the report the Wolverine team will most often ask you to paste when you need help.

Step 2: See the Code Wolverine Generates

Wolverine generates the adapter code around your handlers and HTTP endpoints at startup. When you want to see it — what middleware ran, how dependencies resolve, where transactions wrap — write it out or preview it: