NetPrints.Cli
0.2.0
dotnet tool install --global NetPrints.Cli --version 0.2.0
dotnet new tool-manifest
dotnet tool install --local NetPrints.Cli --version 0.2.0
#tool dotnet:?package=NetPrints.Cli&version=0.2.0
nuke :add-package NetPrints.Cli --version 0.2.0

NetPrints is a visual, node-based programming language for .NET, in the spirit of Unreal Engine's Blueprints. You wire up nodes instead of writing C# by hand, and NetPrints compiles the graph into a .NET binary or into C# source you can read, keep and build on. Any .NET assembly — Framework, Core or Standard — can be referenced and used from a graph, so the goal is: if it's made in C#, you can call it from NetPrints.
This fork continues the original NetPrints by Robin Kahlow (WPF, Windows-only) as a cross-platform, Linux-first rewrite on Avalonia: the same editor and language on Linux, Windows and macOS, on the current .NET 10, with an automated test suite (headless UI tests plus end-to-end tests against the real desktop app) instead of manual verification.

Install
| Editor | Download a build from the latest release for Linux, Windows or macOS and unpack it. Requires the .NET 10 SDK to open and build projects. Builds are unsigned — see the install guide for the SmartScreen/Open Anyway steps and checksum verification. |
| Command-line tool | dotnet tool install -g NetPrints.Cli, then netprints build MyApp.csproj or netprints run MyApp.csproj |
| In a project | dotnet add package NetPrints.Sdk |
See the full install guide for details on each route, the SDK/runtime requirement, and verifying an unsigned build.
Using the editor
Add references from References → Add Assembly: any NuGet package installed to
~/.nuget/packages (or %UserProfile%/.nuget/packages on Windows) works, and its documentation
shows up as tooltips in the node search. You can also add a C# source directory, either for
reflection only (handy for using NetPrints inside Unity against your existing scripts) or compiled
straight into the output.
Ship nodes with your library
Annotations are optional. Any library works in NetPrints without them; the editor reads its public API directly. If you want to choose which members become nodes and ship a curated catalog inside your library, add the NetPrints.Annotations package (PrivateAssets="all") and mark the public types and methods with [NetPrintsType] and [NetPrintsNode] attributes. The Roslyn generator embeds the catalog as an assembly attribute, which the editor reads from any referenced assembly. See the Annotations guide for details.
Guides
- Projects — the
.csprojproject model, theNetPrints.Sdkpackage and the committed generated code. - Graph file format — the
*.netpc.jsonformat, version control and what a diff looks like. - Extensions — loading extensions, environment variables, and writing your own.
- Type catalogs — the
netprints catalogtool, profiles, and contributing a catalog from an extension.
Project layout
| Path | Contents |
|---|---|
src/NetPrints.Core |
The node graph model, C# translation and Roslyn compilation. No UI. |
src/NetPrints.Reflection |
UI-free type reflection used by the editor. |
src/NetPrints.Editor |
The Avalonia 12 editor library: views, view models, services. |
src/NetPrints.Desktop |
The desktop application hosting the editor. |
src/NetPrints.Cli |
The command-line compiler. |
src/NetPrints.Extensibility |
Plugin system, extension manifests, and extension loader. |
src/NetPrints.Generation |
Code generation for graphs to C#. |
src/NetPrints.Generator |
The generator executable invoked by the SDK build target. |
src/NetPrints.Serialization |
Graph serialization and deserialization. |
src/NetPrints.Workspace |
Project workspace and graph file management. |
src/NetPrints.Sdk |
The NuGet SDK package for integrating NetPrints into .NET projects. |
tests/ |
NetPrints.Core.Tests, NetPrints.Editor.Tests and NetPrints.Editor.UITests (xUnit v3 on Microsoft.Testing.Platform; the UI tests are headless Avalonia), NetPrints.Desktop.E2ETests (real editor over X11) and NetPrints.Testing.Ui (shared page objects). |
samples/ |
Sample .csproj/.netpc.json projects (FR-010) used as test fixtures and quick-start material. |
legacy/NetPrintsVSIX |
The old Visual Studio extension, kept for reference. Not built, not tested, not in the solution (see its README). |
specs/, docs/, .specify/ |
Spec Kit feature specs, research notes and architecture decision records (docs/adr). |
Every src//tests/ project targets net10.0. Package versions are centrally managed in
Directory.Packages.props; shared build settings are in
Directory.Build.props (and the src//tests/-scoped copies). The
CI workflow builds, format-checks, tests and runs the E2E suite on
pushes and pull requests to master.
Status and roadmap
Under active, phased modernization — see
.specify/memory/roadmap.md for what's shipped and what's next.
The Avalonia editor rebuild (P0) and its GPU/CPU grid rendering (P0.1) are merged; a catalog/CLI
redesign and editor usability are the phases ahead.
Contributing
Building from source needs the .NET 10 SDK (10.0.100 or
later — global.json rolls forward to newer feature bands). Build and test (no display server
needed; --ignore-exit-code 8 only suppresses the desktop E2E project's "zero tests" exit, since it
runs zero tests with NETPRINTS_E2E unset. CI doesn't apply this flag to the whole solution: it
runs the desktop E2E project as its own step with the flag, and every other test project without it,
so a real zero-tests regression elsewhere still fails the job):
dotnet build NetPrints.slnx -c Release
dotnet test --solution NetPrints.slnx -c Release --no-build -- --ignore-exit-code 8
See specs/001-modernize-build/quickstart.md for the
full walkthrough (running the editor, the CLI, the desktop E2E suite, snapshot baselines, CI
artifacts, troubleshooting), CONTRIBUTING.md for the Spec Kit workflow, agent
rules, PR process and test conventions, and
docs/contributing/releasing.md for the local package feed and
release process. Bug reports and feature ideas are welcome as issues.
Credits and license
Originally created by Robin Kahlow
(RobinKa/netprints). The 0.0.7 WPF editor release is
archived here; see also the
overview,
use cases and
hello-world video from the original project, and the
Unity tutorial.
Licensed under the MIT License, Copyright (c) 2018 Robin Kahlow.
| Product | Versions 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. |
This package has no dependencies.