{"id":50515211,"url":"https://github.com/fuseraft/fuseraft-vscode","last_synced_at":"2026-06-02T23:05:29.700Z","repository":{"id":356750003,"uuid":"1233900014","full_name":"fuseraft/fuseraft-vscode","owner":"fuseraft","description":"Run and manage fuseraft multi-agent orchestrations without leaving your editor.","archived":false,"fork":false,"pushed_at":"2026-05-27T01:41:47.000Z","size":842,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-27T03:20:43.925Z","etag":null,"topics":["agent-orchestration","vscode-extension"],"latest_commit_sha":null,"homepage":"https://fuseraft.github.io/fuseraft-cli","language":"TypeScript","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":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-09T13:51:02.000Z","updated_at":"2026-05-27T01:41:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fuseraft/fuseraft-vscode","commit_stats":null,"previous_names":["fuseraft/fuseraft-vscode"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fuseraft/fuseraft-vscode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuseraft%2Ffuseraft-vscode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuseraft%2Ffuseraft-vscode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuseraft%2Ffuseraft-vscode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuseraft%2Ffuseraft-vscode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuseraft","download_url":"https://codeload.github.com/fuseraft/fuseraft-vscode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuseraft%2Ffuseraft-vscode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33840267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-orchestration","vscode-extension"],"created_at":"2026-06-02T23:05:29.090Z","updated_at":"2026-06-02T23:05:29.694Z","avatar_url":"https://github.com/fuseraft.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fuseraft for VS Code\n\n![fuseraft banner](media/fuseraft-banner.png)\n\nRun and manage [fuseraft](https://github.com/fuseraft/fuseraft-cli) multi-agent orchestrations without leaving your editor.\n\n## Features\n\n### Activity Bar Panel\n\nA dedicated fuseraft panel in the activity bar gives you four persistent views:\n\n**Run Task** — a webview form for composing and launching tasks:\n- Multi-line textarea for your task description (paste prose, markdown specs, or bullet lists)\n- **+ Files** button — attach one or more files as context. Each attached file is passed to the CLI via `--context-file` and its content is appended to the task. Attached files appear as removable chips below the textarea.\n  - PDF, DOCX, PPTX, and XLSX files are automatically extracted to plain text by the CLI — attach documents directly without any manual conversion.\n  - **Note:** Use the **+ Files** button to attach files. Dragging files from the VS Code Explorer panel or from an OS file manager (Windows Explorer, Finder, Nautilus, etc.) into the task area is not supported — VS Code intercepts file drags at the window level before they reach the sidebar panel.\n- **+ Spec** button — attach a single spec file (Markdown, plain text, or JSON) passed to the CLI via `--spec`. The spec is injected into every agent's system prompt as the authoritative source of truth and appended to the task at turn 0. Unlike `--context-file`, the spec survives context compaction. The attached spec appears as a removable chip below the attach bar and is cleared on run.\n- Config dropdown auto-populated from configs found in your workspace\n- Checkboxes for common flags:\n  - **Human-in-the-loop** (`--hitl`) — pause after every agent turn to review or redirect\n  - **Show tool calls** (`--tools`) — print tool invocations inline in the output\n  - **Verbose** (`--verbose`) — enable debug logging and token counts\n  - **DevUI** (`--devui`) — open real-time session visualization in the browser\n- **Run Task** button (`Ctrl+Enter`) — opens a dedicated terminal named after the first 40 characters of your task. Multiple tasks can run simultaneously, each in their own terminal.\n- **Run Task File…** button — opens a file picker to select a `.md` or `.txt` task file\n\n**Sessions** — lists sessions from `~/.fuseraft/sessions/` scoped to the current workspace (filtered by config path). Shows session ID, task preview, age, and status. The list auto-refreshes as sessions change on disk.\n- Click an incomplete session to resume it in the terminal\n- Click the preview icon or right-click → **View Session Transcript** to open a formatted transcript panel for any session (complete or incomplete)\n- Right-click → **Open Session Config** to jump to the config used for a session\n- Right-click → **Delete Session** to permanently remove a session\n\n**Configs** — discovers every YAML or JSON file in your workspace that contains an `Orchestration:` key. Click any config to open it. The list updates automatically when files are added or removed. Click **+** in the toolbar to run the Initialize Config wizard.\n\n**Context** — manages reference material that agents can access during sessions. Items are stored in `.fuseraft/context/` relative to your workspace root and auto-refresh when the index changes.\n- Click **+** in the toolbar or right-click → **Add Context** to import a file or folder. You will be prompted for an optional name (defaults to the filename) and description.\n- Right-click any item → **Remove Context Item** to delete it and its copied files\n- Hover over an item to see its source path, import time, and file count\n\n### Session Transcript Viewer\n\nClick the preview icon next to any session to open a rich transcript panel showing:\n- Session metadata: ID, task, config path, start time, completion status\n- Every agent turn as a card with a color-coded header per agent\n- Tool calls with ✓ / ✗ status indicators and argument summaries (click the label to collapse)\n- Per-turn token usage (input / output) and cost\n- Session-level totals: turn count, total tokens, total cost\n\n### REPL Chat Panel\n\nRun `fuseraft: Open REPL` (`Ctrl+Shift+P`) to open an interactive chat panel beside your editor. Select a model from the quick-pick (or use the configured default) and start chatting immediately.\n\nThe panel communicates with the fuseraft CLI over a JSON bridge — no terminal window required:\n\n- **Streaming responses** — tokens appear word-by-word as the model generates them\n- **Tool call badges** — each tool invoked during a turn appears as a small badge above the response\n- **Markdown rendering** — the final response is rendered with headers, bold/italic, code blocks, and lists\n- **Slash commands** — type `/tools`, `/plan`, `/execute`, `/sessions`, `/help`, etc. directly in the input box\n- **Resumable sessions** — pass `--resume \u003cid\u003e` via the extension or reopen a session from the sessions tree; session snapshots are stored at `~/.fuseraft/repl-sessions/`\n- **Shift+Enter** for multi-line input; **Enter** to send\n\nThe panel stays open across tab switches (`retainContextWhenHidden`). Closing the panel kills the underlying CLI process and ends the session.\n\n### CodeLens on Config Files\n\nWhen you open a fuseraft config, three inline actions appear above the first line:\n\n```\n▶ Run Task   ✓ Validate   ⎇ Diagram\n```\n\n### Right-Click Menus\n\n**Config files** (`orchestration.yaml`, `*.fuseraft.yaml`, etc.) — right-click in the file explorer or inside the editor:\n- **Run Task with This Config**\n- **Validate Config**\n- **Validate Config and Show Diagram**\n\n**Task files** (`.md`, `.txt`) — right-click in the file explorer or inside the editor:\n- **Run Task File with fuseraft** — runs `fuseraft run -f \u003cfile\u003e`, prompting for a config if multiple are found\n\n### Command Palette\n\nAll commands are available via `Ctrl+Shift+P` / `Cmd+Shift+P` under the `fuseraft:` prefix:\n\n| Command | Description |\n|---------|-------------|\n| `fuseraft: Run Task` | Prompt for a task, pick a config, and run in the integrated terminal |\n| `fuseraft: Run Task File with fuseraft` | Run a `.md` or `.txt` task file with `fuseraft run -f` |\n| `fuseraft: Initialize Config` | 4-step wizard: template, model, provider endpoint, output path |\n| `fuseraft: Validate Config` | Validate a config file and print results |\n| `fuseraft: Validate Config and Show Diagram` | Validate and print a Mermaid flowchart of the pipeline |\n| `fuseraft: Open REPL` | Open a chat panel with a single-agent REPL session (streaming responses, tool call badges, markdown rendering) |\n| `fuseraft: Resume Session` | Pick an incomplete session to resume |\n| `fuseraft: View Session Transcript` | Open a formatted transcript for a session |\n| `fuseraft: Add Context` | Import a file or folder into the session context store |\n| `fuseraft: Remove Context Item` | Remove a context item and delete its copied files |\n| `fuseraft: Set Up Provider` | Configure your AI provider, model, API key, and binary path |\n\n### Initialize Config Wizard\n\n`fuseraft: Initialize Config` walks through four steps:\n\n1. **Template** — choose from all available templates:\n\n   | Template | Description |\n   |----------|-------------|\n   | `dev-team` | Planner → Developer → Tester → Reviewer with keyword routing and a periodic Verifier |\n   | `graph` | Same four-agent pipeline as a declarative directed graph with back-edges for revision cycles |\n   | `brownfield` | Archaeologist recons the codebase first, then Planner → Developer → Reviewer |\n   | `brownfield-graph` | Brownfield pipeline as a directed graph; Reviewer has separate back-edges to Developer and Planner |\n   | `magentic` | Manager LLM dynamically coordinates Researcher + Developer agents (no fixed routing) |\n   | `research` | Researcher gathers information, Writer produces the final report |\n   | `devops` | Three-agent pipeline for infrastructure and deployment tasks |\n   | `content` | Writer drafts, Editor refines and approves |\n   | `minimal` | Single general-purpose agent — simplest possible setup |\n   | `designer` | Describe your use case in plain language and get a validated config back |\n\n2. **Model** — pick from common models across all providers, use auto-detection, or type any model ID\n3. **Provider endpoint** — pick a known provider URL, use your saved default, or enter a custom URL\n4. **Output path** — defaults to `.fuseraft/config/orchestration.yaml`, fully editable\n\nThe generated config file opens automatically in the editor as soon as fuseraft writes it to disk.\n\n### Set Up Provider\n\n`fuseraft: Set Up Provider` runs automatically on first use when the fuseraft binary is not found or when `~/.fuseraft/config` is missing or incomplete. You can also invoke it at any time from the command palette.\n\nIt opens a **Set Up Provider** panel — a single form with all fields visible at once:\n\n- **Binary** — path to the fuseraft binary. Click **Browse…** to pick one from disk, or **Validate** to verify the current path. The panel shows the detected version inline.\n- **Preset** — choose from Anthropic, OpenAI, xAI, Google, Mistral, DeepSeek, or Custom / Self-hosted. Selecting a preset auto-fills the endpoint URL and suggests models, but both fields remain fully editable.\n- **Endpoint URL** — the provider's API base URL.\n- **Model** — the model ID to use. Typing opens suggestions for the selected provider, or enter any ID directly.\n- **API Key** — paste your key. Stored in VS Code's secure storage (backed by the OS credential store). The extension injects the key as `FUSERAFT_API_KEY` into every terminal it opens and passes `--vscode` to the CLI so it reads the key from that variable instead of the OS keychain. The key is never written to disk in plain text.\n\nClick **Test Connection** to verify the key against the provider — the result appears inline without leaving the form. Click **Save** when ready.\n\n### Status Bar\n\nA `fuseraft` button is always visible in the status bar. Click it to run a task.\n\n### YAML / JSON IntelliSense\n\nThe extension ships a full JSON Schema for fuseraft config files. You get autocomplete, inline documentation, and validation for all fields — `Agents`, `Models`, `Plugins`, `Capabilities`, `Contracts`, `Routes`, `Security`, `Compaction`, and more.\n\nSchema validation is enabled automatically for files matching `**/orchestration.json` and `**/*.fuseraft.json`. For YAML files, add this to your VS Code settings (requires the [YAML extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml)):\n\n```json\n\"yaml.schemas\": {\n  \"\u003cextension-path\u003e/schemas/fuseraft-config.schema.json\": [\n    \"**/orchestration.yaml\",\n    \"**/*.fuseraft.yaml\"\n  ]\n}\n```\n\nOr reference the schema inline at the top of any config file:\n\n```yaml\n# yaml-language-server: $schema=\u003cextension-path\u003e/schemas/fuseraft-config.schema.json\nOrchestration:\n  Name: MyTeam\n  ...\n```\n\n## Requirements\n\n- [fuseraft CLI](https://github.com/fuseraft/fuseraft-cli) must be installed and on your `PATH` (or its path set in extension settings).\n- VS Code 1.85 or later.\n\n## Extension Settings\n\n| Setting | Default | Description |\n|---------|---------|-------------|\n| `fuseraft.binaryPath` | `fuseraft` | Path to the fuseraft binary. Can be absolute (e.g. `/usr/local/bin/fuseraft`) or relative. If not on `PATH`, set to an absolute path. The extension validates this on startup and prompts to configure if invalid. |\n| `fuseraft.defaultConfigPath` | _(blank)_ | Default config path relative to workspace root. Leave blank to be prompted each time. |\n| `fuseraft.runFlags` | _(blank)_ | Extra flags appended to every `fuseraft run` invocation (e.g. `--tools --verbose`). |\n| `fuseraft.openTerminalOnRun` | `true` | Focus the integrated terminal when a task starts. |\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Compile\nnpm run compile\n\n# Watch mode\nnpm run watch\n```\n\nPress `F5` in VS Code to launch an Extension Development Host with the extension loaded.\n\nTo package:\n\n```bash\nnpx vsce package\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuseraft%2Ffuseraft-vscode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuseraft%2Ffuseraft-vscode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuseraft%2Ffuseraft-vscode/lists"}