Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>DoIt — AI Coding AgentNew to Visual Studio Code? Get it now.
DoIt — AI Coding Agent

DoIt — AI Coding Agent

anuraghkp

|
1 install
| (0) | Free
AI coding agent with chat, code actions, and diagnostics integration
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

doit-vscode

VS Code extension for DoIt — the AI coding agent.

Install

Download doit-vscode-0.2.2.vsix from the GitLab release, then:

code --install-extension doit-vscode-0.2.2.vsix

Or in VS Code: Ctrl+Shift+P → "Install from VSIX..."

Configure

Open VS Code Settings (Ctrl+,) → search "DoIt":

Setting Value
doit.baseUrl http://192.168.1.95:4000/v1
doit.apiKey Your personal API key
doit.model qwen3-coder-30B

Falls back to ~/.config/doit/config.json if VS Code settings are empty.

Features

  • Chat sidebar — DoIt icon in activity bar opens the chat panel
  • Code actions — Right-click selected code → Explain / Fix / Ask DoIt (includes language ID and diagnostics)
  • Inline permissions — Allow / Allow All / Deny for file edits and commands
  • Diff preview — Shows structured diff before approving edits
  • Keep/Undo bar — After edits, one-click to keep or revert all changes
  • Status bar — Git branch, context tokens, indexing progress, mode indicator
  • Markdown rendering — Headings, lists, bold, italic, code blocks
  • Slash commands — /init, /new, /plan, /direct, /help

Development

# From monorepo root — build core first
cd packages/core && npx tsc
cd packages/vscode

# Build
npm run build          # One-shot esbuild
npm run watch          # Watch mode

# Package VSIX
npx @vscode/vsce package --no-dependencies

# Install locally
code --install-extension doit-vscode-*.vsix --force

Debug in VS Code

  1. Open the monorepo in VS Code
  2. Press F5 to launch Extension Development Host
  3. The extension loads from packages/vscode/dist/extension.js

Architecture

src/
├── extension.ts          # Entry point, command registration, webview provider
├── agent-bridge.ts       # Core agent wrapper (events, permissions, tool wrapping)
├── diff-store.ts         # Virtual document provider for diff views
├── terminal.ts           # VS Code output channel for run_command
├── logger.ts             # Dual logger (output channel + file)
└── webview/
    ├── main.js           # Chat UI logic (messages, tool calls, permissions, status bar)
    ├── markdown.js       # Markdown renderer (headings, lists, code blocks)
    └── style.css         # VS Code-themed styles

Key Design Decisions

  • esbuild bundled — Single CJS file, native modules (LanceDB, ONNX) stubbed out via esbuild plugin
  • XML fragment filter — Strips raw <function=...> tags from streaming text (Qwen3-Coder parser artifacts)
  • structuredPatch diffs — Accurate +N -N stats using the diff library
  • Singleton output channel — Single "DoIt Commands" channel reused across all run_command calls
  • Abort-safe permissions — Pending permission dialogs resolve as denied on abort (no deadlock)
  • Session reset cleanup — /new clears messages, todos, memory, diff store, and project context cache
  • Context updates — Token count pushed to webview status bar via context-update events
  • Status bar polling — Git branch, indexing, mode refreshed every 3 seconds via extension → webview messages

Webview Communication

Extension → Webview:

  • text-delta — Streaming text chunk
  • tool-call — Tool execution started
  • tool-result — Tool execution complete
  • permission-request — Inline Allow/Deny prompt
  • done — Turn complete (with edited files for Keep/Undo)
  • error / info — Status messages
  • context-update — Token count
  • status-update — Git branch, cwd, indexing, mode
  • context — Active file indicator

Webview → Extension:

  • message — User chat message
  • abort — Stop current response
  • new-session — Reset conversation
  • set-mode — Switch plan/direct
  • permission-response — Allow/Deny/AllowAll
  • undo-file — Revert file changes
  • init-context — Generate .doit/context.md
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft