Skip to content

Latest commit

 

History

History
889 lines (712 loc) · 29.4 KB

File metadata and controls

889 lines (712 loc) · 29.4 KB

Browser MCP Integration Analysis

Combining BrowserMCP and AgentDesk AI Browser Tools

Analysis Date: October 7, 2025
Repositories Analyzed:

  • BrowserMCP/mcp (4.5k stars, 87 open issues, 4 open PRs)
  • AgentDeskAI/browser-tools-mcp (6.7k stars, 71 open issues, 16 open PRs)

Executive Summary

This analysis explores the feasibility of integrating BrowserMCP's simplicity with AgentDesk AI's advanced features to create a unified, best-of-both-worlds browser automation solution for AI assistants.

Key Recommendation: A hybrid architecture is viable and would address significant pain points in both communities while preserving each solution's strengths.


1. Repository Health Metrics

BrowserMCP/mcp

  • Community Engagement: 4.5k stars, 333 forks
  • Issue Resolution Rate: 28% (34 closed / 121 total)
  • PR Acceptance Rate: 43% (3 closed / 7 total)
  • Development Velocity: Low (4 open PRs, minimal recent activity)
  • Last Release: v0.1.3 (April 2025)
  • Maintenance Status: ⚠️ Appears to have slowed development

AgentDeskAI/browser-tools-mcp

  • Community Engagement: 6.7k stars, 498 forks
  • Issue Resolution Rate: 54% (84 closed / 155 total)
  • PR Acceptance Rate: 61% (25 closed / 41 total)
  • Development Velocity: Moderate (16 open PRs, active contributions)
  • Last Release: v1.2.0 (March 2025)
  • Maintenance Status: ✅ Actively maintained with community contributions

Verdict: AgentDesk AI shows healthier maintenance patterns and community engagement.


2. Critical Pain Points Analysis

Common Issues in BOTH Repositories

2.1 Connection & Server Discovery Problems

BrowserMCP Issues:

  • #126: Extension connects even without MCP server
  • #117: MCP server closes in OpenCode
  • #116: Not working in Cursor or Windsurf
  • #113: Can't start process on port 9009

AgentDesk Issues:

  • #209: MCP server in Cursor fails to connect
  • #206: Not connected
  • #193: Server discovery failed
  • #182: Failed to discover browser connector server

Impact: HIGH - This is the #1 user frustration across both solutions Integration Opportunity: Create robust server discovery with fallback mechanisms

2.2 Screenshot Management

BrowserMCP Issues:

  • #121: Screenshots cause "context window exceeded"
  • #106: Screenshot error in Cursor
  • #100: Feature request to save screenshots to file

AgentDesk Issues:

  • #195: Auto-sends screenshots in random apps
  • #181: AI doesn't read screenshot images
  • #200: Request to transmit screenshots directly into AI context

Impact: HIGH - Screenshots are critical for AI understanding Integration Opportunity: Smart screenshot compression + direct AI context transmission

2.3 Multi-Tab Support

BrowserMCP Issues:

  • #127: Multi-tab support request
  • #124: How to switch browser tabs
  • #118: Opens new tab, losing logged-in context

AgentDesk Issues:

  • Not explicitly mentioned, but implied in automation workflows

Impact: MEDIUM-HIGH - Essential for complex automation Integration Opportunity: Built-in tab management with session preservation

2.4 Console Logging

BrowserMCP Issues:

  • #123: Can't capture browser console logs
  • #108: Browser log only gets latest one

AgentDesk Strength:

  • ✅ Advanced console monitoring already implemented
  • Has DevTools integration

Integration Opportunity: Port AgentDesk's console monitoring to simplified architecture


3. Feature Gap Analysis

What BrowserMCP Has That AgentDesk Lacks

3.1 Stealth Mode & Bot Detection Avoidance

  • BrowserMCP Advantage: Uses real browser fingerprint
  • Documented Benefit: "Avoids bot detection"
  • Use Cases: Automation on sites with anti-bot measures

3.2 Simpler Architecture

  • BrowserMCP Advantage: 2-layer (MCP Server → Extension)
  • Benefits:
    • Faster setup
    • Lower latency
    • Fewer moving parts
    • Better for local-only scenarios

3.3 Direct WebSocket Communication

  • BrowserMCP Advantage: ws package for direct communication
  • Benefits:
    • Lower overhead
    • Real-time updates
    • No middleware bottleneck

