Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Loom CodeNew to Visual Studio Code? Get it now.
Loom Code

Loom Code

Loom

|
2 installs
| (0) | Free
A VS Code coding agent with a fast Go backend, approval-aware tools, sessions, modes, MCP, and local indexing.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Loom Code

Loom Code is a local-first AI coding agent for VS Code. It pairs a polished React chat UI with a TypeScript extension host and a fast Go agent backend, so the model can inspect code, edit files, run commands, ask planning questions, use MCP tools, and keep long work visible without hiding the machinery.

Why Loom Code?

Loom is built for developers who want an agent they can actually read, steer, and trust inside their editor.

  • Fast local agent backend: the LLM loop, tools, prompt assembly, indexing, MCP client, and sub-agent orchestration run in Go.
  • VS Code-native control plane: the TypeScript host owns editor APIs, SecretStorage, approvals, sessions, diagnostics, diff previews, and webview state.
  • Readable transcripts: every tool call renders as one compact card with input, output, approval state, and expandable details.
  • Real approval controls: approve one action, batch approvals, allow a category, remember specific rules, or keep everything manual.
  • Provider choice: use Anthropic, OpenAI, OpenAI-compatible providers such as OpenRouter, Groq, Cerebras, Vercel AI Gateway, Azure OpenAI, vLLM, or local OpenAI-compatible servers such as Ollama and LM Studio.
  • Repo-native behavior: Loom loads LOOM.md, provider-native agent instruction files, skills, sub-agent presets, and slash commands so the agent follows the conventions your repo already carries.

Features

Agent modes

Switch between Code, Architect, Ask, and Debug modes. Modes define the active prompt and available tools, and natural-language requests such as "use architect mode" are detected by shared host/webview code. Custom modes can be added through loom.modes.

Safe edits and command execution

Loom can read files (with offset/limit for narrow slices of large files), search content with regex, locate files by name glob via find_files, inspect diagnostics, apply diffs, run foreground or background commands, read process output, and stop processes. Write and execute tools require approval unless your workspace policy allows them. Commands use a platform-native shell by default (PowerShell on Windows, /bin/bash or /bin/sh on macOS/Linux), and can opt into a specific shell or workspace-relative working directory when needed.

Sessions that survive reloads

Conversation sessions are owned by the VS Code host. Session indexes live in workspace state, while larger session bodies are stored under the extension storage directory so long chats stay usable.

MCP support

Configure stdio MCP servers through VS Code settings, .vscode/mcp.json, or the user MCP config directory. MCP tools appear beside Loom's built-in tools and keep their own approval category.

Workspace awareness

Loom maintains a workspace symbol index in Go. Tree-sitter extraction is available in CGO builds, non-CGO builds keep working with empty symbol lists, and optional embeddings add semantic search through Ollama or Voyage.

Read-only sub-agents

The built-in research, review, test-scout, architecture-mapper, and scout sub-agent presets let the main agent delegate focused investigations in parallel. research returns structured Answer / Evidence / Unverified summaries, review critiques an implementation surface, test-scout maps existing coverage plus missing scenarios before a fix lands, architecture-mapper returns a compact map (layers, public surface, import edges, cycles) of a named target tree before a refactor, and scout performs cheap repo-wide surveying first (folder map, hot files with line ranges, suggested next reads) when the relevant surface is still unclear. Workspaces can add custom presets under .loom/agents/.

Per-conversation scratchpad

Loom exposes a scratchpad tool the agent uses as private working memory between turns — a single markdown buffer persisted at <workspace>/.loom/scratchpad/<conversationId>.md. The agent reads, writes, appends to, or clears it; the user sees the calls as quiet tool cards in the transcript. Survives reload, capped at 64 KB.

Slash commands

Workspace slash commands live in .loom/commands/. Type / in the composer to expand a command into the user message before it is sent to the agent.

Loom now ships a /commit workflow that inspects the working tree with read-only git_status / git_diff, drafts a conventional commit message, and then asks for approval before staging or committing.

For test-driven bug fixes, add a workspace command like .loom/commands/test-fix.md and run /test-fix <bug report or failing behavior>. A good test-fix workflow should invoke test-scout first, add or update a failing regression test before editing code, apply the smallest fix, then run the narrowest relevant tests. If you later want proactive coverage work rather than bug fixing, consider a follow-up command such as /test-hardening <file or symbol>.

If you later want proactive coverage work rather than bug fixing, consider a follow-up command such as /test-hardening <file or symbol>.

First-run setup

The first-run panel is global, not per workspace. Pick a provider once, store API keys in VS Code SecretStorage, tune model settings, and override per workspace only when needed.

