fuseraft turns a YAML config into a running multi-agent pipeline. Define a team of AI agents — each with its own role, model, skills, and tools — and describe how they hand off to each other. Then give them a task.
Build a software development team that plans, writes, tests, and reviews its own code. A research pipeline that fans out to specialists and synthesizes their findings. A decision workflow with a human approval gate at every critical step. Whatever you can describe, fuseraft can coordinate.
Works with Anthropic, xAI, OpenAI, Azure OpenAI, Ollama, and any OpenAI-compatible provider. Agents can be local or remote — the A2A protocol lets you federate agent slots to independently deployed services. Built on Microsoft Agent Framework.
Pipelines range from a single task-routed assistant:
flowchart LR
Task((Task)) --> Assistant[Assistant]
...to multi-agent workflows with conditional keyword routing and anti-hallucination validators enforced at every handoff:
flowchart TD
Task((Task))
Planner[Planner]
Developer[Developer]
Tester[Tester]
Reviewer[Reviewer]
Done(["✓ Done"])
Task --> Planner
Planner -->|"HANDOFF TO DEVELOPER · RequireBrief"| Developer
Developer -->|"HANDOFF TO TESTER · RequireWriteFile · RequireShellPass"| Tester
Tester -->|"HANDOFF TO REVIEWER · TestReportValid"| Reviewer
Reviewer -->|"APPROVED"| Done
Reviewer -->|"REVISION REQUIRED"| Developer
Reviewer -->|"REPLAN REQUIRED"| Planner
Tester -->|"BUGS FOUND"| Developer
...to declarative directed-graph pipelines where back-edges express review cycles without duplicating states:
flowchart TD
Planner([Planner])
Developer([Developer])
Tester([Tester])
Reviewer([Reviewer])
Terminal(["Reviewer\n✓ terminal"])
Planner -->|"HANDOFF TO DEVELOPER · RequireBrief"| Developer
Developer -->|"HANDOFF TO TESTER · RequireWriteFile"| Tester
Tester -->|"HANDOFF TO REVIEWER · TestReportValid"| Reviewer
Reviewer -->|"APPROVED · RequireReviewJudgement"| Terminal
Reviewer -->|"REPLAN REQUIRED"| Planner
Tester -->|"BUGS FOUND"| Developer
Reviewer -->|"REVISION REQUIRED"| Developer
...to parallel fan-out/fan-in where a coordinator spawns concurrent workers that merge into a single downstream node:
flowchart TD
Coordinator([Coordinator])
AnalyzerA(["Analyzer A\nparallel"])
AnalyzerB(["Analyzer B\nparallel"])
Synthesizer(["Synthesizer\n✓ terminal"])
Coordinator -->|"BEGIN PARALLEL ANALYSIS"| AnalyzerA
Coordinator -->|"BEGIN PARALLEL ANALYSIS"| AnalyzerB
AnalyzerA -->|"ANALYSIS COMPLETE"| Synthesizer
AnalyzerB -->|"ANALYSIS COMPLETE"| Synthesizer
...to fully autonomous Magentic orchestration where a Manager dynamically selects agents and collects their reports:
flowchart LR
Task((Task))
Manager([Manager])
Researcher[Researcher]
Developer[Developer]
Task --> Manager
Manager -->|"selects"| Researcher
Manager -->|"selects"| Developer
Researcher -.->|"reports"| Manager
Developer -.->|"reports"| Manager
...to adversarial pipelines where generator agents produce artifacts and critic agents review them with fresh, isolated context windows — no shared history, no inherited blind spots:
flowchart TD
Task((Task))
Planner["Planner\ngenerator"]
PlanReviewer["PlanReviewer\ncritic · isolated context"]
Developer["Developer\ngenerator"]
CodeReviewer["CodeReviewer\ncritic · isolated context"]
Done(["✓ Done"])
Task --> Planner
Planner -->|artifact| PlanReviewer
PlanReviewer -->|"APPROVED"| Developer
PlanReviewer -.->|revise| Planner
Developer -->|artifact| CodeReviewer
CodeReviewer -->|"APPROVED"| Done
CodeReviewer -.->|revise| Developer
# Open an interactive REPL session — no config needed
fuseraft
# Interactive wizard — describe your use case and get a config back
fuseraft init
# Or start from a built-in template
fuseraft init --template dev-team --model claude-sonnet-4-6
fuseraft init --template graph # directed-graph pipeline with parallel fan-out
fuseraft init --template adversarial # GAN-style generate → critique → revise pipeline
fuseraft init --template designer # AI-assisted config designer
# Run a session
fuseraft run -c .fuseraft/config/orchestration.yaml "Build a REST API in Go with JWT authentication"
# Resume the most recent incomplete session
fuseraft run --resume
# Validate a config — add --diagram for a Mermaid flowchart preview
fuseraft validate .fuseraft/config/orchestration.yaml --diagramPrebuilt binaries are self-contained — no .NET installation required.
Linux / macOS
curl -fsSL https://raw.githubusercontent.com/fuseraft/fuseraft-cli/main/install.sh | bashAdd --system to install to /usr/local/bin instead of ~/.local/bin:
curl -fsSL https://raw.githubusercontent.com/fuseraft/fuseraft-cli/main/install.sh | bash -s -- --systemWindows (PowerShell)
irm https://raw.githubusercontent.com/fuseraft/fuseraft-cli/main/install.ps1 | iexBoth scripts download the latest release from GitHub Releases, place the binary on your PATH, and confirm with a fuseraft --version on completion.
Manual download
Grab the archive for your platform from Releases, extract the binary, and place it on your PATH.
Updates
Once installed, keep fuseraft current with:
fuseraft update # download and install the latest release
fuseraft update --check # check without installingOn Windows, fuseraft update launches a separate fuseraft-update.exe process (included in the release archive) that waits for running fuseraft instances to exit before replacing the binary. On Linux and macOS the replacement is atomic and happens in place.
Build from source
Requires the .NET 10 SDK:
./build.sh # Linux / macOS
.\build.ps1 # WindowsThe binary lands in ./bin/.
Orchestration
- Six routing modes: keyword, state machine, declarative directed graph (with parallel fan-out/fan-in), LLM-based selection, fully autonomous Magentic, and adversarial generate→critique→revise pipelines
- Routing validators that block handoffs unless real evidence is present on disk — no hallucinated progress
- Saga orchestration wraps any pipeline with compensating rollback if a step fails
Agents
- Declare agents inline or as standalone
AgentFileYAML — reuse and version agent definitions across configs - Mix any combination of LLM providers within a single pipeline
- Federate agent slots to remote services via the A2A protocol — remote agents participate identically to local ones
Tools
- Built-in plugins: filesystem, shell, git, HTTP, JSON, search, Docker sandboxes, MCP servers, persistent scratchpad, and a shared chatroom
- Connect any MCP server — its tools are automatically registered and available to agents
Reliability
- Checkpoints after every turn — sessions can always be resumed exactly where they left off
- Token tracking per turn; enforce per-model context caps and a session-wide hard spending limit
- Conversation compaction keeps long sessions within context window limits
Governance
- Per-agent execution rings, prompt injection detection, circuit breaker, and a hash-chain audit log
- Sandbox file and shell access to a configured directory tree
- Human-in-the-loop support at any point in a pipeline
Developer experience
- Browser-based DevUI (
--devui) for real-time session visualization - Interactive Orchestration Designer (
fuseraft init --template designer) — describe your use case, get a validated config back - VS Code extension with CodeLens, IntelliSense, and a session viewer
| Doc | What it covers |
|---|---|
| Getting Started | Prerequisites, build, first run |
| CLI Reference | All commands and flags |
| Configuration | Full config schema (YAML and JSON) |
| Models & Providers | Model configuration and provider auto-detection |
| Plugins | All built-in tools agents can call |
| Strategies | Selection and termination strategies |
| Routing Validators | Anti-hallucination handoff guards |
| Harness Engineering | Designing configs that enforce real progress mechanically |
| MCP Integration | Connecting external MCP servers |
| Security & Sandbox | File and network containment |
| Governance | Execution rings, audit log, circuit breaker, SLO tracking |
| Context Store | Importing files and directories into the session context |
| Sessions | Resumption, HITL, cost tracking, compaction |
| Examples | Ready-to-use config examples |
| Design | Architecture, layer map, MAF usage, and decision log |
The fuseraft VS Code extension brings the full CLI experience into your editor.
Activity bar panel — four persistent views:
- Run Task — compose a task, pick a config, set flags (
--hitl,--tools,--verbose,--devui), and launch. Each task opens in its own named terminal; multiple tasks can run simultaneously. - Sessions — lists sessions scoped to your workspace with status, age, and task preview. Click to resume; preview icon opens a formatted transcript with per-turn token usage and cost.
- Configs — auto-discovers every fuseraft config in your workspace. Click to open, or hit + to run the Initialize Config wizard.
- Context — manages reference material agents can access during sessions. Import files or folders; they're stored in
.fuseraft/context/and available to any session in the workspace.
CodeLens on config files — three inline actions appear above the first line of any config:
▶ Run Task ✓ Validate ⎇ Diagram
Task files — right-click any .md or .txt file in the explorer or editor to run it directly as a fuseraft task. Write your task as a markdown spec, then run it without copying anything.
REPL — fuseraft: Open REPL starts an interactive single-agent chat session without a config file. Good for quick experiments.
Set Up Provider — a guided first-run panel for configuring your binary path, provider, model, endpoint, and API key. Runs automatically when the binary isn't found; available any time from the command palette.
YAML / JSON IntelliSense — full JSON Schema for fuseraft configs ships with the extension. Autocomplete, inline docs, and validation for every field — agents, models, plugins, routes, contracts, security, and more.
Status bar — a persistent fuseraft button always visible at the bottom of the editor. Click to run a task.
Contributions are welcome — bug fixes, new plugins, config examples, documentation, and new ideas. See CONTRIBUTING.md to get started.
MIT
