If you like NetPad, please star the repo ⭐ and consider sponsoring FOSS!
This release brings performance improvements, a major CLI update, new features for managing data
connections, and a large number of bug fixes and stability improvements.
🎯 A special thanks to @antonkesy and @wuuer for their contributions in this release.
What's New 🚀
Database Server Connections
You can now add a database server to the connections list and select one or more databases from that
server. All databases under a server share the same connection and scaffolding options, so you only
configure things once. Server connections are supported for SQL Server, PostgreSQL, MySQL, and
MariaDB.
Script Performance Improvements
Script startup and re-run speed was improved:
- Compilation results are cached so unchanged re-runs skip compilation entirely.
- Nuget dependency graphs and script dependencies are cached so resolution only occurs when needed.
- Framework assembly dependency cache is pre-warmed on a background thread at startup.
- Other similar optimizations for quicker re-runs.
.NET SDK Detection Improvements
NetPad now discovers all valid .NET installations on your system (user settings, environment
variables, user-level, system-level, PATH) and aggregates SDKs and runtimes from each. Previously,
only the first valid installation was used. When running a script, the correct dotnet executable
is resolved based on which installation contains the target framework's SDK.
User Interface
- Statusbar background color now changes to indicate script status (running, error, etc.), with
unified status colors throughout the app.
- A context menu was added to the scripts explorer sidebar.
- Added separators between editor tabs and added tree nesting indicators in the explorer pane for
better visual hierarchy.
- When text is selected in the editor, the statusbar now shows the number of selected chars (or
lines).
- Style run/stop buttons with colored tints and flatten save/properties to icon buttons.
- Change open folder icons in scripts explorer to blue to indicate expanded state.
- Increase global border-radius for a softer look across all components.
- Better background colors for input controls.
- Add toolbar dividers to group action icons where needed.
- Reduced prominence of toolbar labels (SDK, Kind, etc.) for a cleaner look.
- Add more contrast to pane toolbar background.
- Switch package reference buttons to outline style for less visual noise.
- Window size and position are now remembered across Tauri app restarts (#370).
[!NOTE]
The Styling page of the wiki is updated with the latest styles if you want to override anything.
OmniSharp / IntelliSense
OmniSharp stability was improved:
- Requests to OmniSharp are queued and wait for OmniSharp to finish its internal initialization to
prevent broken language server features when typing in scripts before OmniSharp is finished
loading.
- OmniSharp now detects process crashes and auto-restarts.
NetPad CLI (npad) v0.2.0
The CLI tool received a major update with many new commands and usability improvements. See
the CLI wiki for more info and usage details.
New commands:
- new: Create .netpad scripts or plain .cs files with options for kind, SDK, connection,
and more
- show: Inspect a script's metadata and source code (renamed from cat, BREAKING CHANGE)
- logs show/tail/rm/clear: View, follow, and manage log files
- settings show/edit: View settings as a table or JSON, or open in default editor
New features:
- run is now the default command: npad myscript works without typing run
- Stdin piping: echo 'Console.WriteLine("hi")' | npad
- --eval (renamed from --code): Run inline C# from the command line, BREAKING CHANGE
- --format json: NDJSON output for piping to jq and other tools
- --kind option on run: Override a script's kind at runtime
- Interactive script picker: Prompts for selection when multiple scripts match
- Script exit codes: Propagates meaningful exit codes (0=success, 1=runtime failure,
2=compilation failure, 130=cancelled)
- Short aliases: -e, -s, -c, -O, -b, -f, -m, -v, -k and command aliases (
ls, log)
- Various TUI improvements and fixes
Install or update via:
dotnet tool install -g netpad.cli
dotnet tool update -g netpad.cli
Coming Soon: NetPad MCP Server
A Model Context Protocol (MCP) server for NetPad is in the works and nearly complete. It will let AI
assistants (like Claude Code) and other MCP clients to create, run, and manage scripts directly
through NetPad. Stay tuned!
Build & Release
- Added Linux ARM64 and Windows ARM64 builds for both Electron and Tauri.
- Support for alpha/beta pre-release version names in app update checks.
- Unified release workflow: a single release.yml replaces the old pack-electron.yml and
pack-tauri.yml with support for alpha/beta pre-releases.
Fixes 🐛
- Fix The filename, directory name, or volume label syntax is incorrect error (#390). Thanks to
@wuuer.
- Fix NuGet dependency resolution issues including native library resolution (#350).
- Fix script counts in the explorer sidebar.
- Fix using scale for precision in database structure column details.
- Fix OmniSharp bugs related to changing a script's SDK and finding installed SDK locations.
- Fix script-host not loading the correct SDK in release builds.
- Fix multiple NetPad instances sharing temp directories causing IOExceptions: temp directories are
now scoped per process.
- Fix .NET backend not stopping gracefully on Windows when using the Tauri app.
- Fix memory leaks and race conditions in several areas.
- Fix duplicate script save overwriting existing scripts in web shell.
- Fix unrelated script runs to serialize against each other.
Support ❤️
If you find NetPad useful, please consider sponsoring the project to help keep it free and
open-source! And if you haven't already, a ⭐ on the repo is always appreciated, thank you!
A special thanks to all my sponsors. Your support is greatly appreciated and helps keep this
project growing!
New Contributors
- @antonkesy made their first contribution in https://github.com/tareqimbasher/NetPad/pull/414
- @wuuer made their first contribution in https://github.com/tareqimbasher/NetPad/pull/390
Full Changelog: https://github.com/tareqimbasher/NetPad/compare/v0.11.0...v0.12.0