This document covers AI coding assistants that integrate directly into Integrated Development Environments (IDEs), specifically Visual Studio Code and its derivatives. These systems operate as extensions or plugins within the IDE, providing real-time access to the development environment's features including file operations, terminal execution, diagnostics, and version control.
The four systems documented here are:
For web-based development platforms that provide full environments in the browser, see Web-Based Development Platforms. For browser-focused automation assistants, see Browser and Conversational Assistants.
IDE-integrated assistants differ from web-based and browser-focused tools in several fundamental ways:
| Characteristic | IDE-Integrated | Web-Based | Browser-Focused |
|---|---|---|---|
| Environment Access | Direct OS/shell access via extensions | Containerized cloud environments | Browser automation only |
| File System | Full local filesystem access | Project-scoped virtual filesystem | No direct file access |
| Tool Implementation | Extension API + native commands | Server-provided tools | Browser control protocols |
| State Persistence | Local workspace state | Server-side project state | Session-based state |
| Command Execution | Native shell (PowerShell, bash, zsh) | Docker containers | JavaScript execution only |
Sources: VSCode Agent/Prompt.txt1-405 Windsurf/Tools Wave 11.txt1-383
Diagram: IDE-Integrated Agent Architecture
This architecture demonstrates how IDE-integrated agents leverage the extension API to access IDE capabilities. The tool registry serves as the primary interface between the agent core and the IDE environment.
Sources: VSCode Agent/Prompt.txt68-381 Anthropic/Claude Code/Tools.json1-390 Windsurf/Tools Wave 11.txt1-383
The VSCode Agent identifies itself as "GitHub Copilot" and operates as a highly sophisticated automated coding agent with expert-level knowledge across programming languages and frameworks. The system emphasizes autonomous task completion without requiring explicit user permission for tool execution.
Core Operational Principles:
semantic_search)Sources: VSCode Agent/Prompt.txt3-26
Diagram: VSCode Agent Tool Categories
The VSCode Agent provides 20+ tools organized into seven functional categories. Each tool is designed to integrate seamlessly with VS Code's extension API.
Sources: VSCode Agent/Prompt.txt68-381
The VSCode Agent implements a three-tier search hierarchy optimized for different discovery patterns:
Search Tool Hierarchy:
semantic_search (Primary): Natural language queries for conceptual code discovery
grep_search (Pattern matching): Exact string or regex searches
isRegexp parameterfile_search (Name-based): Glob pattern matching on file paths
**/*.{js,ts} for all JavaScript/TypeScript filesSources: VSCode Agent/Prompt.txt19-36 VSCode Agent/Prompt.txt71-152
Diagram: VSCode Agent File Editing Sequence
The editing workflow enforces strict validation requirements to ensure code quality.
Editing Rules:
insert_edit_into_fileget_errors after every file modification// ...existing code... commentsinsert_edit_into_file Example Pattern:
Sources: VSCode Agent/Prompt.txt41-66 VSCode Agent/Prompt.txt326-346
The run_in_terminal tool provides shell command execution with special handling for background processes:
Parameters:
command: The shell command to executeexplanation: One-sentence description of command purposeisBackground: Boolean flag for long-running processesBackground Process Handling:
get_terminal_output to check output of background processesgit --no-pager or | cat)Execution Constraints:
; or && operators instead of separate callsSources: VSCode Agent/Prompt.txt190-224
The VSCode Agent provides specialized tools for project initialization:
create_new_workspace Tool:
get_project_setup_info Tool:
javascript, typescript, python, otherbasic, mcp-server, vscode-extension, next-js, vite, otherinstall_extension Tool:
<publisher>.<extension>Sources: VSCode Agent/Prompt.txt262-310
Windsurf Cascade operates on a revolutionary "AI Flow" paradigm, representing an autonomous operational model where the agent takes initiative in discovering context, planning, and executing tasks without constant user approval.
Core Principles:
Sources: Windsurf/Tools Wave 11.txt1-383
Diagram: Windsurf Cascade Tool Organization
Windsurf provides 30+ tools organized into seven major categories, with particularly strong capabilities in browser interaction and deployment automation.
Sources: Windsurf/Tools Wave 11.txt1-383
The browser preview system distinguishes Windsurf from other IDE-integrated assistants by providing deep integration with web application development:
browser_preview Tool:
Name: 3-5 word title for the web server (e.g., "Personal Website")Url: Full URL with scheme, domain, and port (e.g., http://localhost:8080)toolSummary: Brief 2-5 word summaryBrowser Interaction Tools:
open_browser_url: Navigate to URL in Windsurf Browserread_browser_page: Retrieve rendered page contentcapture_browser_console_logs: Extract console logs using page_idcapture_browser_screenshot: Capture current viewportget_dom_tree: Retrieve DOM structurelist_browser_pages: List all open pages with metadata (page_id, url, title, viewport size)Sources: Windsurf/Tools Wave 11.txt1-17 Windsurf/Tools Wave 11.txt126-161 Windsurf/Tools Wave 11.txt179-193
Diagram: Windsurf Search Strategy Decision Tree
codebase_search Tool:
view_code_item for full contentgrep_search Tool (ripgrep):
Filename, LineNumber, LineContentQuery: Search pattern (regex if IsRegex=true)SearchPath: Directory or file (required)Includes: Glob patterns for file filteringCaseInsensitive: Boolean flagMatchPerLine: True for line matches, false for file names onlyfind_by_name Tool (fd):
Pattern, Extensions, FullPath, MaxDepth, TypeSources: Windsurf/Tools Wave 11.txt35-43 Windsurf/Tools Wave 11.txt102-124 Windsurf/Tools Wave 11.txt134-155
Windsurf uses a unique replace_file_content tool that supports multiple non-adjacent edits in a single call:
ReplacementChunk Structure:
Editing Rules:
replace_file_content for the same fileReplacementChunks in one callTargetContent must EXACTLY match existing file content including whitespace.ipynb files (use different tool)Required Arguments Order:
TargetFile (must be specified first)Instruction: Description of changesReplacementChunks: Array of edit operationsCodeMarkdownLanguage: Language identifierTargetLintErrorIds: Optional lint error IDs being fixedSources: Windsurf/Tools Wave 11.txt231-260
Diagram: Windsurf Command Execution Flow
run_command Tool Parameters:
CommandLine: Exact command stringCwd: Current working directory (optional)SafeToAutoRun: Boolean for automatic execution without approvalBlocking: If true, blocks until command completesWaitMsBeforeAsync: Milliseconds to wait before going fully asyncSafety Guidelines:
cd commands (manage working directory with absolute paths)PAGER=catSafeToAutoRun=true for commands with no destructive side-effectsCommand Status Polling:
command_status tool checks background command progressCommandId: Background command IDWaitDurationSeconds: Wait time before returning status (0-60)OutputCharacterCount: Number of characters to retrieveSources: Windsurf/Tools Wave 11.txt262-283 Windsurf/Tools Wave 11.txt46-55
Windsurf provides end-to-end deployment automation for JavaScript web applications:
Diagram: Windsurf Deployment Workflow
Supported Frameworks:
eleventy, angular, astro, create-react-app, gatsby, gridsomegrunt, hexo, hugo, hydrogen, jekyll, middlemanmkdocs, nextjs, nuxtjs, remix, sveltekit, svelteDeployment Parameters:
Framework: Must match supported framework exactlyProjectPath: Full absolute path to project rootProjectId: For re-deploying to existing site (leave empty for new sites)Subdomain: Unique subdomain for new sites onlyDeployment Process:
read_deployment_config to validate project readinessdeploy_web_app with appropriate parameterscheck_deploy_status using returned windsurf_deployment_idSources: Windsurf/Tools Wave 11.txt27-33 Windsurf/Tools Wave 11.txt88-100 Windsurf/Tools Wave 11.txt195-201
create_memory Tool:
Provides CRUD operations for persistent memory storage across sessions.
Actions:
create: New memory with Title, Content, Tags, CorpusNamesupdate: Modify existing memory using Iddelete: Remove memory using IdMemory Guidelines:
CorpusNames (must exactly match system prompt values)UserTriggered=true if user explicitly requested memory operationMemory Use Cases:
trajectory_search Tool:
Semantic search across conversation history (Cascade conversations) or user activities.
Parameters:
ID: Cascade ID for conversationsQuery: Search query (empty returns all steps)SearchType: cascade for conversations, user for activitiesSources: Windsurf/Tools Wave 11.txt57-86 Windsurf/Tools Wave 11.txt302-312
Amp is Sourcegraph's powerful AI coding agent with configurable LLM support, including specialized model routing for different task types.
Configuration:
amp.url and amp.gpt5claude-4-sonnet.yaml: Default configuration tuned for Claude Sonnet 4.xgpt-5.yaml: Alternative configuration for GPT-5 when amp.gpt5: trueConfiguration Example:
Sources: Amp/README.md1-21
Diagram: Amp Multi-Model Architecture with Oracle Integration
Oracle Tool (o3 Reasoning Model):
When to Use Oracle:
Oracle Prompting Guidelines:
Sources: Amp/claude-4-sonnet.yaml211-298
Diagram: Amp Sub-agent Workflow Pattern
Task Tool:
Codebase Search Agent:
Best Practices:
Sources: Amp/gpt-5.yaml220-287 Amp/claude-4-sonnet.yaml211-298
Core Tools (Amp):
Specialized Features:
AGENTS.md context loadingtodo_write, todo_read)Sources: Amp/claude-4-sonnet.yaml1-700 Amp/gpt-5.yaml1-700
Role Principles (from gpt-5.yaml):
Guardrails:
Context Understanding Strategy:
Sources: Amp/gpt-5.yaml14-60
Default: Parallel for all independent work (reads, searches, diagnostics, writes, subagents)
What to Parallelize:
When to Serialize:
Good Parallel Example:
Oracle(plan-API)
codebase_search_agent("validation flow")
codebase_search_agent("timeout handling")
Task(add-UI)
Task(add-logs)
→ disjoint paths → parallel
Bad Example:
Task(refactor) touching api/types.ts
Task(handler-fix) also touching api/types.ts
→ must serialize
Sources: Amp/gpt-5.yaml72-121
Claude Code provides a comprehensive tool ecosystem organized into four primary categories:
Diagram: Claude Code Tool Organization
Sources: Anthropic/Claude Code/Tools.json1-390
The Task tool launches specialized sub-agents for complex, multi-step autonomous operations:
Available Agent Types:
general-purpose:
statusline-setup:
output-style-setup:
Usage Guidelines:
When to Use Task Tool:
When NOT to Use Task Tool:
Best Practices:
Sources: Anthropic/Claude Code/Tools.json3-30
Diagram: Claude Code File Editing Decision Tree
Edit Tool:
old_string is not unique (unless replace_all=true)spaces + line number + tabold_string or new_stringMultiEdit Tool:
replace_all for renaming variables across fileWrite Tool:
NotebookEdit Tool:
.ipynb files)replace, insert, deletecode, markdowncell_id to target specific cellSources: Anthropic/Claude Code/Tools.json193-296 Anthropic/Claude Code/Tools.json299-365
Bash Tool: Executes shell commands with comprehensive control over execution behavior.
Key Parameters:
command: The command to execute (required)timeout: Optional timeout in milliseconds (max 600000ms / 10 minutes, default 120000ms)description: Clear 5-10 word description of command purposerun_in_background: Boolean for background executionImportant Constraints:
cd: Maintain working directory with absolute pathsfind or grep → use Grep, Glob, or Task tools insteadcat, head, tail, ls → use Read and LS toolsrg (pre-installed)cd "path with spaces"); or && operators, NOT newlinesBackground Process Management:
run_in_background=true for long-running processes& operator manuallysleep in background modeSources: Anthropic/Claude Code/Tools.json31-60
Git Commit Workflow:
git status - see untracked filesgit diff - see staged and unstaged changesgit log - see recent commit messages for style consistencygit status to verifyCommit Message Format:
[Commit message]
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
Commit Message Best Practices:
-i flag (interactive mode not supported)Pull Request Creation:
git status - check untracked filesgit diff - see staged/unstaged changesgit log and git diff [base-branch]...HEAD - full commit history from divergence-u flag if neededgh pr create with HEREDOC formatPR Body Format:
## Summary
<1-3 bullet points>
## Test plan
[Checklist of TODOs for testing...]
🤖 Generated with [Claude Code](https://claude.ai/code)
GitHub CLI Usage:
gh command for ALL GitHub operations (issues, PRs, checks, releases)gh to get informationgh api repos/foo/bar/pulls/123/commentsSources: Anthropic/Claude Code/Tools.json32-60
Glob Tool:
**/*.js or src/**/*.tsGrep Tool:
grep or rg as Bash commandglob parameter or type parametercontent: Show matching linesfiles_with_matches: Show only file paths (default)count: Show match countsinterface\{\} to find interface{}multiline: true for cross-line patternsLS Tool:
ignore parameter for glob patternsSources: Anthropic/Claude Code/Tools.json61-174
The TodoWrite tool provides structured task list management for complex work:
Tool Schema:
Usage Guidelines:
When to Use:
in_progress BEFORE beginning)completed)When NOT to Use:
Sources: Anthropic/Claude Code/Tools.json390-470 (in full Tools.json file beyond provided excerpt)
| System | Tool Prefix | Organization Strategy | Example |
|---|---|---|---|
| VSCode Agent | None | Verb-based descriptive names | semantic_search, read_file, get_errors |
| Windsurf | None | Verb-based with underscore separation | codebase_search, replace_file_content, run_command |
| Amp | None | Simple noun/verb names | Bash, Read, Edit, Grep, Oracle |
| Claude Code | None | Mixed case with descriptive names | Task, MultiEdit, TodoWrite, ExitPlanMode |
Diagram: File Editing Approaches Across IDE-Integrated Systems
| Feature | VSCode Agent | Windsurf | Amp | Claude Code |
|---|---|---|---|---|
| Read Before Edit | Mandatory (enforced) | Best practice | Best practice | Mandatory (enforced) |
| Primary Edit Tool | insert_edit_into_file | replace_file_content | Edit | Edit / MultiEdit |
| Multi-edit Support | Multiple tool calls | Single call with array | Multiple calls | MultiEdit tool |
| Validation | Mandatory get_errors | Optional lint IDs | Via diagnostics | Via diagnostics |
| Comments for Ellipsis | // ...existing code... | No ellipsis pattern | No ellipsis pattern | No ellipsis pattern |
Sources: VSCode Agent/Prompt.txt41-66 Windsurf/Tools Wave 11.txt231-260 Anthropic/Claude Code/Tools.json220-296
| System | Tool Name | Background Support | Safety Mechanism | Output Monitoring |
|---|---|---|---|---|
| VSCode Agent | run_in_terminal | isBackground flag | User always approves | get_terminal_output with ID |
| Windsurf | run_command | Blocking flag + async | SafeToAutoRun flag | command_status with ID |
| Amp | Bash | run_in_background | User approval | BashOutput tool |
| Claude Code | Bash | run_in_background | User approval | BashOutput, KillBash |
Common Constraints:
cd commandsSources: VSCode Agent/Prompt.txt190-224 Windsurf/Tools Wave 11.txt262-283 Anthropic/Claude Code/Tools.json32-60
Diagram: Search Capabilities Across IDE-Integrated Systems
Semantic Search Comparison:
semantic_search never in parallel, returns full workspace if smallcodebase_search degrades above 500 files, truncates non-top resultsCodebase Search Agent sub-agent for conceptual searchesTask tool with general-purpose agent typePattern Search Comparison:
Sources: VSCode Agent/Prompt.txt71-152 Windsurf/Tools Wave 11.txt35-155 Anthropic/Claude Code/Tools.json61-148
| System | Sub-agent Tool | Purpose | Specializations |
|---|---|---|---|
| VSCode Agent | None | N/A | No sub-agent delegation |
| Windsurf | trajectory_search | Access conversation history | Semantic search across past conversations |
| Amp | Task, Oracle, Codebase Search Agent | Parallel specialization | Task execution, reasoning, code discovery |
| Claude Code | Task | Launch specialized agents | general-purpose, statusline-setup, output-style-setup |
Amp's Multi-agent Approach:
Claude Code's Agent Types:
Sources: Amp/gpt-5.yaml220-287 Anthropic/Claude Code/Tools.json3-30
| System | Memory Tool | Persistence Scope | Features |
|---|---|---|---|
| VSCode Agent | update_user_preferences | User preferences only | Saves corrections and coding preferences |
| Windsurf | create_memory, trajectory_search | Workspace-specific, cross-session | CRUD operations, tags, semantic search |
| Amp | AGENTS.md auto-context | Project-level | Auto-loads commands, conventions, structure |
| Claude Code | None explicit | N/A | Relies on conversation context |
Windsurf Memory Categories:
Memory Best Practices (Windsurf):
CorpusNames matchUserTriggered=true for explicit user requestsSources: VSCode Agent/Prompt.txt38-39 Windsurf/Tools Wave 11.txt57-86 Amp/gpt-5.yaml300-314
| Capability | VSCode Agent | Windsurf | Amp | Claude Code |
|---|---|---|---|---|
| Browser Preview | ❌ | ✅ Full integration | ❌ | ❌ |
| Deployment Pipeline | ❌ | ✅ Netlify automation | ❌ | ❌ |
| Multi-Model Routing | ❌ | ❌ | ✅ Oracle (o3) + Sonnet | ❌ |
| Project Scaffolding | ✅ create_new_workspace | ❌ | ✅ Task Tool | ❌ |
| Extension Management | ✅ install_extension | ❌ | ❌ | ❌ |
| Jupyter Notebook Editing | ✅ create_new_jupyter_notebook | ❌ | ❌ | ✅ NotebookEdit |
| VS Code API Reference | ✅ get_vscode_api | ❌ | ❌ | ❌ |
| Git Operations | ✅ get_changed_files | ❌ | ❌ | ✅ Full workflow |
| MCP Server Integration | ❌ | ✅ list_resources, read_resource | ❌ | ❌ |
| Parallel Tool Execution | ✅ (except semantic_search) | ✅ parallel tool | ✅ Default behavior | ✅ Batching |
| Task List Management | ❌ | ❌ | ✅ todo_write, todo_read | ✅ TodoWrite |
Sources: VSCode Agent/Prompt.txt1-405 Windsurf/Tools Wave 11.txt1-383 Amp/claude-4-sonnet.yaml1-700 Anthropic/Claude Code/Tools.json1-390
All IDE-integrated systems enforce or strongly recommend reading files before editing:
Enforcement Mechanisms:
Rationale:
Sources: VSCode Agent/Prompt.txt42 Anthropic/Claude Code/Tools.json194-217 Windsurf/Tools Wave 11.txt231-260
Diagram: Parallel vs Sequential Execution Decision Flow
Systems Supporting Parallelization:
semantic_searchparallel tool with tool_uses arrayCommon Parallelizable Operations:
Must Serialize:
Sources: VSCode Agent/Prompt.txt35 Windsurf/Tools Wave 11.txt371-382 Amp/gpt-5.yaml72-121
Validation Requirements:
| System | Validation Tool | When Required | Error Limit |
|---|---|---|---|
| VSCode Agent | get_errors | After every file edit (MANDATORY) | No specified limit |
| Windsurf | Lint error IDs in edit calls | Optional, for targeted fixes | No specified limit |
| Amp | get_diagnostics | After completing tasks | No specified limit |
| Claude Code | Diagnostics | After edits | 3-attempt limit (implied) |
Validation Workflow Pattern:
Sources: VSCode Agent/Prompt.txt48 Windsurf/Tools Wave 11.txt256-257 Amp/gpt-5.yaml50-57
Universal Constraints:
Diagram: Terminal Command Constraints and Requirements
Common Prohibitions:
Common Requirements:
; or &&, not newlinesSources: VSCode Agent/Prompt.txt191 Windsurf/Tools Wave 11.txt263 Anthropic/Claude Code/Tools.json32
Refresh this wiki