Git inspection and co-author trailer

Loom exposes read-only git_status and git_diff tools so the agent can inspect working-tree state and patches without paying an execution approval for every git status / git diff. When Loom drives a git commit in Code or Debug mode, it appends a Co-Authored-By: Loom <274610884+loom-code-ai@users.noreply.github.com> trailer to the commit message so its contribution shows up with an avatar on the commit page and Contributors list. Applies to -m, heredoc, and --amend shapes; existing trailers are not duplicated.

--amend shapes; existing trailers are not duplicated.

Doubling Continue

Long-running tasks stop after 32 model/tool turns by default. The stop card's Continue button raises the cap each time you press it (32 → 64 → 128 → …), so you can resume without losing conversation state. Other stop reasons (errors, cancellations) keep the default cap when resumed.

Install

Loom Code is currently distributed as per-platform VSIX packages from GitHub Releases or local builds.

code --install-extension dist/loom-win32-x64.vsix

Choose the package that matches your platform:

  • loom-darwin-arm64.vsix
  • loom-darwin-x64.vsix
  • loom-linux-arm64.vsix
  • loom-linux-x64.vsix
  • loom-win32-x64.vsix

See INSTALL.md for the full install and first-run guide. If macOS Gatekeeper or Windows SmartScreen blocks an unsigned binary, see TROUBLESHOOTING.md.

Configuration

Important settings:

  • loom.provider: anthropic, openai, openai-compatible, or local
  • openai-compatible presets include OpenRouter, Groq, Cerebras, Google AI Studio (Gemini), Vercel AI Gateway, LM Studio, and custom endpoints; setup surfaces include an official console link for key creation
  • loom.mcp.servers: stdio MCP server configuration
  • loom.embeddings.provider: disabled, ollama, or voyage
  • loom.telemetry.enabled: opt-in telemetry, disabled by default
  • loom.ui.accent, loom.ui.density, loom.ui.themeBias: webview theme

Telemetry never sends prompts, file contents, workspace paths, API keys, or raw machine IDs.

Responses API (experimental)

For OpenAI reasoning-capable models (gpt-5*, o3*, o4*, o5*), enabling Use OpenAI Responses API in Settings Advanced (or OPENAI_USE_RESPONSES=1) routes calls through /v1/responses and chains turns via previous_response_id. The server retains reasoning state, so subsequent turns ship only the delta (new tool results + new user message) instead of re-billing the entire history. Falls back to Chat Completions automatically on errors. openai-compatible providers (OpenRouter, Groq, etc.) always use Chat Completions.

Reasoning effort

For OpenAI reasoning-capable models, built-in modes ship sensible defaults so trivial turns don't burn budget on high reasoning chains:

  • Code / Ask / Debug → low
  • Architect → medium
  • Built-in read-only sub-agent presets (research, review, test-scout, architecture-mapper, scout) → low

The mode default wins per turn. The Advanced "Reasoning effort" setting in Settings is the provider-wide fallback (used when a mode has no opinion). Define a custom mode under loom.modes (or add reasoning_effort: to a .loom/agents/*.md preset) to override per-mode. Unknown gpt-5* / gpt-6* / o5* model names now fall back to a 400K context ceiling instead of 200K, so summarization fires less aggressively on new variants.

Project Instructions

Loom only reads LOOM.md for project rules and .loom/skills/, .loom/agents/, .loom/commands/ for skills, sub-agent presets, and slash commands. Foreign-format files (CLAUDE.md, AGENTS.md, GEMINI.md, .claude/, .codex/, .gemini/, .cursor/, .cursorrules, .github/copilot-instructions.md, .github/instructions/) are not loaded — this keeps the prompt prefix small and provider-neutral. Workspaces that want to share content across tools should symlink or generate LOOM.md from their other instruction file.

See docs/loom-md.md for size limits and examples.

Architecture

React webview <-> TypeScript extension host <-> Go agent binary
        postMessage        JSON-RPC 2.0 over LSP framing

Wire types live in src/shared/protocol.ts. The internal extension-agent RPC uses LSP Content-Length framing; external MCP stdio servers use newline-delimited JSON-RPC in agent/internal/mcp/.

Development

Requires Node 20+ and Go 1.22+.

npm run install:all
npm run build

This builds the Go agent for the current platform, the React webview, and the extension bundle. To package release VSIX files for every supported platform:

npm run package

Before release packaging, bump both package.json and package-lock.json so the generated VSIX metadata matches the release version.

Contributing

See CONTRIBUTING.md for development workflow and PR expectations. See SUBAGENTS.md for the sub-agent contract and TROUBLESHOOTING.md for setup, packaging, and runtime issues.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft