Fuse
Reference

Workspace configuration

The root-only fuse.json and .fuseignore contract used by Fuse 4.4.

Fuse reads workspace configuration only from the repository root. The supported files are fuse.json and .fuseignore. Fuse does not read .fuserc, parent-directory configuration, or legacy emission, tokenizer, cache, and solution settings.

fuse.json

fuse init creates a root fuse.json using this schema:

{
  "$schema": "https://fuse.codes/schema/v4.4/fuse.schema.json",
  "workspace": "src/Product.slnf",
  "ignore": [
    "vendor"
  ]
}

Both properties are optional. fuse init writes workspace only when it finds one unambiguous product target. Otherwise it prints the candidates and leaves the property out.

KeyTypeMeaning
$schemastringThe v4.4 schema identifier. It is informational and lets editors validate the file.
workspacestringAn in-repository .sln, .slnx, .slnf, or .csproj used by explicit semantic indexing and compiler-backed requests. Relative paths resolve from the repository root and must not escape it.
ignorearray of stringsExtra directory names or paths to exclude from inventory. Entries are combined with .fuseignore and the built-in exclusions.

Unknown keys produce a visible warning. Wrong property types, malformed JSON, an unsupported workspace extension, or a workspace path outside the repository fail the request and name the property that needs correction. Fuse never silently selects an ambiguous full solution by path order.

Workspace selection uses this order:

  1. The workspace value in fuse.json.
  2. One root product .slnf.
  3. One root product .slnx or .sln.
  4. The owning .csproj for a file-specific compiler request.
  5. An actionable ambiguity response that lists candidates and tells you to set workspace.

All indexed MCP tools except fuse_reduce resolve the nearest enclosing Git repository first. That normalized repository root owns the daemon, job manager, index file, and configuration. A nested request does not change the scan root. A folder outside Git returns workspace_identity_unresolved: before Fuse starts an index or writes data.

.fuseignore

.fuseignore is a root-only line-oriented list of additional paths or directory names to exclude. Blank lines and lines beginning with # are ignored. It complements ignore; it does not replace built-in exclusions such as .git, .fuse, bin, obj, and node_modules.

Use fuse.json for shared, editor-validated workspace intent and .fuseignore for a short repository-specific exclusion list.

Runtime environment

Environment variables configure runtime behavior, not fuse.json parsing:

VariableDefaultDescription
FUSE_DAEMON1 for mcp serveSet to 0 to run the same job and compiler services in process instead of delegating to the shared host daemon.
FUSE_EAGER_INDEX1Set to 0 to skip the optional eager syntax job at daemon or MCP startup. The first eligible read still starts or joins the syntax job.
FUSE_COLD_READ_DEADLINE_MS2500The maximum cold-read wait for syntax rows before Fuse returns a bounded job header.
FUSE_MAX_FILE_BYTES5242880Files larger than this retain inventory metadata with index_detail=inventory_only. A non-positive value disables the cap.
FUSE_RESIDENT0Set to 1 to hold resident compiler state for low-latency overlay checks.
FUSE_WARM_SOLUTION_CAP3Maximum held MSBuild solution states per host root.
FUSE_WARM_SOLUTION_IDLE_MINUTES30Idle eviction window for held MSBuild solutions.
FUSE_CHECK_WORKER_CAP2Maximum pooled capture-check workers per host root.
FUSE_CHECK_WORKER_IDLE_MINUTES30Idle eviction window for capture-check workers.
FUSE_COMPILER_STATE_CAP1Per-root budget shared by resident, warm-solution, and capture-worker compiler state.
FUSE_WATCH1Set to 0 to disable watcher-triggered refresh jobs; read-time reconcile remains the backstop.
FUSE_UPDATE_CHECK1Set to 0 to disable update notices.

FUSE_BG_UPGRADE is removed. Fuse does not run a background workspace-wide compiler pass after syntax indexing. Use fuse index --semantic when that work is wanted.

Next

Use Commands for fuse init, index lifecycle, and cleanup. Read Connect your coding agent for MCP installation and Shared daemon for job ownership.

On this page