Skip to content

InSpectra compatibility: Uno.Check 1.35.0-dev.10 - CLI introspection not available #519

@JKamsker

Description

@JKamsker

Hi there!

I'm Jonas, the developer of InSpectra - an OpenCLI visualizer for .NET CLI tools, much like SwaggerUI or ReDoc but for command-line interfaces instead of REST APIs. You can see it in action at inspectra.kamsker.at, which includes a NuGet tool browser powered by an index I built.

To populate that index, I run InSpectra-Discovery - an automated pipeline that indexes every Spectre.Console.Cli tool published on NuGet. The pipeline installs each tool and invokes two introspection subcommands to extract the command tree:

uno-check cli opencli
uno-check cli xmldoc

These commands are part of the OpenCLI spec - a lightweight introspection contract that Spectre.Console.Cli tools can opt into so their command surface becomes machine-readable.

What happened

While indexing Uno.Check 1.35.0-dev.10, the pipeline was unable to extract your tool's command metadata. The introspection commands are not recognized by your tool.

The command uno-check cli opencli failed with:

Error: Unknown command 'cli'.
       check cli opencli
             ^^^ No such command

It looks like your tool rewrites unknown first arguments to the default command (e.g., cli becomes check cli), so the introspection subcommands are never dispatched.

What would help

Adding support for cli xmldoc (that alone is enough - we can synthesize the rest from it) would let InSpectra include your tool in the index and make it discoverable to other developers.

Your project currently references Spectre.Console.Cli 0.50.0. The cli xmldoc command has been a built-in hidden command in Spectre.Console since its very early days (December 2020), and cli opencli was added in v0.52.0. Upgrading to the latest Spectre.Console.Cli should give you both commands out of the box - no code changes needed.

This is entirely optional - your CLI works fine on its own. This is about compatibility with InSpectra's indexing, not a bug in your tool.

PS: I'm working on a GitHub Action to auto-generate purpose-built InSpectra pages for your repo, like this: Example If you're interested, you can find the exact commands buried in my CI, or come back in a few days when I have the easy documentation ready.

Links

Thanks for your time!

- Jonas

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions