MiniPad

A C# scratchpad for Windows, in the spirit of LINQPad. Type a few lines (or a whole program), press F5, and see the result in a tree you can expand. It has a real editor with completion and live squiggles, NuGet packages through #r "nuget: ...", typed database connections (SQLite and SQL Server), and a Dump() that shows objects as tables and trees. Scripts run in a separate process, so a crash or an endless loop never takes the editor with it.

When a script grows up, Export turns it into a normal .NET project, or Build app makes a single exe. A minipad command-line tool runs, exports and builds scripts from a terminal, and an MCP server lets an AI agent such as Claude Code run and check scripts for you.

Install

Run in PowerShell:

irm https://shakytext.com/minipad/install.ps1 | iex

That downloads MiniPad, checks every file against its SHA-256, installs it for your user only (%USERPROFILE%\MiniPad, no administrator rights) and adds a Start menu shortcut. Re-run the same line any time to update; it says so when you are already on the newest build. MiniPad also checks once a day and offers an Update now button. Your scripts, history and settings (%USERPROFILE%\.minipad) are never touched, not even when you uninstall.

Requires the .NET 10 SDK. MiniPad compiles your scripts against the SDK's reference assemblies, so the runtime alone is not enough. Get it from dotnet.microsoft.com/download/dotnet/10.0 or run winget install Microsoft.DotNet.SDK.10. The installer checks for it and tells you if it is missing; it never installs the SDK for you. Without the SDK MiniPad still starts, but running scripts is disabled and says why.

The install script is plain text you can read first: install.ps1. It has no installer program for SmartScreen to complain about. To use the minipad command in a terminal, download the script and run it with -AddToPath; -Uninstall removes everything it installed and puts your PATH back exactly as it was.

License

MiniPad is free software under the MIT license.

The current build is described by version.json.