Verdent Docs

Tool System Reference

Complete reference for Verdent's tool system

What You'll Learn

Comprehensive reference for Verdent's built-in tool system, including file operations, search capabilities, command execution, and integration tools.


Available Tools Overview

Verdent for VS Code provides a comprehensive toolkit for code manipulation, navigation, and external interaction.

ToolPurposeKey Capabilities
file_readRead file contentsSupports line ranges for large files, works with all text formats
file_editTargeted modificationsReplace exact text matches, multiple replacements, preserves formatting
file_writeCreate or overwrite filesComplete file creation/replacement, handles text content
ToolPurposeKey Capabilities
bashShell command executionTimeout configuration, summary descriptions, command chaining
spawn_subagentDelegate to specialistsLaunch general, explorer, verifier, or code-reviewer subagents
todo_updateTrack task progressManage task lists, update status, progress tracking
ToolPurposeKey Capabilities
web_searchInternet searchQuery execution, result count control, freshness filtering
web_fetchFetch and analyze pagesRetrieve content, extract information with queries

Tool Capabilities and Use Cases

file_read

Capabilities:

  • Read complete file contents or specific line ranges
  • Essential for understanding code before modifications
  • Efficient handling of large files through range specification

Use Cases:

  • Reading configuration files before editing
  • Understanding existing implementation patterns
  • Reviewing test files to understand coverage

Example:

# Read entire file
file_read("src/components/Button.tsx")

# Read specific range for large files
file_read("package-lock.json", start_line=1, max_lines=50)

file_edit

Capabilities:

  • Precise text replacement using exact string matching
  • Multiple replacement operations with multiple flag
  • Preserves file structure and formatting

Use Cases:

  • Updating function implementations
  • Modifying configuration values
  • Refactoring variable names across files

Best Practice: Use for targeted changes. For complete rewrites, use file_write instead.


file_write

Capabilities:

  • Create new files from scratch
  • Completely replace existing file contents
  • Handle any text-based format

Use Cases:

  • Generating new components or modules
  • Creating configuration files
  • Writing test files

Warning: Overwrites existing files completely. Use file_edit for partial modifications.

bash

Capabilities:

  • Execute shell commands
  • Maximum timeout: 120 seconds (2 minutes, hard limit)
  • Chain commands with && for dependencies
  • Provide descriptive summaries for clarity

Use Cases:

  • Running tests
  • Building projects
  • Installing dependencies
  • Git operations
  • Database migrations

Example:

# Run tests
bash("npm test", timeout=60000, summary="Run Jest test suite")

# Chain dependent commands
bash("npm install && npm run build", timeout=120000)

Security: Commands execute with user permissions. Review commands in Manual Accept Mode.


spawn_subagent

Capabilities:

  • Launch specialized subagents with isolated contexts
  • Types: explorer, verifier, code-reviewer
  • Delegate complex tasks without polluting main context
  • Parallel subagent execution for efficiency

Use Cases:

  • explorer: Search large codebases for patterns
  • verifier: Validate implementation logic
  • code-reviewer: Security and quality assessment

Best Practice: Delegate exploratory research to Explorer subagent to preserve main conversation context.


todo_update

Capabilities:

  • Create and manage task lists
  • Update task status (pending, in_progress, completed)
  • Track progress across complex implementations

Use Cases:

  • Breaking down multi-step features
  • Tracking refactoring progress
  • Managing migration tasks

Capabilities:

  • Query internet search engines
  • Control result count
  • Filter by freshness (recent days)

Use Cases:

  • Finding documentation for unfamiliar APIs
  • Researching error messages
  • Checking current best practices

web_fetch

Capabilities:

  • Retrieve web page contents
  • Analyze content with specific queries
  • Extract structured information

Use Cases:

  • Reading documentation pages
  • Analyzing API documentation
  • Extracting examples from tutorials

File Format Support

Verdent works with all text-based file formats through its file operation tools.

CategoryLanguages/Extensions
WebJavaScript, TypeScript, HTML, CSS, SCSS, LESS
BackendPython, Java, Go, Rust, C, C++, C#, Ruby, PHP, Perl
MobileSwift, Kotlin, Dart (Flutter), Objective-C
FunctionalHaskell, Scala, Elixir, Clojure, F#
ScriptingBash, PowerShell, Zsh, Fish
DataSQL, R, Julia, MATLAB
FormatCommon Examples
JSONpackage.json, tsconfig.json, settings.json
YAMLdocker-compose.yml, GitHub Actions, Kubernetes configs
TOMLCargo.toml, pyproject.toml
XMLpom.xml, web.xml, config files
INI.gitconfig, .editorconfig
ENV.env files, environment configuration
HCLTerraform configuration
FormatUse Cases
MarkdownREADME.md, documentation files
HTMLTemplates, web pages
LaTeXScientific documents, academic papers
reStructuredTextPython documentation
AsciiDocTechnical documentation

Data Formats

FormatDescription
CSV/TSVTabular data files
Text-based dataLog files, data dumps
JSON/YAMLStructured data interchange

Build & Package Files

FilePurpose
MakefileBuild automation
package.jsonNode.js dependencies
requirements.txtPython packages
GemfileRuby gems
Cargo.tomlRust packages
build.gradleGradle builds
Format TypeExamplesEditability
ImagesPNG, JPG, GIF, SVG (binary)Not directly editable
VideosMP4, AVI, MOVNot directly editable
Compiled binariesEXE, DLL, SONot directly editable
ArchivesZIP, TAR, GZNot directly editable
Office documentsDOCX, XLSX, PPTXNot directly editable
PDFsPDF filesNot directly editable

