Local .NET compiler verification, change impact, and typed wiring for AI agents.
Faster .NET build and test loop for AI coding agents.
AI agents check their work by running dotnet build and dotnet test, often dozens of times in one task. Each run is slow and prints far more than the agent needs. With several subagents, the builds also use a lot of memory and fail on each other's locked files.
Fuse fixes that. It keeps your solution loaded in the background, and after each edit it tells the agent:
dotnet build at the median on four open-source repositoriesdotnet testRun fuse init once. After that, the agent's tool (Claude Code, Cursor, Codex and others) runs Fuse by itself.
Website | Documentation | Getting started | Benchmarks | Changelog
.cs files changed, the tests run without a rebuild.fuse init is the only setup.fuse build or fuse test --all. Limits lists them.| Harness | Integration |
|---|---|
| Claude Code | Hooks |
| Cursor | Hooks |
| Gemini CLI | Hooks |
| Codex | Hooks |
| GitHub Copilot CLI | Hooks |
| OpenCode | Plugin |
| Muse Code | Plugin bundle, which you install and approve once |
| VS Code agent mode | MCP server, since VS Code runs no hooks |
fuse init detects each one by its folder or file in the repository root and sets up Claude Code when it finds none. Connect your agent lists what it writes for each one.
dotnet restore on its owndotnet tool install -g Fuse
This puts fuse in ~/.dotnet/tools (%USERPROFILE%\.dotnet\tools on Windows). That folder must be on your PATH and your agent's.
In the root of your repository:
fuse init
wrote .claude/settings.json
wrote .gitignore
fuse: hooks registered; after each edit your agent gets the compiler errors the edit introduced, `dotnet test` runs the affected tests, and `dotnet build` prints only its errors
That is the whole setup. The agent now hears from Fuse only when an edit caused an error.
The commands print exactly what the agent receives, so you can try Fuse in a terminal. For example, after renaming Calc.Add in a library, fuse check lists the callers it broke in other projects:
$ fuse check
App/Program.cs(3,30): error CS1061: 'Calc' does not contain a definition for 'Add' and no accessible extension method 'Add' accepting a first argument of type 'Calc' could be found (are you missing a using directive or an assembly reference?)
removed: public int Add(int a, int b)
Lib.Tests/CalcTests.cs(6,54): error CS1061: 'Calc' does not contain a definition for 'Add' and no accessible extension method 'Add' accepting a first argument of type 'Calc' could be found (are you missing a using directive or an assembly reference?)
removed: public int Add(int a, int b)
fuse: 2 error(s) introduced in 2 file(s) (App, Lib.Tests); Lib declarations changed, 2 dependent project(s) checked
| Command | What it does |
|---|---|
fuse init [--instructions] | Registers Fuse's hooks with the harnesses this repository uses; --instructions also adds a Fuse section to AGENTS.md |
fuse uninit | Removes what fuse init wrote, keeping every other entry, then stops this repository's engine and deletes its state |
fuse check [files...] | Reports the errors your changes caused since the last commit, in every project |
fuse test [args...] | Runs the tests affected by your changes |
fuse test --all | Runs every test |
fuse build [args...] | Runs dotnet build and prints its errors |
fuse stop [--all] | Stops this repository's engine, or every engine; the next command starts a new one |
fuse mcp | Serves fuse_check, fuse_test and fuse_build over stdio to an MCP host |
Getting started shows each command's output and what the hooks send the agent.
fuse init sets up for each harness, and how an MCP host runs Fuse.Bug reports, feature requests and pull requests are welcome on GitHub, and questions in Discussions. Contributing describes how to build, test and submit a change, and every commit needs a Developer Certificate of Origin sign-off. AI-assisted contributions are welcome under the AI policy, and everyone follows the code of conduct.
To report a vulnerability, follow Security instead of opening a public issue.
Fuse is licensed under the Apache License 2.0.
This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.
Fuse works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.