---
title: Limitations & Constraints
description: Understanding Verdent's limitations and constraints
---

## What You'll Learn

Known limitations of Verdent, including file format restrictions, tool constraints, and platform-specific considerations.

---

## Known Limitations

<Tabs>
  <Tab title="File Formats">
    ### Binary Files Not Supported

    Verdent's file tools only work with text-based formats. The following cannot be edited:

    | Format Type | Examples |
    |-------------|----------|
    | **Images** | PNG, JPG, GIF, SVG (as binary) |
    | **Videos** | MP4, AVI, MOV |
    | **Compiled Code** | EXE, DLL, SO |
    | **Archives** | ZIP, TAR, GZ |
    | **Office Docs** | DOCX, XLSX, PPTX |
    | **PDFs** | PDF files |

    **Workaround:** Binary files can be referenced in code or discussed conceptually, but modifications require external tools.
  </Tab>

  <Tab title="Tool Constraints">
    ### file_read Line Limits

    **Limitation:**
    - Large files (>10,000 lines) should be read in sections
    - Reading entire large files may cause context exhaustion

    **Solution:** Use line ranges: `file_read("file.js", start_line=100, max_lines=50)`

    ---

    ### bash Command Timeouts

    **Limitation:**
    - Maximum timeout: 120 seconds (2 minutes)
    - Long-running operations will be automatically terminated

    **Solution:** Break operations into smaller commands that complete within 2 minutes

    ---

    ### Search Performance

    **Limitation:**
    - Broad glob patterns (`**/*`) can return thousands of results
    - Regex searches slower than literal strings

    **Solution:** Use specific patterns and exclude unnecessary directories
  </Tab>

  <Tab title="Context Window">
    ### Context Exhaustion

    **Issue:**
    During long sessions or complex operations, the AI's context window can fill up, limiting the ability to reference earlier conversation.

    **Mitigation Strategies:**
    - Use subagents for focused tasks (results only consume main context)
    - Read files strategically with line ranges
    - Use `grep_file` before reading full contents

    <Tip>
    For files over 500 lines, always use line ranges to preserve context space.
    </Tip>
  </Tab>

  <Tab title="Connectivity">
    ### Internet Required

    Verdent requires an active internet connection at all times.

    **Impact:** Cannot work offline
    **Reason:** AI processing requires cloud connectivity

    ---

    ### Git Repository Required

    All projects must be git repositories for workspace isolation features.

    **Impact:** Non-git projects cannot use parallel agents or worktrees

    **Workaround:** Initialize git in any project directory:
    ```bash
    cd your-project
    git init
    git add .
    git commit -m "Initial commit"
    ```

    ---

    ### Nested Git Repositories

    If the selected directory's parent folder or subfolder is already a Git repository, support for this scenario is currently limited.

    **Recommendation:** Select a single Git repository as the project root.
  </Tab>

  <Tab title="Language Support">
    ### Support Quality Varies

    **Excellent Support:**
    - JavaScript, TypeScript, Python, React, Node.js, Java, Go

    **Very Good Support:**
    - C/C++, Rust, Ruby, Swift, Kotlin

    **Good Support:**
    - PHP, Assembly, Julia, Objective-C

    **Reason:** Common languages have more training data. Less common or domain-specific languages may have reduced support quality but remain functional.
  </Tab>
</Tabs>

---

## What Verdent Cannot Do

<Tabs>
  <Tab title="System Administration">
    ### No Direct System Administration

    **Cannot:**
    - Modify system settings
    - Install system software
    - Change system-level configurations
    - Restart system services

    **Scope:** Verdent operates within its workspace environment, not at the system administration level.
  </Tab>

  <Tab title="Autonomous Execution">
    ### Controlled Execution Only

    **Plan Mode Constraints:**
    - Plan Mode is read-only for safety
    - Cannot execute file modifications in Plan Mode
    - Must switch to Agent Mode for code changes

    **Safety Features:**
    - All file modifications tracked
    - Worktree isolation prevents accidental main branch changes
    - Review changes before rebasing worktrees

    <Warning>
    Verdent cannot execute commands in a worktree that you haven't explicitly opened. All operations are scoped to the active workspace.
    </Warning>
  </Tab>

  <Tab title="Real-Time Monitoring">
    ### No Real-Time Monitoring

    **Cannot:**
    - Monitor running processes continuously
    - Track file system changes in real-time
    - Alert on system events
    - Stream log files continuously

    **Alternative:** Use MCP integrations for external monitoring tools.
  </Tab>

  <Tab title="Network Operations">
    ### No Network Operations Without MCP

    **Built-in Limitations:**
    - Cannot make arbitrary HTTP requests (use `web_fetch` for specific pages)
    - No direct database connections (requires MCP)
    - Cannot access cloud services directly (requires MCP)
    - No real-time API integrations (requires MCP)

    **Solution:** Configure MCP servers for external system access.
  </Tab>
</Tabs>

---

## Platform-Specific Restrictions

