SageFs is a live development environment that eliminates the edit‑build‑run cycle.
Tests run as you type — no save needed. Eval code on demand with Alt+Enter.
Results stream to the dashboard, editor integrations, and MCP clients from a single shared daemon.
SageFs is a .NET global tool. One command, no config files.
$ dotnet tool install --global SageFs
The daemon starts bare and waits for your editor to connect.
$ sagefs
Edit any .fs file — tests run on every change. Hit Alt+Enter to evaluate code on demand. Results stream to your editor.
Edit any .fs or .fsx file. Tests start running on every change — no save needed. Hit Alt+Enter to evaluate code on demand. Both modes, all the time.
SageFs watches your entire project tree. It sees the change as it happens, classifies it (.fs → reload, .fsproj → soft reset), and routes it to the right handler.
A dedicated worker process — already warmed up with your project's dependencies loaded — compiles and executes the changed code. No cold start. No full rebuild.
~100 msThe live testing engine identifies which tests touch the changed code and re-executes just those. Green checkmarks or red failures stream back instantly.
~300 msVia Server-Sent Events (SSE), every connected client — the dashboard, VS Code, Neovim, Visual Studio, and MCP agents — sees the results simultaneously. No polling. No refresh.
~500 ms total
Two eval modes: tree-sitter auto-detects the enclosing scope in .fs files
(inferred mode), or use ;; delimiters for explicit cell boundaries
(manual mode). Virtual text for inline results, SSE-driven live diagnostics, gutter signs for
test pass/fail and code coverage.
Select code, hit Alt+Enter, see colored annotations inline.
Sidebar panels for hot reload file trees, live test status, type exploration,
and session switching. Auto-detects or starts the daemon.
The built-in browser workspace for session creation, code evaluation, output,
diagnostics, live tests, and daemon health. Open it at
http://localhost:37750/dashboard after starting SageFs.
Give coding agents direct access to the live FSI session. They can evaluate and type-check snippets, inspect session state, discover projects, and run targeted tests against the same daemon used by the dashboard and editor integrations.
Integration with Visual Studio's tool windows. Eval, CodeLens, and session management — embedded in the IDE enterprise teams already use. Daemon auto-management included. Live testing UI is still in progress.
get_completions tool. Explore any loaded .NET API interactively.
Diagnostics (type errors, warnings) stream inline as you type.
update function.
No shared mutable state. No locks. Side effects execute after the model updates.
The UI is always a pure function of the current model.
SageFs.Gui frontend.
;; is an isolated transaction.open statements are in scope.unit, integration, property, browser, and more..fsx script file. Each statement runs independently — partial progress survives failures.