On this page
If you live in solutions, project files and dotnet watch, DevWorkspace Pro gives you one window for all of it on macOS, Windows or Linux. Like every project, your .NET code gets the full set of core features. On top of that, the app understands .NET: it detects solutions, creates projects with dotnet new, builds a Run card from your solution and checks your NuGet packages for known vulnerabilities with the dotnet CLI.
Core features every project gets
- Files editor, ⌘+P (Ctrl+P on Windows) and project search
- Git Changes, GitHub issues and Actions, and Send to AI
- AI sessions with resume, and terminal tabs
- Focus Pad, the project switcher, uptime monitoring and Remote SSH
Extras for .NET
| Extra | What you get |
|---|---|
| Stack detection | A .NET badge from your solution and project files |
| Create flow | Five templates: Web API, MVC, Blazor, Console and Class library |
| Run card | Build, test, run and watch commands read from your solution |
| Security | A NuGet vulnerability scan in Health › Security |
| Runtimes | The .NET CLI (native) and Docker Compose services |
From new project to merged PR
Create or import
Click New Project, select .NET and choose a Template. In step 2, select .NET CLI; this step also shows your installed SDK version from dotnet --list-sdks. The app runs dotnet new <template> --name <Name> --output . with the name in PascalCase. The run command it saves is dotnet watch, except for Console (dotnet run) and Class library (dotnet build).
Already have a solution? Drop the folder on the window. A repository with src/Shop.Api/Shop.Api.csproj and no project file at the root is still found, because the app checks one subfolder level down.
Run
The Run card reads your .sln or .slnx and shows:
dotnet buildfor the solutiondotnet testwhen the solution has a test project (Microsoft.NET.Test.Sdk, xUnit v3, MSTest, TUnit orIsTestProject)- Run and Watch for each project that runs, such as an ASP.NET Core app, a worker or an Aspire AppHost
Class libraries and test projects get no run button. The card skips bin, obj and hidden folders, and it reads a file again only when that file changes.
Code with an AI agent
Press Ctrl+J on Windows and Linux, or ⌘+J on macOS, and describe the task. Something like "Add an endpoint that returns orders by customer, with an integration test" works well. Claude Code, Codex or OpenCode then starts in the solution folder. On Windows, use PowerShell 7 so the prompt reaches the tool directly.
Ship through GitHub
Commit from Git › Changes and push from the terminal. You can follow the dotnet test job in Git › Actions. If it fails, Send failure to AI passes the failed step and the end of its log to your agent.
.NET features in detail
NuGet vulnerability scan
Health › Security runs dotnet list <target> package --vulnerable --include-transitive --format json in the background. The target is your solution, or each project file when there is no solution. Advisories come from your NuGet sources (nuget.org by default), and the app adds titles and fixed versions from OSV.dev.
The scan runs again whenever a project or solution file changes. It needs the .NET 8 SDK or later. If a project is not restored yet, the tab tells you to run dotnet restore.
Run card without a solution
Solution projects are read from both the classic .sln format and the XML .slnx format. No solution at all? The card then shows Run, Watch, Test and Build for each project.
Notes that recognise C#
The Scratchpad tab is a per-project notes pad. Auto-detect spots C# from using directives, { get; set; } properties and Console.WriteLine calls, or you can set the language by hand.
Docker Compose
Select Docker Compose in step 2, or import a folder that has a compose.yaml. The Services card starts and stops SQL Server, PostgreSQL or any other service, and streams its logs.
Project search
Ctrl+Shift+F searches the whole project with match case, whole word and regular expressions. Files in .gitignore are skipped, so bin and obj never clutter the results.
Works with your existing setup
The app calls the dotnet and docker already on your computer, and it never changes your solution or project files. Keep Visual Studio, Rider or VS Code: IDE opens the project with your editor command. With Remote SSH you can also open a shell on your Linux deploy host straight from the project.
Other compiled stacks: /for/go and /for/rust. Docs: Projects, Dependency Security, Scratchpad, AI Sessions.
FAQ
Frequently asked questions
How does the app find a .NET project?
It looks for *.sln, *.slnx, *.csproj, *.fsproj, *.vbproj or global.json in the folder. If it finds none, it checks one level down, so a file such as src/Shop.Api.csproj still counts.
How does the NuGet vulnerability check work?
The app runs dotnet list package --vulnerable --include-transitive --format json on your solution, or on each project file when there is no solution. You need the .NET 8 SDK or later and restored projects. Titles and fixed versions come from OSV.dev.
Which commands does the Run card show for a solution?
dotnet build for the solution, dotnet test when it contains a test project, and dotnet run plus dotnet watch for each project that runs: a web app, worker, console app or Aspire host.
Is there a C# code runner?
No. In a .NET project, the Scratchpad tab is a notes pad. It detects C# so your snippets get syntax highlighting.