### Operating System Differences

**bash Tool Behavior:**
| Platform | Shell | Notes |
|----------|-------|-------|
| **macOS** | bash/zsh | Full bash functionality |
| **Windows** | PowerShell | Some bash commands unavailable, use PowerShell equivalents |

**Path Handling:**
- Windows uses backslashes (`\`), Unix uses forward slashes (`/`)
- File paths may need adjustment for cross-platform projects

---

### macOS Considerations

| Issue | Details | Workaround |
|-------|---------|------------|
| **Gatekeeper warnings** | First launch may show security warning | System Preferences → Security → Open Anyway |
| **Keychain access** | May prompt for keychain permission | Grant access for authentication storage |

---

### Windows Considerations

| Issue | Details | Workaround |
|-------|---------|------------|
| **SmartScreen warnings** | May block initial installation | Click "More info" → "Run anyway" |
| **Long path support** | Git worktrees may hit path limits | Enable long paths in Windows settings |
| **Line endings** | Git may warn about CRLF/LF | Configure `git config core.autocrlf true` |

**Enabling Long Path Support (Windows 10+):**
```powershell
# Run as Administrator
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
```

---

## Workarounds for Common Limitations

<Tabs>
  <Tab title="Binary Files">
    ### Binary File Modification

    **Limitation:** Cannot edit images, PDFs, or compiled binaries

    **Workarounds:**
    - Reference external tools in bash commands: `bash("convert input.png -resize 50% output.png")`
    - Generate scripts that external tools can execute
    - Document manual steps for binary file operations

    **Example:**
    ```bash
    # Image conversion
    bash("convert input.png -resize 50% output.png")

    # PDF to text
    bash("pdftotext document.pdf output.txt")
    ```
  </Tab>

  <Tab title="Large Files">
    ### Large File Handling

    **Limitation:** Files over 10,000 lines strain the context window

    **Workarounds:**
    - Use line ranges: `file_read("large.log", start_line=1000, max_lines=100)`
    - Search first: `grep_content("ERROR", glob="large.log")` to find relevant sections
    - Break files into smaller modules for easier management

    <Tip>
    Always use `grep_content` first to identify relevant sections, then read only those specific line ranges.
    </Tip>
  </Tab>

  <Tab title="Context Window">
    ### Context Window Exhaustion

    **Limitation:** Long conversations fill the context window

    **Workarounds:**
    - Delegate to @verifier subagent for isolated validation tasks
    - Start new conversation for distinct tasks
    - Use worktrees to isolate different task contexts
    - Close unused worktrees to reduce cognitive load

    **Best Practice:** Start fresh sessions for distinct tasks rather than continuing very long conversations.
  </Tab>

  <Tab title="Platform Differences">
    ### Platform Command Differences

    **Limitation:** bash commands differ between Windows and Unix

    **Workarounds:**
    - Use cross-platform tools: npm scripts instead of raw bash
    - Conditional commands: `bash("if [[ \"$OSTYPE\" == \"linux-gnu\"* ]]; then ...; fi")`
    - Project-specific AGENTS.md with platform notes

    **Example:**
    ```bash
    # Cross-platform
    bash("npm run build")

    # Platform-specific conditional
    bash("if [[ \"$OSTYPE\" == \"linux-gnu\"* ]]; then make; else nmake; fi")
    ```
  </Tab>

  <Tab title="Timeouts">
    ### Timeout Constraints

    **Limitation:** bash commands timeout after 2 minutes (hard limit, cannot be extended)

    **Workarounds:**
    - Chain commands: `bash("task1") then bash("task2") then bash("task3")`
    - Break into smaller sequential operations that each complete within 2 minutes
    - Run long operations outside Verdent and provide results

    **Example:**
    ```bash
    # Extend timeout
    bash("npm run long-build", timeout=600000)

    # Chain operations
    bash("npm install && npm test && npm run build")
    ```
  </Tab>
</Tabs>

---

## Feature-Specific Limitations

### Parallel Agent Limits

- **No formal limit** on number of parallel agents
- **Practical limit:** 2-4 agents for most systems
- **Resource impact:** Each agent consumes memory and credits

**Recommendation:** Monitor system resources; reduce agents if performance degrades.

---

### MCP Server Limitations

- Requires Node.js for most MCP servers
- Some servers may require additional setup
- Server errors may not always have clear messages

**Recommendation:** Test MCP servers manually first; check server logs for detailed errors.

---

## Future Improvements

<Note>
Limitations are continuously being addressed. Check Verdent release notes for updates on expanded capabilities, increased limits, and new integrations.
</Note>

---

## See Also

<CardGroup cols={2}>
  <Card title="Troubleshooting" icon="wrench" href="/docs/verdent/help-support/common-issues">
    Quick fixes for common problems
  </Card>
  <Card title="System Requirements" icon="gear" href="/docs/verdent/getting-started/system-requirements">
    System requirements and compatibility
  </Card>
</CardGroup>
