{"id":49148723,"url":"https://github.com/fuseraft/fuseraft-cli","last_synced_at":"2026-05-23T20:01:35.031Z","repository":{"id":355543451,"uuid":"1227682896","full_name":"fuseraft/fuseraft-cli","owner":"fuseraft","description":"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.","archived":false,"fork":false,"pushed_at":"2026-05-20T04:41:09.000Z","size":14600,"stargazers_count":2,"open_issues_count":7,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-20T06:48:29.327Z","etag":null,"topics":["agent-framework","agent-orchestration","context-engineering","dotnet","microsoft-agent-framework"],"latest_commit_sha":null,"homepage":"https://fuseraft.github.io/fuseraft-cli/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fuseraft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":".github/SUPPORT.md","governance":"docs/governance.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-03T02:44:32.000Z","updated_at":"2026-05-20T04:38:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fuseraft/fuseraft-cli","commit_stats":null,"previous_names":["fuseraft/fuseraft-cli"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/fuseraft/fuseraft-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuseraft%2Ffuseraft-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuseraft%2Ffuseraft-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuseraft%2Ffuseraft-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuseraft%2Ffuseraft-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuseraft","download_url":"https://codeload.github.com/fuseraft/fuseraft-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuseraft%2Ffuseraft-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33410345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-framework","agent-orchestration","context-engineering","dotnet","microsoft-agent-framework"],"created_at":"2026-04-22T05:01:59.727Z","updated_at":"2026-05-23T20:01:35.025Z","avatar_url":"https://github.com/fuseraft.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fuseraft\n\n\u003cimg src=\"docs/.assets/fuseraft-banner.png\" alt=\"fuseraft — an agent orchestration framework\"\u003e\n\nfuseraft 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.\n\nBuild 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.\n\nWorks with Anthropic, xAI, OpenAI, Azure OpenAI, Ollama, and any OpenAI-compatible provider. Agents can be local or remote — the [A2A protocol](https://a2a-protocol.org/) lets you federate agent slots to independently deployed services. Built on [Microsoft Agent Framework](https://github.com/microsoft/agents).\n\n---\n\n## What you can build\n\nPipelines range from a single task-routed assistant:\n\n```mermaid\nflowchart LR\n    Task((Task)) --\u003e Assistant[Assistant]\n```\n\n...to multi-agent workflows with conditional keyword routing and anti-hallucination validators enforced at every handoff:\n\n```mermaid\nflowchart TD\n    Task((Task))\n    Planner[Planner]\n    Developer[Developer]\n    Tester[Tester]\n    Reviewer[Reviewer]\n    Done([\"✓ Done\"])\n\n    Task --\u003e Planner\n    Planner      --\u003e|\"HANDOFF TO DEVELOPER · RequireBrief\"| Developer\n    Developer    --\u003e|\"HANDOFF TO TESTER · RequireWriteFile · RequireShellPass\"| Tester\n    Tester       --\u003e|\"HANDOFF TO REVIEWER · TestReportValid\"| Reviewer\n    Reviewer     --\u003e|\"APPROVED\"| Done\n    Reviewer     --\u003e|\"REVISION REQUIRED\"| Developer\n    Reviewer     --\u003e|\"REPLAN REQUIRED\"| Planner\n    Tester       --\u003e|\"BUGS FOUND\"| Developer\n```\n\n...to declarative directed-graph pipelines where back-edges express review cycles without duplicating states:\n\n```mermaid\nflowchart TD\n    Planner([Planner])\n    Developer([Developer])\n    Tester([Tester])\n    Reviewer([Reviewer])\n    Terminal([\"Reviewer\\n✓ terminal\"])\n\n    Planner   --\u003e|\"HANDOFF TO DEVELOPER · RequireBrief\"| Developer\n    Developer --\u003e|\"HANDOFF TO TESTER · RequireWriteFile\"| Tester\n    Tester    --\u003e|\"HANDOFF TO REVIEWER · TestReportValid\"| Reviewer\n    Reviewer  --\u003e|\"APPROVED · RequireReviewJudgement\"| Terminal\n    Reviewer  --\u003e|\"REPLAN REQUIRED\"| Planner\n    Tester    --\u003e|\"BUGS FOUND\"| Developer\n    Reviewer  --\u003e|\"REVISION REQUIRED\"| Developer\n```\n\n...to parallel fan-out/fan-in where a coordinator spawns concurrent workers that merge into a single downstream node:\n\n```mermaid\nflowchart TD\n    Coordinator([Coordinator])\n    AnalyzerA([\"Analyzer A\\nparallel\"])\n    AnalyzerB([\"Analyzer B\\nparallel\"])\n    Synthesizer([\"Synthesizer\\n✓ terminal\"])\n\n    Coordinator --\u003e|\"BEGIN PARALLEL ANALYSIS\"| AnalyzerA\n    Coordinator --\u003e|\"BEGIN PARALLEL ANALYSIS\"| AnalyzerB\n    AnalyzerA   --\u003e|\"ANALYSIS COMPLETE\"| Synthesizer\n    AnalyzerB   --\u003e|\"ANALYSIS COMPLETE\"| Synthesizer\n```\n\n...to fully autonomous [Magentic](https://arxiv.org/abs/2411.04468) orchestration where a Manager dynamically selects agents and collects their reports:\n\n```mermaid\nflowchart LR\n    Task((Task))\n    Manager([Manager])\n    Researcher[Researcher]\n    Developer[Developer]\n\n    Task       --\u003e Manager\n    Manager    --\u003e|\"selects\"| Researcher\n    Manager    --\u003e|\"selects\"| Developer\n    Researcher -.-\u003e|\"reports\"| Manager\n    Developer  -.-\u003e|\"reports\"| Manager\n```\n\n...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:\n\n```mermaid\nflowchart TD\n    Task((Task))\n    Planner[\"Planner\\ngenerator\"]\n    PlanReviewer[\"PlanReviewer\\ncritic · isolated context\"]\n    Developer[\"Developer\\ngenerator\"]\n    CodeReviewer[\"CodeReviewer\\ncritic · isolated context\"]\n    Done([\"✓ Done\"])\n\n    Task         --\u003e Planner\n    Planner      --\u003e|artifact| PlanReviewer\n    PlanReviewer --\u003e|\"APPROVED\"| Developer\n    PlanReviewer -.-\u003e|revise| Planner\n    Developer    --\u003e|artifact| CodeReviewer\n    CodeReviewer --\u003e|\"APPROVED\"| Done\n    CodeReviewer -.-\u003e|revise| Developer\n```\n\n---\n\n## Quick start\n\n```bash\n# Open an interactive REPL session — no config needed\nfuseraft\n\n# Interactive wizard — describe your use case and get a config back\nfuseraft init\n\n# Or start from a built-in template\nfuseraft init --template dev-team --model claude-sonnet-4-6\nfuseraft init --template graph          # directed-graph pipeline with parallel fan-out\nfuseraft init --template adversarial    # GAN-style generate → critique → revise pipeline\nfuseraft init --template designer       # AI-assisted config designer\n\n# Run a session\nfuseraft run -c .fuseraft/config/orchestration.yaml \"Build a REST API in Go with JWT authentication\"\n\n# Resume the most recent incomplete session\nfuseraft run --resume\n\n# Validate a config — add --diagram for a Mermaid flowchart preview\nfuseraft validate .fuseraft/config/orchestration.yaml --diagram\n```\n\n---\n\n## Install\n\nPrebuilt binaries are self-contained — no .NET installation required.\n\n**Linux / macOS**\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/fuseraft/fuseraft-cli/main/install.sh | bash\n```\n\nAdd `--system` to install to `/usr/local/bin` instead of `~/.local/bin`:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/fuseraft/fuseraft-cli/main/install.sh | bash -s -- --system\n```\n\n**Windows (PowerShell)**\n\n```powershell\nirm https://raw.githubusercontent.com/fuseraft/fuseraft-cli/main/install.ps1 | iex\n```\n\nBoth scripts download the latest release from [GitHub Releases](https://github.com/fuseraft/fuseraft-cli/releases), place the binary on your `PATH`, and confirm with a `fuseraft --version` on completion.\n\n**Manual download**\n\nGrab the archive for your platform from [Releases](https://github.com/fuseraft/fuseraft-cli/releases), extract the binary, and place it on your `PATH`.\n\n**Updates**\n\nOnce installed, keep fuseraft current with:\n\n```bash\nfuseraft update          # download and install the latest release\nfuseraft update --check  # check without installing\n```\n\nOn 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.\n\n**Build from source**\n\nRequires the [.NET 10 SDK](https://dot.net):\n\n```bash\n./build.sh          # Linux / macOS\n.\\build.ps1         # Windows\n```\n\nThe binary lands in `./bin/`.\n\n---\n\n## Features\n\n**Orchestration**\n- 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\n- Routing validators that block handoffs unless real evidence is present on disk — no hallucinated progress\n- Saga orchestration wraps any pipeline with compensating rollback if a step fails\n\n**Agents**\n- Declare agents inline or as standalone `AgentFile` YAML — reuse and version agent definitions across configs\n- Mix any combination of LLM providers within a single pipeline\n- Federate agent slots to remote services via the [A2A protocol](https://a2a-protocol.org/) — remote agents participate identically to local ones\n\n**Tools**\n- Built-in plugins: filesystem, shell, git, HTTP, JSON, search, Docker sandboxes, MCP servers, persistent scratchpad, and a shared chatroom\n- Connect any MCP server — its tools are automatically registered and available to agents\n\n**Reliability**\n- Checkpoints after every turn — sessions can always be resumed exactly where they left off\n- Token tracking per turn; enforce per-model context caps and a session-wide hard spending limit\n- Conversation compaction keeps long sessions within context window limits\n\n**Governance**\n- Per-agent execution rings, prompt injection detection, circuit breaker, and a hash-chain audit log\n- Sandbox file and shell access to a configured directory tree\n- Human-in-the-loop support at any point in a pipeline\n\n**Developer experience**\n- Browser-based DevUI (`--devui`) for real-time session visualization\n- Interactive **Orchestration Designer** (`fuseraft init --template designer`) — describe your use case, get a validated config back\n- VS Code extension with CodeLens, IntelliSense, and a session viewer\n\n---\n\n## Documentation\n\n| Doc | What it covers |\n|-----|----------------|\n| [Getting Started](docs/getting-started.md) | Prerequisites, build, first run |\n| [CLI Reference](docs/cli-reference.md) | All commands and flags |\n| [Configuration](docs/configuration.md) | Full config schema (YAML and JSON) |\n| [Models \u0026 Providers](docs/models.md) | Model configuration and provider auto-detection |\n| [Plugins](docs/plugins.md) | All built-in tools agents can call |\n| [Strategies](docs/strategies.md) | Selection and termination strategies |\n| [Routing Validators](docs/validators.md) | Anti-hallucination handoff guards |\n| [Harness Engineering](docs/harness-engineering.md) | Designing configs that enforce real progress mechanically |\n| [MCP Integration](docs/mcp.md) | Connecting external MCP servers |\n| [Security \u0026 Sandbox](docs/security.md) | File and network containment |\n| [Governance](docs/governance.md) | Execution rings, audit log, circuit breaker, SLO tracking |\n| [Context Store](docs/context-store.md) | Importing files and directories into the session context |\n| [Sessions](docs/sessions.md) | Resumption, HITL, cost tracking, compaction |\n| [Examples](docs/examples.md) | Ready-to-use config examples |\n| [Design](docs/design.md) | Architecture, layer map, MAF usage, and decision log |\n\n---\n\n## VS Code Extension\n\nThe [fuseraft VS Code extension](https://github.com/fuseraft/fuseraft-vscode) brings the full CLI experience into your editor.\n\n**Activity bar panel** — four persistent views:\n- **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.\n- **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.\n- **Configs** — auto-discovers every fuseraft config in your workspace. Click to open, or hit **+** to run the Initialize Config wizard.\n- **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.\n\n**CodeLens on config files** — three inline actions appear above the first line of any config:\n\n```\n▶ Run Task   ✓ Validate   ⎇ Diagram\n```\n\n**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.\n\n**REPL** — `fuseraft: Open REPL` starts an interactive single-agent chat session without a config file. Good for quick experiments.\n\n**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.\n\n**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.\n\n**Status bar** — a persistent `fuseraft` button always visible at the bottom of the editor. Click to run a task.\n\n---\n\n## Contributing\n\nContributions are welcome — bug fixes, new plugins, config examples, documentation, and new ideas. See [CONTRIBUTING.md](CONTRIBUTING.md) to get started.\n\n---\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuseraft%2Ffuseraft-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuseraft%2Ffuseraft-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuseraft%2Ffuseraft-cli/lists"}