Lucid Programming
Lucid Programming

Write C# without the braces

ICS — Indentation-based C# Syntax — is a brace-free view of your code for Visual Studio Code and Visual Studio. Indentation carries the structure that braces used to. The files on disk stay ordinary C#.

Install for VS Code Install for Visual Studio See how it works

VS Code 1.100 or later: the needed .NET 10 runtime is installed automatically on first use.
Visual Studio 2022 or 2026 on Windows x64: the converter and runtime are included.

The same file, two views

Your C# is still C#

The live ICS view is a projection of a .cs file: edit it and apply it back without creating an .ics sidecar in your project or embedding metadata. Local recovery copies are stored separately in the extension's data folder.

InvoiceService.cson disk — 24 lines
namespace Billing;

public class InvoiceService
{
    private readonly IClock clock;

    public decimal Total(IEnumerable<Line> lines)
    {
        decimal total = 0m;
        foreach (var line in lines)
        {
            if (line.Taxable)
            {
                total += line.Amount * 1.2m;
            }
            else
            {
                total += line.Amount;
            }
        }

        return total;
    }
}
InvoiceService.icswhat you edit — 14 lines
namespace Billing

public class InvoiceService
    private readonly IClock clock

    public decimal Total(IEnumerable<Line> lines)
        decimal total = 0m
        foreach (var line in lines)
            if (line.Taxable)
                total += line.Amount * 1.2m
            else
                total += line.Amount

        return total

Ten lines disappear, and every one of them was a brace. Optional punctuation goes with them. Stripping parentheses from conditions and collapsing property accessors are separate settings, off by default.

Built to be trusted with your source

It refuses to lose your code

Round-trips exactly

An unchanged preview returns the original C# precisely. No metadata is embedded in ICS and no sidecar files are written.

Rejects lossy edits

Rather than applying a conversion that would drop meaningful code or comments, the extension refuses the edit and tells you why.

Notices outside changes

Saves detect edits made elsewhere, and converter recovery preserves unsaved buffers instead of discarding them.

Your language features still work

Hover, go to definition, find references, completion, semantic highlighting, and code lenses operate on the ICS view.

Problems panel integration

ICS parse errors and Roslyn diagnostics from the generated C# appear where you already look for them.

Format on your terms

The standard Format Document shortcut canonicalizes ICS through the converter, so shared files stay consistent.

Pricing

Free to use. Pro when ICS becomes how you work.

Everything needed to read, edit, and convert C# through ICS is free. Pro removes the remaining seams for people who want ICS to be the editor, not a preview.

Free

$0 — no licence needed

For trying ICS, and for using it file by file.

  • Open any C# file as an editable ICS view
  • Live pairing — type on either side and the other updates, in both directions
  • Apply your ICS edits back to the C# file
  • Sync .ics files to C# on demand
  • Export a standalone .ics file
  • Format and canonicalize ICS documents
  • Diagnostics in the Problems panel
  • Every conversion option, including brace and parenthesis removal

ICS Pro

$29 while ICS is in preview — $49 at 1.0

For working in ICS all day, on every file.

  • ICS-only mode — C# editors are replaced entirely by ICS views
  • Auto-save — paired C# is written after each successful update
  • Sync on save — .ics files convert to C# whenever you save
  • Eight activations — for one person, with self-service release and transfer

Buy once

A licence covers ICS Pro 1.x. Every 1.x update is free, forever. Version 2.0 will be a paid upgrade, at half price for existing customers.

New C# versions

When a new version of C# ships, ICS supports it within 90 days: your code converts in both directions without losing anything. In the unlikely event that features are added with no indentation-based form they will be preserved as ordinary C#.

One person, eight activations

A licence is for one person, with eight activations — enough for several machines, in more than one editor. Each editor on a machine uses one activation. Release one yourself at any time with ICS: Deactivate License — no need to ask us.

30-day refund

If ICS is not for you, ask within 30 days and we refund it. No questions.

Privacy

Your source never leaves your machine

The ICS converter contains no networking code at all. Not a policy — a property of the build. Conversion, parsing, and diagnostics happen entirely on your computer.

ICS itself makes network requests to exactly one destination, api.lemonsqueezy.com, and only to activate, validate, or release an ICS Pro licence. No source code, file names, or paths are transmitted, ever. There is no analytics or usage telemetry.

In VS Code, the .NET runtime the converter needs is installed by Microsoft's .NET Install Tool extension, which contacts Microsoft to download and update it. ICS passes it only the runtime version to fetch and the ICS extension ID — never your code, file names, paths, or licence details. The Visual Studio extension includes the converter and runtime in its installation package.

Error reports are never sent automatically. When something fails, the diagnostic opens in a local editor for you to read and edit. It is never placed in a URL. Only if you choose to copy it and open the issue form does anything leave your machine.

You can verify all of this: watch the traffic, or decompile the converter and look for the network stack that isn't there.