What AgentDesk Has That BrowserMCP Lacks

3.4 Lighthouse Auditing

  • AgentDesk Exclusive: Full Lighthouse v11.7.1+ integration
  • Categories: Performance, Accessibility, SEO, Best Practices
  • AI Integration: Smart result limiting for token efficiency
  • Value: Critical for QA and optimization workflows

3.5 Advanced Developer Tools

  • Console Monitoring: Full DevTools integration
  • Network Analysis: Request/response tracking
  • DOM Inspection: Element selection and analysis
  • NextJS Support: Framework-specific audits

3.6 Remote Deployment Support

  • AgentDesk Strength: Documented remote/LAN deployment
  • Configuration: browserConnectorSettings in extension
  • Use Cases: Team collaboration, remote testing

3.7 Screenshot Auto-Paste

  • AgentDesk Feature: Direct paste to IDE
  • Workflow: Seamless integration with development environment

4. Community-Requested Features

From BrowserMCP Issues

4.1 JavaScript Execution (#112)

Feature Request: JavaScript Execution Tools for Browser Automation
- Execute arbitrary JavaScript in browser context
- Return values to MCP server
- Enable advanced automation scenarios

Priority: HIGH - Enables advanced use cases

4.2 File Upload Support (#110)

Enable upload feature
- Allow file selection and upload
- Critical for form automation

Priority: MEDIUM - Common automation need

4.3 Enhanced Clicking (#115)

Clicking Not Working as Expected
- Better element targeting
- Wait for element availability
- Handle dynamic content

Priority: HIGH - Core functionality issue

4.4 Token Authentication (#44 - PR with 10 comments!)

Add option for token authentication and custom port
- Security improvement
- Multi-instance support
- Better deployment flexibility

Priority: HIGH - Security and enterprise use cases

From AgentDesk Pull Requests (Active Development)

4.5 Firefox Support (#215)

Make extension cross-compatible with Firefox
- Broader browser support
- Different automation scenarios

Priority: MEDIUM - Expands platform support

4.6 Screenshot in MCP Response (#194 - 10 reactions!)

Include screenshot in MCP response when taking screenshot
- Direct AI context integration
- No separate file handling needed

Priority: HIGH - Addresses major pain point

4.7 Browser Refresh Tool (#185)

Add Browser Refresh Tool - Refresh Currently Active Browser Tab
- Simple but essential functionality
- Missing from current toolset

Priority: MEDIUM - Basic functionality gap

4.8 Cookies & Storage Access (#49 - 8 reactions!)

Add cookies, localStorage and sessionStorage
- Session management
- State persistence
- Authentication workflows

Priority: HIGH - Critical for authenticated automation

4.9 Element CSS Inspection (#163)

Ability to inspect element's HTML and CSS using CSS selector
- Better debugging capabilities
- Style analysis for QA

Priority: MEDIUM - Developer tool enhancement

4.10 Selective Tool Loading (#72 - 10 reactions!)

Allow user to choose only certain MCP tools
- Reduce context window usage
- Faster initialization
- Customizable feature set

Priority: HIGH - Token efficiency improvement


5. Architectural Improvements Suggested

From Pull Requests

5.1 TypeScript Support (#73)

  • Better type safety
  • Improved developer experience
  • Modern JavaScript practices

5.2 Linux/WSL Compatibility (#86, #84)

  • Cross-platform support
  • DevContainer compatibility
  • Better kill command handling

5.3 Chromium/Ungoogled Chromium Support (#178)

  • Privacy-focused browser support
  • Broader platform compatibility

6. Integration Architecture Proposal

Hybrid Design: "UnifiedBrowserMCP"

┌─────────────────────────────────────────────────────────────┐
│                     AI Assistant (Cline)                     │
└────────────────────────┬────────────────────────────────────┘
                         │
                         │ MCP Protocol
                         ▼
┌─────────────────────────────────────────────────────────────┐
│              Unified MCP Server (Node.js)                    │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  Core Engine                                          │  │
│  │  - Connection Manager (server discovery + fallback)  │  │
│  │  - Tool Registry (selective loading)                 │  │
│  │  - Screenshot Optimizer (compression + AI context)   │  │
│  │  - Session Manager (multi-tab + auth state)          │  │
│  └──────────────────────────────────────────────────────┘  │
│                                                              │
│  ┌──────────────┐  ┌──────────────┐  ┌─────────────────┐  │
│  │  Simple Mode │  │ Advanced Mode│  │ Lighthouse Mode │  │
│  │  (BrowserMCP)│  │ (AgentDesk)  │  │  (AgentDesk)    │  │
│  │  - Fast      │  │  - Full tools│  │  - Audit only   │  │
│  │  - Stealth   │  │  - DevTools  │  │  - Performance  │  │
│  └──────┬───────┘  └──────┬───────┘  └────────┬────────┘  │
└─────────┼──────────────────┼────────────────────┼───────────┘
          │                  │                    │
          │ WebSocket        │ HTTP + WebSocket   │ Puppeteer
          ▼                  ▼                    ▼
┌─────────────────────────────────────────────────────────────┐
│           Middleware Layer (Optional - Advanced Mode)        │
│  - Puppeteer Integration (Lighthouse, DOM analysis)         │
│  - Network Monitoring (HAR capture, request tracking)       │
│  - Server Identity (.identity endpoint validation)          │
│  - Result Processing (AI-optimized formatting)              │
└────────────────────────┬────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────────────┐
│          Unified Browser Extension (Chrome/Firefox)          │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  Background Service Worker                            │  │
│  │  - Multi-mode support (simple/advanced)              │  │
│  │  - Tab manager (session preservation)                │  │
│  │  - Storage access (cookies, localStorage)            │  │
│  │  - JavaScript executor (safe sandboxing)             │  │
│  └──────────────────────────────────────────────────────┘  │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  DevTools Panel (Advanced Mode)                       │  │
│  │  - Console monitor                                    │  │
│  │  - Network inspector                                  │  │
│  │  - Element inspector                                  │  │
│  └──────────────────────────────────────────────────────┘  │
└────────────────────────┬────────────────────────────────────┘
                         │
                         ▼
                  ┌──────────────┐
                  │    Browser   │
                  └──────────────┘

Mode Selection Logic

// User configuration in MCP settings
{
  "mcpServers": {
    "unified-browser": {
      "command": "npx",
      "args": ["@unifiedbrowser/mcp@latest"],
      "env": {
        "MODE": "simple",        // simple | advanced | lighthouse
        "ENABLE_TOOLS": "screenshot,click,type,navigate",
        "MIDDLEWARE_PORT": "3025",
        "STEALTH_MODE": "true"
      }
    }
  }
}

7. Feature Matrix for Unified Solution

Feature Simple Mode Advanced Mode Lighthouse Mode
Basic Navigation
Click & Type
Screenshot ✅ (compressed) ✅ (HD + auto-paste) ✅ (audit context)
Multi-Tab Support
Console Logs
Network Monitoring
Lighthouse Audits
JavaScript Execution ✅ (basic) ✅ (advanced) ✅ (audit scripts)
Cookies/Storage Access
Element Inspection
Stealth Mode ⚠️ Optional
Remote Deployment
File Upload
Refresh Tool
Firefox Support ❌ (Chrome only)
Latency 🚀 Low ⚡ Medium 🐌 Higher
Setup Complexity ⭐ Easy ⭐⭐ Moderate ⭐⭐⭐ Complex

8. Migration Path for Existing Users

For BrowserMCP Users

# Install unified solution
npm install -g @unifiedbrowser/mcp

# Update MCP config (compatible mode)
{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": ["@unifiedbrowser/mcp@latest"],
      "env": {
        "MODE": "simple",           # Same experience as BrowserMCP
        "COMPATIBILITY": "browsermcp"
      }
    }
  }
}

# Extension automatically detects and connects
# No changes to existing workflows required

For AgentDesk AI Users

# Install unified solution
npm install -g @unifiedbrowser/mcp

# Update MCP config (advanced mode)
{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": ["@unifiedbrowser/mcp@latest"],
      "env": {
        "MODE": "advanced",         # Full AgentDesk features
        "COMPATIBILITY": "agentdesk"
      }
    }
  }
}

# Middleware auto-starts on port 3025
# Extension recognizes familiar .identity signature
# All existing tools work identically

9. Development Roadmap

Phase 1: Foundation (Months 1-2)

  • Create unified repository structure
  • Implement mode-switching core engine
  • Port BrowserMCP's WebSocket server (simple mode)
  • Port AgentDesk's middleware layer (advanced mode)
  • Unified extension codebase with mode detection

Deliverables:

  • Working simple mode (BrowserMCP parity)
  • Working advanced mode (AgentDesk parity)
  • Automated tests for both modes

Phase 2: Integration Features (Months 3-4)

  • Implement selective tool loading (#72 priority)
  • Add screenshot-in-response (#194 priority)
  • Implement cookies/storage access (#49 priority)
  • Add JavaScript execution tool (#112 priority)
  • Implement refresh tool (#185)
  • Add file upload support (#110)

Deliverables:

  • All high-priority community requests implemented
  • Comprehensive documentation
  • Migration guides for both communities

Phase 3: Platform Expansion (Months 5-6)

  • Firefox support (#215)
  • Chromium/ungoogled Chromium support (#178)
  • Linux/WSL compatibility fixes (#86, #84)
  • TypeScript rewrite (#73)
  • Token authentication (#44)

Deliverables:

  • Multi-browser support
  • Enterprise-ready security features
  • TypeScript codebase with strong typing

Phase 4: Advanced Features (Months 7-8)

  • Enhanced element inspection (#163)
  • Network analysis improvements
  • Lighthouse mode optimization
  • Multi-instance support
  • Cloud deployment templates

Deliverables:

  • Production-ready enterprise features
  • Deployment documentation
  • Performance benchmarks

10. Technical Challenges & Solutions

Challenge 1: Maintaining Two Architecture Paths

Problem: Supporting both simple (2-layer) and advanced (3-layer) modes adds complexity

Solution:

// Adaptive architecture based on mode
class UnifiedBrowserMCP {
  constructor(config) {
    this.mode = config.MODE || 'simple';
    
    if (this.mode === 'simple') {
      this.transport = new WebSocketTransport();
      this.middleware = null; // No middleware in simple mode
    } else {
      this.transport = new HTTPTransport();
      this.middleware = new MiddlewareServer();
    }
  }
  
  async initialize() {
    await this.transport.start();
    if (this.middleware) await this.middleware.start();
  }
}

Challenge 2: Screenshot Token Efficiency

Problem: Screenshots consume excessive tokens (#121, #181)

Solution:

class SmartScreenshot {
  async capture(options = {}) {
    const mode = options.mode || 'auto';
    
    switch(mode) {
      case 'thumbnail':
        return await this.captureCompressed(25); // Low quality, small size
      
      case 'context':
        // Include in MCP response, optimize for AI vision
        const image = await this.captureCompressed(60);
        return { 
          image: image,
          embedded: true,
          metadata: { width, height, format: 'webp' }
        };
      
      case 'file':
        // Save to file, return path
        const path = await this.saveToFile('screenshot.png');
        return { filePath: path, embedded: false };
      
      case 'auto':
        // Smart decision based on context window
        if (this.contextWindow.available > 50000) {
          return this.capture({ mode: 'context' });
        } else {
          return this.capture({ mode: 'file' });
        }
    }
  }
  
  async captureCompressed(quality) {
    const screenshot = await this.browser.screenshot();
    return await sharp(screenshot)
      .resize(1280, 720, { fit: 'inside' })
      .webp({ quality })
      .toBuffer();
  }
}

Challenge 3: Server Discovery Reliability

Problem: Frequent connection failures (#126, #193, #182, #206)

Solution:

class RobustServerDiscovery {
  async discover() {
    const strategies = [
      () => this.tryLocalhost(),
      () => this.tryConfiguredHost(),
      () => this.tryNetworkScan(),
      () => this.tryFallbackPorts()
    ];
    
    for (const strategy of strategies) {
      try {
        const server = await strategy();
        if (await this.validateServer(server)) {
          await this.persistConnection(server);
          return server;
        }
      } catch (error) {
        console.warn(`Discovery strategy failed: ${error.message}`);
      }
    }
    
    throw new Error('No valid server found. Please check configuration.');
  }
  
  async validateServer(server) {
    const response = await fetch(`http://${server.host}:${server.port}/.identity`, {
      signal: AbortSignal.timeout(3000)
    });
    const identity = await response.json();
    return identity.signature === 'unified-browser-mcp';
  }
  
  async persistConnection(server) {
    await chrome.storage.local.set({
      lastKnownServer: server,
      lastConnected: Date.now()
    });
  }
}

Challenge 4: Multi-Tab Session Management

Problem: Tab switching loses logged-in state (#118, #127)

Solution:

class SessionManager {
  constructor() {
    this.sessions = new Map(); // tabId -> sessionState
  }
  
  async switchTab(tabId) {
    // Save current tab state
    const currentTab = await this.getCurrentTab();
    await this.saveSession(currentTab.id);
    
    // Restore target tab state
    await this.restoreSession(tabId);
    await chrome.tabs.update(tabId, { active: true });
    
    return {
      previousTab: currentTab.id,
      currentTab: tabId,
      sessionPreserved: true
    };
  }
  
  async saveSession(tabId) {
    const cookies = await chrome.cookies.getAll({ tabId });
    const storage = await this.getTabStorage(tabId);
    
    this.sessions.set(tabId, {
      cookies,
      localStorage: storage.local,
      sessionStorage: storage.session,
      url: (await chrome.tabs.get(tabId)).url,
      timestamp: Date.now()
    });
  }
  
  async restoreSession(tabId) {
    const session = this.sessions.get(tabId);
    if (!session) return;
    
    // Restore cookies
    for (const cookie of session.cookies) {
      await chrome.cookies.set(cookie);
    }
    
    // Restore storage via content script
    await this.injectStorageRestore(tabId, session);
  }
}

11. Competitive Advantages of Unified Solution

Against BrowserMCP

All BrowserMCP features retained
Plus: Lighthouse audits, console monitoring, network analysis
Plus: Better reliability (server discovery improvements)
Plus: Active development and community PRs
Plus: Screenshot optimization solving token issues

Against AgentDesk AI

All AgentDesk features retained
Plus: Simple mode for faster workflows
Plus: Stealth mode for bot detection avoidance
Plus: Selective tool loading (reduces overhead)
Plus: Better screenshot handling
Plus: Enhanced multi-tab session management

Unique Value Propositions

  1. Flexibility: Choose your complexity level
  2. Efficiency: Load only needed tools, optimize token usage
  3. Reliability: Robust server discovery with fallbacks
  4. Completeness: Every requested feature from both communities
  5. Future-Proof: TypeScript, multi-browser, enterprise-ready

12. Community Adoption Strategy

Phase 1: Soft Launch (Month 1-2)

  • Beta release to both communities
  • Compatibility modes ensure zero migration friction
  • Gather feedback on mode-switching UX

Phase 2: Feature Parity (Month 3-4)

  • Complete implementation of all promised features
  • Address critical bugs from beta testing
  • Performance benchmarking and optimization

Phase 3: Migration Incentives (Month 5-6)

  • Exclusive features only in unified version
  • Deprecation notices in original repos (with long sunset)
  • Migration success stories and case studies

Phase 4: Long-Term Support (Month 7+)

  • Establish maintenance team
  • Community contribution guidelines
  • Enterprise support options

13. Success Metrics

Adoption Metrics

  • 50% of BrowserMCP users migrated within 6 months
  • 50% of AgentDesk users migrated within 6 months
  • Combined GitHub stars exceed 15k within 1 year

Quality Metrics

  • Issue resolution rate >70% (better than both original projects)
  • PR acceptance rate >60%
  • Average issue response time <48 hours
  • Test coverage >80%

Performance Metrics

  • Simple mode: <100ms latency (matching BrowserMCP)
  • Advanced mode: <500ms latency (matching AgentDesk)
  • Screenshot compression: 70% size reduction with acceptable quality
  • Server discovery: 95% success rate within 5 seconds

Community Health

  • Active contributors >20
  • Monthly releases with new features
  • Documentation completeness >90%
  • User satisfaction score >4.5/5

14. Risk Assessment

Technical Risks

Risk Probability Impact Mitigation
Architecture complexity Medium High Clear separation of modes, extensive testing
Performance regression Low High Benchmarking, performance budgets
Browser compatibility Medium Medium Multi-browser CI/CD testing
Middleware overhead Low Medium Optional middleware, optimization

Community Risks

Risk Probability Impact Mitigation
Split community Medium High Compatibility modes, gradual migration
Original maintainers opposition Low Medium Collaboration invitation, credit attribution
Feature bloat Medium Medium Selective tool loading, clear mode separation
Documentation debt High Medium Documentation-first development

Business Risks

Risk Probability Impact Mitigation
Maintenance burden High High Community governance, contributor recruitment
Competing forks Low Low Open governance, responsive to community
Trademark/naming Low Medium Clear attribution, separate branding

15. Conclusion & Recommendation

Should We Integrate?

YES - The integration is not only feasible but highly beneficial for several reasons:

  1. Complementary Strengths: BrowserMCP's simplicity + AgentDesk's features = complete solution
  2. Community Need: Both communities have overlapping pain points that integration solves
  3. Technical Viability: Mode-based architecture allows both approaches to coexist
  4. Market Opportunity: No unified solution currently exists
  5. Sustainability: Combined community = healthier long-term maintenance

Critical Success Factors

  1. Maintain Backward Compatibility: Users must migrate without friction
  2. Clear Mode Separation: Simple/Advanced modes must be distinct and well-documented
  3. Performance Standards: Each mode must match or exceed original performance
  4. Community Engagement: Active communication with both communities
  5. Documentation Excellence: Comprehensive guides for all use cases

Immediate Next Steps

  1. Week 1-2: Create proof-of-concept with mode switching
  2. Week 3-4: Port core features from both projects
  3. Month 2: Alpha release to select beta testers from both communities
  4. Month 3: Gather feedback and iterate on architecture
  5. Month 4: Public beta release with migration guides

Alternative: Why NOT to Integrate

If any of these conditions are true, reconsider:

  • ❌ Insufficient development resources (need 2+ full-time developers)
  • ❌ Original maintainers actively oppose (creates community conflict)
  • ❌ Legal/licensing issues (both are MIT, so this shouldn't apply)
  • ❌ Fundamental architectural incompatibilities (we've shown they're compatible)

Current Assessment: None of these blockers exist. Integration is recommended.


16. Call to Action

For MyBrowserControl Project

Recommended Path: Build the unified solution as "MyBrowserControl"

Why this name works:

  • Fresh brand, no community politics
  • Descriptive of multi-mode capability
  • Your project, your vision
  • Can credit both original projects

Implementation Strategy:

  1. Fork both repositories as reference
  2. Start with clean TypeScript implementation
  3. Implement simple mode first (BrowserMCP functionality)
  4. Add advanced mode (AgentDesk functionality)
  5. Beta test with Cline integration
  6. Open source and invite community

Timeline for MyBrowserControl:

  • Month 1: Core architecture + simple mode
  • Month 2: Advanced mode + Lighthouse integration
  • Month 3: Community features (cookies, JS exec, multi-tab)
  • Month 4: Beta release + documentation
  • Month 5-6: Hardening + Firefox support
  • Month 7+: Community growth + feature expansion

Appendix A: Detailed Issue Categorization

BrowserMCP Issues by Category

Connection Issues (35%):

  • #126, #117, #116, #113, #125

Multi-Tab/Session Issues (15%):

  • #127, #124, #118

Screenshot Issues (15%):

  • #121, #106, #100

Console/Logging Issues (10%):

  • #123, #108

Clicking/Interaction Issues (10%):

  • #115, #122, #102

Documentation/Support (10%):

  • #128, #109, #120

Feature Requests (5%):

  • #112, #110, #107

AgentDesk Issues by Category

Connection Issues (40%):

  • #209, #206, #193, #182, #186, #184, #180, #210

Screenshot Issues (15%):

  • #195, #181, #200

Platform Compatibility (15%):

  • #213, #211, #199, #189

Feature Requests (15%):

  • #205, #196, #198

Configuration Issues (10%):

  • #202, #179

Security (5%):

  • #201

Appendix B: Pull Request Analysis

BrowserMCP Active PRs

  1. #86: Linux/DevContainer fixes (Jul 2025)
  2. #84: WSL2 compatibility (Jul 2025)
  3. #50: Clone and deploy (May 2025)
  4. #44: Token auth + custom port (May 2025) - 10 comments!

Observation: All PRs are compatibility/deployment related, no new features

AgentDesk Active PRs (More Active!)

  1. #215: Firefox support (Sep 2025) - Recent!
  2. #203: Badge addition (Jul 2025)
  3. #194: Screenshot in response (Jun 2025) - 10 reactions!
  4. #187: Screenshot fix (Jun 2025