ForgeSwarm for VS Code
Before publishing: replace your-publisher-name and your-github-username
in package.json with 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.png renders correctly (128×128, PNG — vsce rejects SVG icons)
- [ ]
vsce package, then Install from VSIX locally and smoke-test before publishing
| |