Binary files may be referenced in code but cannot be modified through file tools.


Programming Language Support

Verdent provides comprehensive support for all text-based programming languages and frameworks.

Language/FrameworkSupport LevelCommon Use Cases
JavaScriptExcellentFrontend logic, Node.js backends, tooling
TypeScriptExcellentType-safe web apps, large-scale projects
ReactExcellentComponent-based UIs, hooks, state management
VueExcellentProgressive web apps, single-file components
AngularExcellentEnterprise applications, TypeScript integration
SvelteVery GoodCompiled components, reactive programming
HTML/CSSExcellentMarkup, styling, responsive design
SCSS/LESSExcellentAdvanced styling, variables, mixins
Language/FrameworkSupport LevelCommon Use Cases
PythonExcellentAPIs, data processing, automation
Django/Flask/FastAPIExcellentWeb frameworks, REST APIs
Node.js/ExpressExcellentJavaScript backends, microservices
Java/SpringExcellentEnterprise applications, Spring Boot
GoExcellentHigh-performance services, CLIs
RustVery GoodSystems programming, performance-critical code
C/C++Very GoodSystems, embedded, game engines
C# / .NETExcellentWindows apps, web services, Unity
Ruby/RailsVery GoodWeb applications, rapid development
PHPGoodWordPress, Laravel, legacy apps
Language/FrameworkSupport LevelCommon Use Cases
SwiftExcellentiOS/macOS native apps
KotlinExcellentAndroid native apps
Dart/FlutterExcellentCross-platform mobile apps
React NativeExcellentJavaScript-based mobile apps
Objective-CGoodLegacy iOS/macOS apps
LanguageSupport LevelCommon Use Cases
PythonExcellentNumPy, Pandas, scikit-learn, TensorFlow
RVery GoodStatistical analysis, data visualization
SQLExcellentDatabase queries, schema design
JuliaGoodScientific computing, numerical analysis
LanguageSupport LevelCommon Use Cases
CVery GoodSystems programming, embedded
C++Very GoodPerformance-critical applications
RustVery GoodMemory-safe systems programming
GoExcellentConcurrent systems, cloud services
AssemblyGoodLow-level optimization, debugging

Support Quality: Common languages (JavaScript, Python, TypeScript) have stronger support due to extensive training data. Less common or domain-specific languages may have reduced support quality but remain functional.


Usage Limits and Best Practices

file_read Efficiency

Best Practices:

  • Use line ranges for files over 500 lines to avoid context overload
  • Read only relevant sections needed for the task
  • For large files, use grep_content first to identify relevant line numbers
# Good: Read specific section
file_read("large-config.json", start_line=100, max_lines=50)

# Less efficient: Read entire large file
file_read("large-config.json")  # May consume excessive context

file_edit Precision

Best Practices:

  • Ensure exact string matches to avoid failed edits
  • For multiple similar changes, use multiple=true flag
  • Verify file paths before editing

file_write Safety

Best Practices:

  • Double-check paths to prevent accidental overwrites
  • Use for new files or complete rewrites only
  • For modifications, prefer file_edit for safety

bash Best Practices

Safe Command Execution:

  • Provide clear summaries for command descriptions
  • Set appropriate timeouts for long-running operations
  • Chain dependent commands with &&
  • Review destructive commands carefully (rm, drop, truncate)
# Good: Clear summary, reasonable timeout
bash("npm run build", timeout=120000, summary="Build production bundle")

# Good: Chained dependencies
bash("npm install && npm run test", timeout=180000)

Security Considerations

Critical Safety Rules:

  • Commands execute with user permissions
  • Never run untrusted commands
  • Use Manual Accept Mode for review in shared codebases
  • Avoid commands that expose credentials or sensitive data

Always review bash commands in Manual Accept Mode when working in shared codebases or production environments.

Subagent Delegation Efficiency

When to Use Subagents:

  • Explorer: Codebase searches, architecture questions (saves main context)
  • Verifier: Quick validation checks (isolated verification)
  • Code-reviewer: Security and quality reviews (detailed analysis)
  • General: Complex multi-step tasks (parallel execution)

Best Practice: Delegate exploratory and research tasks to subagents to preserve main conversation context for active development work.


Context Management

Strategic Tool Usage:

  • Read files strategically - only what's needed
  • Use subagents for background research
  • Monitor context consumption during long sessions
  • Break complex operations into steps with todo_update

Efficient Workflows:

  1. Planning: Use glob/grep to identify scope
  2. Reading: Read only relevant files/sections
  3. Execution: Delegate to subagents when appropriate
  4. Verification: Quick checks with Verifier subagent

File Size Limits

Large File Handling: Very large files (>10,000 lines) should be read in sections to avoid:

  • Context window exhaustion
  • Slow response times
  • Memory issues

For files over 500 lines, always use line ranges with file_read to maintain optimal performance.


Tool Timeout Defaults

Tool Limits:

  • Bash timeout: 120 seconds (2 minutes) maximum
  • File operations: No size limits (large files automatically read in batches)
  • Large file handling: Files >256KB return only first 256KB of content
  • Search results: No limits on glob or grep_content results
  • Concurrent subagents: No limits on parallel execution

Timeout Configuration:

  • Set explicit timeouts for long-running operations
  • Monitor for hanging processes
  • Commands exceeding 2-minute timeout will be terminated

Concurrent Operations

Parallel Execution: Multiple subagents can run in parallel for faster complex operations. The main agent automatically handles coordination.

Performance Benefits:

  • Reduced total execution time for multi-step tasks
  • Efficient resource utilization
  • Automatic task orchestration
  • No limits on number of concurrent subagents

See Also