CSheader 0.1.0

dotnet tool install --global CSheader --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local CSheader --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=CSheader&version=0.1.0
                    
nuke :add-package CSheader --version 0.1.0
                    

CSheader

Header-like documentation generation for c# projects

Description

Generate header-like documentation/api reference for C# projects. CSheader produces an equivalent to a c-like header file including all public types and members of a c# project to allow for easy to use api exploration.

Most documentation generation tools are focused on the production of heavy docs, which are hard to set up, and usually require extra infraestructure to host the results. While there is nothing wrong with that approach, it is too much work for individual developers or small teams that just want better tooling to explore a project, or want a quick reference for the surface usage.

In the C world, header files serve a double purpose of helping the compiler to know the definition of functions and types of a library, while at the same time being a form of compact documentation. For a lot of libraries it is possible to explore an API by the heather file, since it includes the types and signatures, along with comments that describe what they are and how to use them. In C#, we have all the tools to generate this kind of lightweight documentation, and is easy to access programmatically via the Roslyn platform and IDEs; but still most of the times we are missing a way to quickly explore what is really exposed by a project

Usage

csheader <path to csproj> [<output file>]

If no output file is specified, it will print on the standard output

Installation

This will soon be available via nuget and dotnet tool. Until then, compile from source.

Future work

  • Explore/include related projects
  • Parse csproj to look for excluded cs files
  • Subcommand to generate the documentation for nuget packages (this would allow to get a header for a project that is being used, instead of requiring local source)
  • Namespace filtering

License

CSheader is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows the usage in close-source and commercial projects. Attribution is appreciated but not required. Check LICENSE for more details.

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.

This package has no dependencies.

Version Downloads Last Updated
0.1.0 101 4/13/2026