MiniSharp · the whole C# toolchain in your tab

A C# compiler that runs in a browser tab.

MiniSharp compiles C# straight to WebAssembly — and the compiler itself is WASM, so the entire toolchain runs client-side. No .NET SDK, no Visual Studio, no server. Written from scratch: C# → IR → WASM. Zero dependencies.

Runs offline as a PWA Async / Task seed runtime Download a real .wasm
minisharp.run/studio
12345678
using System;class Program { static void Main() { var primes = Sieve(40); Console.WriteLine($"Found {primes.Count} primes"); }}// compiled in-tab → PrimeApp.wasm
OUTPUT — minisharp run
$ minisharp run › building C# → IR → WASM … Found 12 primes exit 0 · 38 ms

One tab. No toolchain to install.

0 dependencies no LLVM · no Roslyn 100% in-browser C# → IR → WASM async Task seeds downloadable .wasm
0
third-party dependencies
100%
runs client-side
no LLVM
no Roslyn, no .NET SDK
WASM
direct C# → IR → WASM
Built from scratch

A full C# toolchain, with nothing to install.

Lexer, parser, semantic analysis, an SSA-style IR and a direct IR-to-WASM backend — all hand-written, all shipped as one WebAssembly module that boots in your browser.

Direct IR → WASM

C# lowers to a compact IR and straight to WebAssembly bytecode. No LLVM, no Roslyn, no native toolchain in the loop.

Run + Output console

Hit Run and the program executes in-tab. Console.WriteLine streams to a live output console — no round-trip to a server.

⌘K command palette

Open files, run builds, inspect output, export .wasm — everything is a keystroke away in a Geist-clean palette.

Solution Explorer

Multi-file C# projects with a real tree — .cs source, project metadata and the built .wasm output, side by side.

Offline-first PWA

Install MiniSharp Studio to your dock. It works on a plane, in a tunnel, anywhere — because your machine never needed the network to begin with.

Export real .wasm

Every build produces a standalone WebAssembly module you can download and run anywhere a WASM runtime lives — Node, Wasmtime, the edge.

The compiler, end to end

From .cs to .wasm — every stage hand-written.

.cs
C# source
Lexer
tokens
Parser
AST
Sema
types · binding
IR
SSA-style
WASM
codegen
.wasm
download & run
No LLVM. No Roslyn. No .NET SDK. No third-party deps — and the compiler that does all of this is itself WASM.
Questions

The honest details.

Does my code go to a server to compile?
No. The MiniSharp compiler is itself compiled to WebAssembly and loaded into your tab. Lexing, parsing, semantic analysis, IR and WASM codegen all happen on your machine. Nothing is uploaded — close the tab and it's gone.
What do I need to install?
A browser. No .NET SDK, no Visual Studio, no Node. You can optionally install Studio as a PWA so it lives in your dock and works fully offline.
Does it use LLVM, Roslyn, or any .NET internals?
No. MiniSharp is written from scratch with zero third-party dependencies. The backend emits WebAssembly directly from its own IR — there is no LLVM and no Roslyn anywhere in the pipeline.
How much of C# does it support?
A large subset of modern C# (ECMA-334): classes, methods, generics, collections, string interpolation, control flow and more. It's a focused subset — not the entire BCL — and it grows steadily. The Studio shows exactly what compiles as you type.
Can I use the .wasm it produces elsewhere?
Yes. Each build emits a standalone WebAssembly module you can download and run in any WASM runtime — the browser, Node, Wasmtime, or an edge function.

Open the Studio. Compile C# in a tab.

No SDK. No server. No install. Write C#, hit Run, and download a real .wasm when you're done.