Before publishing: replace
your-publisher-nameandyour-github-usernameinpackage.jsonwith your real values (see Setup checklist below).
Multi-agent autonomous coding inside your editor. Give ForgeSwarm a goal; a team of AI agents plans the work, implements tasks in parallel, verifies against your real test suite, repairs its own failures, and reviews the final diff — while you watch every step live in the sidebar.
Bring your own model: Anthropic API, OpenAI API, or a fully local model (Ollama / LM Studio / llama.cpp / vLLM) with zero data leaving your machine.
Setup
- Install the engine:
pip install fastapi uvicorn sse-starlette anthropic openai # plus the forgeswarm package (from source or PyPI) - In VS Code, run “ForgeSwarm: Set Anthropic API Key” or “ForgeSwarm: Set OpenAI API Key” from the command palette (skip for local models).
- Pick your provider in Settings → ForgeSwarm (
anthropic/openai/local). - Open a project folder and run “ForgeSwarm: Run Task”.
Security model
This extension is designed so that publishing it — and installing it — introduces no credential or injection risk:
| Concern | How it's handled |
|---|---|
| API key storage | Keys are stored via VS Code SecretStorage (backed by the OS keychain: Keychain on macOS, Credential Manager on Windows, libsecret on Linux). They are never written to settings.json, workspace files, or disk. |
| Key transit | Keys are injected as environment variables into the locally spawned engine process only. They are never sent over HTTP, never logged, never displayed. Key entry uses a masked input box. |
| Local bridge exposure | The Python bridge binds to 127.0.0.1 only and requires a random per-session token on every request. This blocks CSRF / DNS-rebinding attacks where a malicious website tries to drive local servers. The token lives only in the extension host — the webview never sees it. |
| Webview injection (XSS) | Strict Content-Security-Policy: no remote content, nonce-gated scripts, no eval. All model and tool output is rendered via textContent, never innerHTML — model output cannot inject markup or script into your editor. |
| Agent blast radius | Agents operate through a sandboxed toolkit: file access jailed to the workspace folder, shell command blocklist, per-command timeouts, bounded turn/repair budgets, and a full audit log of every tool call. |
| Telemetry | None. The extension makes no network requests except to your chosen model provider (or your own machine, for local models). |
Commands
- ForgeSwarm: Run Task — describe a goal; watch the agent team execute it
- ForgeSwarm: Set Anthropic API Key / Set OpenAI API Key — stored in OS keychain; enter an empty value to clear
- ForgeSwarm: Start Backend — manually start the local engine bridge
Settings
| Setting | Default | Purpose |
|---|---|---|
forgeswarm.provider |
anthropic |
anthropic, openai, or local |
forgeswarm.model |
claude-sonnet-4-6 |
Model name (e.g. gpt-4o, qwen2.5-coder:14b) |
forgeswarm.baseUrl |
http://localhost:11434/v1 |
Local model server (Ollama default) |
forgeswarm.testCommand |
pytest -x -q |
How your project proves changes work |
forgeswarm.pythonPath |
python3 |
Interpreter that launches the engine |
Notes on local models
Use a tool-calling-capable model (qwen2.5-coder, llama3.1+, mistral-nemo). 14B+ recommended — smaller models handle single edits but struggle with multi-step agent loops. Expect lower completion rates than frontier API models; the test-verification loop matters even more locally.
License
MIT
Pre-publish checklist
Before running vsce publish, personalize these placeholders:
-
package.json→"publisher": your real Marketplace publisher ID -
package.json→"repository.url","bugs.url","homepage": your real GitHub repo URL -
LICENSE→ copyright holder name, if you want something other than "ForgeSwarm Contributors" - Confirm
media/icon.pngrenders correctly (128×128, PNG — vsce rejects SVG icons) -
vsce package, then Install from VSIX locally and smoke-test before publishing