[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-wonderwhy-er--DesktopCommanderMCP":3,"tool-wonderwhy-er--DesktopCommanderMCP":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":78,"owner_location":79,"owner_email":78,"owner_twitter":78,"owner_website":80,"owner_url":81,"languages":82,"stars":111,"forks":112,"last_commit_at":113,"license":114,"difficulty_score":115,"env_os":116,"env_gpu":117,"env_ram":117,"env_deps":118,"category_tags":122,"github_topics":123,"view_count":23,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":132,"updated_at":133,"faqs":134,"releases":155},1314,"wonderwhy-er\u002FDesktopCommanderMCP","DesktopCommanderMCP","This is MCP server for Claude that gives it terminal control, file system search and diff file editing capabilities","DesktopCommanderMCP 是一个为 Claude 等 AI 聊天客户端设计的“外挂”服务器，装上后，AI 就能像本地助手一样帮你搜文件、改代码、跑终端命令，甚至直接预览 Excel、PDF、Word 文档。它把原本需要手动复制粘贴、反复切窗口的繁琐操作，变成一句自然语言指令就能完成，既省时间也省 API 费用。\n\n如果你经常让 AI 帮忙改项目、跑脚本、分析数据，却总被“文件在哪”“命令怎么写”卡住，它会立刻解决这些痛点。开发者、数据分析师、运维人员、科研工作者都能用它把 AI 变成真正的“桌面搭档”。  \n亮点在于：支持长命令后台运行、实时输出流、内存里直接跑 Python\u002FNode 代码，还能远程通过网页版的 Claude\u002FChatGPT 控制本地电脑，真正做到“人在浏览器，活让 AI 在本地干”。","# Desktop Commander MCP\n### Search, update, manage files and run terminal commands with AI\n\n[![npm downloads](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdw\u002F@wonderwhy-er\u002Fdesktop-commander)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@wonderwhy-er\u002Fdesktop-commander)\n[![AgentAudit Verified](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_445158c0e4c8.png)](https:\u002F\u002Fagentaudit.dev\u002Fskills\u002Fdesktop-commander)\n[![Trust Score](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_ec997b0c806b.png)](https:\u002F\u002Farchestra.ai\u002Fmcp-catalog\u002Fwonderwhy-er__desktopcommandermcp)\n[![smithery badge](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_b2bee29b5027.png)](https:\u002F\u002Fsmithery.ai\u002Fserver\u002F@wonderwhy-er\u002Fdesktop-commander)\n[![Buy Me A Coffee](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBuy%20Me%20A%20Coffee-support-yellow.svg)](https:\u002F\u002Fwww.buymeacoffee.com\u002Fwonderwhyer)\n\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJoin%20Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002FkQ27sNnZr7)\n\n\nWork with code and text, run processes, and automate tasks, going far beyond other AI editors - while using host client subscriptions instead of API token costs.\n\n\u003Ca href=\"https:\u002F\u002Fglama.ai\u002Fmcp\u002Fservers\u002Fzempur9oh4\">\n  \u003Cimg width=\"380\" height=\"200\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_92505c4f1080.png\" alt=\"Desktop Commander MCP\" \u002F>\n\u003C\u002Fa>\n\n## 👋 We’re hiring — come build with us: https:\u002F\u002Fdesktopcommander.app\u002Fcareers\u002F\n\n## 🖥️ Try the Desktop Commander App (Beta)\n\n**Want a better experience?** The Desktop Commander App gives you everything the MCP server does, plus:\n\n- **Use any AI model** — Claude, GPT-4.5, Gemini 2.5, or any model you prefer\n- **See file changes live** — visual file previews as AI edits your files\n- **Add custom MCPs and context** — extend with your own tools, no config files\n- **Coming soon** — skills system, dictation, background scheduled tasks, and more\n\n**👉 [Download the App](https:\u002F\u002Fdesktopcommander.app\u002F#download)** (macOS & Windows)\n\n> The MCP server below still works great with Claude Desktop and other MCP clients — the app is for those who want a dedicated, polished experience.\n\n## Table of Contents\n- [Features](#features)\n- [How to install](#how-to-install)\n- [Getting Started](#getting-started)\n- [Usage](#usage)\n- [Handling Long-Running Commands](#handling-long-running-commands)\n- [Work in Progress and TODOs](#roadmap)\n- [Sponsors and Supporters](#support-desktop-commander)\n- [Website](#website)\n- [Media](#media)\n- [Testimonials](#testimonials)\n- [Frequently Asked Questions](#frequently-asked-questions)\n- [Contributing](#contributing)\n- [License](#license)\n\nAll of your AI development tools in one place.\nDesktop Commander puts all dev tools in one chat.\nExecute long-running terminal commands on your computer and manage processes through Model Context Protocol (MCP). Built on top of [MCP Filesystem Server](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Ftree\u002Fmain\u002Fsrc\u002Ffilesystem) to provide additional search and replace file editing capabilities.\n\n## Features\n\n- **Remote AI Control** - Use Desktop Commander from ChatGPT, Claude web, and other AI services via [Remote MCP](https:\u002F\u002Fmcp.desktopcommander.app)\n- **File Preview UI** - Visual file previews in Claude Desktop with rendered markdown, inline images, expandable content, and quick \"Open in folder\" access\n- **Enhanced terminal commands with interactive process control**\n- **Execute code in memory (Python, Node.js, R) without saving files**\n- **Instant data analysis - just ask to analyze CSV\u002FJSON\u002FExcel files**\n- **Native Excel file support** - Read, write, edit, and search Excel files (.xlsx, .xls, .xlsm) without external tools\n- **PDF support** - Read PDFs with text extraction, create new PDFs from markdown, modify existing PDFs\n- **DOCX support** - Read, create, edit, and search Word documents (.docx) with surgical XML editing and markdown-to-DOCX conversion\n- **Interact with running processes (SSH, databases, development servers)**\n- Execute terminal commands with output streaming\n- Command timeout and background execution support\n- Process management (list and kill processes)\n- Session management for long-running commands\n- **Process output pagination** - Read terminal output with offset\u002Flength controls to prevent context overflow\n- Server configuration management:\n  - Get\u002Fset configuration values\n  - Update multiple settings at once\n  - Dynamic configuration changes without server restart\n- Full filesystem operations:\n  - Read\u002Fwrite files (text, Excel, PDF, DOCX)\n  - Create\u002Flist directories\n  - **Recursive directory listing** with configurable depth and context overflow protection for large folders\n  - Move files\u002Fdirectories\n  - Search files and content (including Excel content)\n  - Get file metadata\n  - **Negative offset file reading**: Read from end of files using negative offset values (like Unix tail)\n- Code editing capabilities:\n  - Surgical text replacements for small changes\n  - Full file rewrites for major changes\n  - Multiple file support\n  - Pattern-based replacements\n  - vscode-ripgrep based recursive code or text search in folders\n- Comprehensive audit logging:\n  - All tool calls are automatically logged\n  - Log rotation with 10MB size limit\n  - Detailed timestamps and arguments\n- Security hardening:\n  - Symlink traversal prevention on file operations\n  - Command blocklist with bypass protection\n  - [Docker isolation](#option-6-docker-installation--auto-updates-no-nodejs-required) for full sandboxing\n  - See [SECURITY.md](SECURITY.md) for details\n\n## How to install\n\n### Install in Claude Desktop\n\nDesktop Commander offers multiple installation methods for Claude Desktop.\n\n> **📋 Update & Uninstall Information:** Options 1, 2, 3, 4, and 6 have automatic updates. Option 5 requires manual updates. See below for details.\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Option 1: Install through npx ⭐ Auto-Updates (Requires Node.js)\u003C\u002Fb>\u003C\u002Fsummary>\n\nJust run this in terminal:\n```\nnpx @wonderwhy-er\u002Fdesktop-commander@latest setup\n```\n\nFor debugging mode (allows Node.js inspector connection):\n```\nnpx @wonderwhy-er\u002Fdesktop-commander@latest setup --debug\n```\n\n**Command line options during setup:**\n- `--debug`: Enable debugging mode for Node.js inspector\n- `--no-onboarding`: Disable onboarding prompts for new users\n\nRestart Claude if running.\n\n**✅ Auto-Updates:** Yes - automatically updates when you restart Claude  \n**🔄 Manual Update:** Run the setup command again  \n**🗑️ Uninstall:** Run `npx @wonderwhy-er\u002Fdesktop-commander@latest remove`\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Option 2: Using bash script installer (macOS) ⭐ Auto-Updates (Installs Node.js if needed)\u003C\u002Fb>\u003C\u002Fsummary>\n\n```\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall.sh | bash\n```\nThis script handles all dependencies and configuration automatically.\n\n**✅ Auto-Updates:** Yes  \n**🔄 Manual Update:** Re-run the bash installer command above  \n**🗑️ Uninstall:** Run `npx @wonderwhy-er\u002Fdesktop-commander@latest remove`\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Option 3: Installing via Smithery ⭐ Auto-Updates (Requires Node.js)\u003C\u002Fb>\u003C\u002Fsummary>\n\n1. **Visit:** https:\u002F\u002Fsmithery.ai\u002Fserver\u002F@wonderwhy-er\u002Fdesktop-commander\n2. **Login to Smithery** if you haven't already\n3. **Select your client** (Claude Desktop) on the right side\n4. **Install with the provided key** that appears after selecting your client\n5. **Restart Claude Desktop**\n\n**✅ Auto-Updates:** Yes - automatically updates when you restart Claude  \n**🔄 Manual Update:** Visit the Smithery page and reinstall  \n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Option 4: Add to claude_desktop_config manually ⭐ Auto-Updates (Requires Node.js)\u003C\u002Fb>\u003C\u002Fsummary>\n\nAdd this entry to your claude_desktop_config.json:\n\n- On Mac: `~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`\n- On Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n- On Linux: `~\u002F.config\u002FClaude\u002Fclaude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@wonderwhy-er\u002Fdesktop-commander@latest\"\n      ]\n    }\n  }\n}\n```\nRestart Claude if running.\n\n**✅ Auto-Updates:** Yes - automatically updates when you restart Claude  \n**🔄 Manual Update:** Run the setup command again  \n**🗑️ Uninstall:** Run `npx @wonderwhy-er\u002Fdesktop-commander@latest remove` or remove the entry from your claude_desktop_config.json\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Option 5: Checkout locally ❌ Manual Updates (Requires Node.js)\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP.git\ncd DesktopCommanderMCP\nnpm run setup\n```\nRestart Claude if running.\n\nThe setup command will install dependencies, build the server, and configure Claude's desktop app.\n\n**❌ Auto-Updates:** No - requires manual git updates  \n**🔄 Manual Update:** `cd DesktopCommanderMCP && git pull && npm run setup`  \n**🗑️ Uninstall:** Run `npx @wonderwhy-er\u002Fdesktop-commander@latest remove` or remove the cloned directory and MCP server entry from Claude config\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Option 6: Docker Installation 🐳 ⭐ Auto-Updates (No Node.js Required)\u003C\u002Fb>\u003C\u002Fsummary>\n\nPerfect for users who want isolation or don't have Node.js installed. Runs in a sandboxed Docker container with a persistent work environment.\n\n**Prerequisites:** [Docker Desktop](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop\u002F) installed **and running**, Claude Desktop app installed.\n\n**macOS\u002FLinux:**\n```bash\nbash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh)\n```\n\n**Windows PowerShell:**\n```powershell\niex ((New-Object System.Net.WebClient).DownloadString('https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.ps1'))\n```\n\nThe installer will check Docker, pull the image, prompt for folder mounting, and configure Claude Desktop.\n\n**Docker persistence:** Your tools, configs, work files, and package caches all survive restarts.\n\n\u003Cdetails>\n\u003Csummary>Manual Docker Configuration\u003C\u002Fsummary>\n\n**Basic setup (no file access):**\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander-in-docker\": {\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"mcp\u002Fdesktop-commander:latest\"]\n    }\n  }\n}\n```\n\n**With folder mounting:**\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander-in-docker\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\", \"-i\", \"--rm\",\n        \"-v\", \"\u002FUsers\u002Fusername\u002FDesktop:\u002Fmnt\u002Fdesktop\",\n        \"-v\", \"\u002FUsers\u002Fusername\u002FDocuments:\u002Fmnt\u002Fdocuments\",\n        \"mcp\u002Fdesktop-commander:latest\"\n      ]\n    }\n  }\n}\n```\n\n**Advanced folder mounting:**\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander-in-docker\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\", \"-i\", \"--rm\",\n        \"-v\", \"dc-system:\u002Fusr\",\n        \"-v\", \"dc-home:\u002Froot\", \n        \"-v\", \"dc-workspace:\u002Fworkspace\",\n        \"-v\", \"dc-packages:\u002Fvar\",\n        \"-v\", \"\u002FUsers\u002Fusername\u002FProjects:\u002Fmnt\u002FProjects\",\n        \"-v\", \"\u002FUsers\u002Fusername\u002FDownloads:\u002Fmnt\u002FDownloads\",\n        \"mcp\u002Fdesktop-commander:latest\"\n      ]\n    }\n  }\n}\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Docker Management Commands\u003C\u002Fsummary>\n\n**macOS\u002FLinux:**\n```bash\n# Check status\nbash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh) --status\n\n# Reset all persistent data\nbash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh) --reset\n```\n\n**Windows PowerShell:**\n```powershell\n# Check status\n$script = (New-Object System.Net.WebClient).DownloadString('https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.ps1'); & ([ScriptBlock]::Create(\"$script\")) -Status\n\n# Reset all data\n$script = (New-Object System.Net.WebClient).DownloadString('https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.ps1'); & ([ScriptBlock]::Create(\"$script\")) -Reset\n\n# Show help\n$script = (New-Object System.Net.WebClient).DownloadString('https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.ps1'); & ([ScriptBlock]::Create(\"$script\")) -Help\n```\n\n**Troubleshooting:** Reset and reinstall from scratch:\n```bash\nbash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh) --reset && bash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh)\n```\n\n\u003C\u002Fdetails>\n\n**✅ Auto-Updates:** Yes - `latest` tag automatically gets newer versions  \n**🔄 Manual Update:** `docker pull mcp\u002Fdesktop-commander:latest` then restart Claude  \n\n\u003C\u002Fdetails>\n\n### Install in Other Clients\n\nDesktop Commander works with any MCP-compatible client. The standard JSON configuration is:\n\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@wonderwhy-er\u002Fdesktop-commander@latest\"]\n    }\n  }\n}\n```\n\nAdd this to your client's MCP configuration file at the locations below:\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Cursor\u003C\u002Fb>\u003C\u002Fsummary>\n\n[Install MCP Server in Cursor](https:\u002F\u002Fcursor.directory\u002Fmcp\u002Fdesktop-commander-mcp)\n\nOr add manually to `~\u002F.cursor\u002Fmcp.json` (global) or `.cursor\u002Fmcp.json` in your project folder (project-specific).\n\nSee [Cursor MCP docs](https:\u002F\u002Fdocs.cursor.com\u002Fcontext\u002Fmodel-context-protocol) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Windsurf\u003C\u002Fb>\u003C\u002Fsummary>\n\nAdd to `~\u002F.codeium\u002Fwindsurf\u002Fmcp_config.json`. See [Windsurf MCP docs](https:\u002F\u002Fdocs.windsurf.com\u002Fwindsurf\u002Fcascade\u002Fmcp) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>VS Code \u002F GitHub Copilot\u003C\u002Fb>\u003C\u002Fsummary>\n\nAdd to `.vscode\u002Fmcp.json` in your project or VS Code User Settings (JSON). Make sure MCP is enabled under Chat > MCP. Works in Agent mode.\n\nSee [VS Code MCP docs](https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Fcopilot\u002Fchat\u002Fmcp-servers) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Cline\u003C\u002Fb>\u003C\u002Fsummary>\n\nConfigure through the Cline extension settings in VS Code. Open the Cline sidebar, click the MCP Servers icon, and add the JSON configuration above. See [Cline MCP docs](https:\u002F\u002Fdocs.cline.bot\u002Fmcp\u002Fconfiguring-mcp-servers) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Roo Code\u003C\u002Fb>\u003C\u002Fsummary>\n\nAdd to your Roo Code MCP configuration file. See [Roo Code MCP docs](https:\u002F\u002Fdocs.roocode.com\u002Ffeatures\u002Fmcp\u002Fusing-mcp-in-roo) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Claude Code\u003C\u002Fb>\u003C\u002Fsummary>\n\n```sh\nclaude mcp add --scope user desktop-commander -- npx -y @wonderwhy-er\u002Fdesktop-commander@latest\n```\n\nRemove `--scope user` to install for the current project only. See [Claude Code MCP docs](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Fmcp) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Trae\u003C\u002Fb>\u003C\u002Fsummary>\n\nUse the \"Add manually\" feature and paste the JSON configuration above. See [Trae MCP docs](https:\u002F\u002Fdocs.trae.ai\u002Fide\u002Fmodel-context-protocol?_lang=en) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Kiro\u003C\u002Fb>\u003C\u002Fsummary>\n\nNavigate to `Kiro` > `MCP Servers`, click `+ Add`, and paste the JSON configuration above. See [Kiro MCP docs](https:\u002F\u002Fkiro.dev\u002Fdocs\u002Fmcp\u002Fconfiguration\u002F) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Codex (OpenAI)\u003C\u002Fb>\u003C\u002Fsummary>\n\nCodex uses TOML configuration. Run this command to add Desktop Commander:\n\n```sh\ncodex mcp add desktop-commander -- npx -y @wonderwhy-er\u002Fdesktop-commander@latest\n```\n\nOr manually add to `~\u002F.codex\u002Fconfig.toml`:\n\n```toml\n[mcp_servers.desktop-commander]\ncommand = \"npx\"\nargs = [\"-y\", \"@wonderwhy-er\u002Fdesktop-commander@latest\"]\n```\n\nSee [Codex MCP docs](https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fmcp\u002F) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>JetBrains (AI Assistant)\u003C\u002Fb>\u003C\u002Fsummary>\n\nIn JetBrains IDEs, go to **Settings → Tools → AI Assistant → Model Context Protocol (MCP)**, click `+` Add, select **As JSON**, and paste the JSON configuration above. See [JetBrains MCP docs](https:\u002F\u002Fwww.jetbrains.com\u002Fhelp\u002Fai-assistant\u002Fconfigure-an-mcp-server.html) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Gemini CLI\u003C\u002Fb>\u003C\u002Fsummary>\n\nAdd to `~\u002F.gemini\u002Fsettings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@wonderwhy-er\u002Fdesktop-commander@latest\"]\n    }\n  }\n}\n```\n\nSee [Gemini CLI docs](https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Augment Code\u003C\u002Fb>\u003C\u002Fsummary>\n\nPress `Cmd\u002FCtrl+Shift+P`, open the Augment panel, and add a new MCP server named `desktop-commander` with the JSON configuration above. See [Augment Code MCP docs](https:\u002F\u002Fdocs.augmentcode.com\u002Fsetup-augment\u002Fmcp) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Qwen Code\u003C\u002Fb>\u003C\u002Fsummary>\n\nRun this command to add Desktop Commander:\n\n```sh\nqwen mcp add desktop-commander -- npx -y @wonderwhy-er\u002Fdesktop-commander@latest\n```\n\nOr add to `.qwen\u002Fsettings.json` (project) or `~\u002F.qwen\u002Fsettings.json` (global). See [Qwen Code MCP docs](https:\u002F\u002Fqwenlm.github.io\u002Fqwen-code-docs\u002Fen\u002Fdevelopers\u002Ftools\u002Fmcp-server\u002F) for more info.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>ChatGPT \u002F Claude Web (Remote MCP)\u003C\u002Fb>\u003C\u002Fsummary>\n\nUse Desktop Commander from **ChatGPT**, **Claude web**, and other AI services via Remote MCP — no desktop app required.\n\n**👉 [Get started at mcp.desktopcommander.app](https:\u002F\u002Fmcp.desktopcommander.app)**\n\nHow it works:\n1. You run a lightweight **Remote Device** on your computer\n2. It connects securely to the cloud Remote MCP service\n3. Your AI sends commands through the cloud to your device\n4. Commands execute locally, results return to your AI\n5. **You stay in control** — stop anytime with `Ctrl+C`\n\n### Security\n\n- ✅ Device only runs when you start it\n- ✅ Commands execute under your user permissions\n- ✅ Secure OAuth authentication and encrypted communication channel\n\n\u003C\u002Fdetails>\n\n## Updating & Uninstalling Desktop Commander\n\n### Automatic Updates (Options 1, 2, 3, 4 & 6)\n**Options 1 (npx), Option 2 (bash installer), 3 (Smithery), 4 (manual config), and 6 (Docker)** automatically update to the latest version whenever you restart Claude. No manual intervention needed.\n\n### Manual Updates (Option 5)\n- **Option 5 (local checkout):** `cd DesktopCommanderMCP && git pull && npm run setup`\n\n### Uninstalling Desktop Commander\n#### 🤖 Automatic Uninstallation (Recommended)\n\nThe easiest way to completely remove Desktop Commander:\n\n```bash\nnpx @wonderwhy-er\u002Fdesktop-commander@latest remove\n```\n\nThis automatic uninstaller will:\n- ✅ Remove Desktop Commander from Claude's MCP server configuration\n- ✅ Create a backup of your Claude config before making changes\n- ✅ Provide guidance for complete package removal\n- ✅ Restore from backup if anything goes wrong\n\n#### 🔧 Manual Uninstallation\n\nIf the automatic uninstaller doesn't work or you prefer manual removal:\n\n##### Remove from Claude Configuration\n\n1. **Locate your Claude Desktop config file:**\n  - **macOS:** `~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`\n  - **Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n  - **Linux:** `~\u002F.config\u002FClaude\u002Fclaude_desktop_config.json`\n\n2. **Edit the config file:**\n  - Open the file in a text editor\n  - Find and remove the `\"desktop-commander\"` entry from the `\"mcpServers\"` section\n  - Save the file\n\n  **Example - Remove this section:**\n  ```json\n  {\n      \"desktop-commander\": {\n        \"command\": \"npx\",\n        \"args\": [\"@wonderwhy-er\u002Fdesktop-commander@latest\"]\n      }\n  }\n  ```\n\nClose and restart Claude Desktop to complete the removal.\n\n#### 🆘 Troubleshooting\n\n**If automatic uninstallation fails:**\n- Use manual uninstallation as a fallback\n\n**If Claude won't start after uninstalling:**\n- Restore the backup config file created by the uninstaller\n- Or manually fix the JSON syntax in your claude_desktop_config.json\n\n**Need help?**\n- Join our Discord community: https:\u002F\u002Fdiscord.com\u002Finvite\u002FkQ27sNnZr7\n\n## Getting Started\n\nOnce Desktop Commander is installed and Claude Desktop is restarted, you're ready to supercharge your Claude experience!\n\n### 🚀 New User Onboarding\n\nDesktop Commander includes intelligent onboarding to help you discover what's possible:\n\n**For New Users:** When you're just getting started (fewer than 10 successful commands), Claude will automatically offer helpful getting-started guidance and practical tutorials after you use Desktop Commander successfully.\n\n**Request Help Anytime:** You can ask for onboarding assistance at any time by simply saying:\n- *\"Help me get started with Desktop Commander\"*\n- *\"Show me Desktop Commander examples\"* \n- *\"What can I do with Desktop Commander?\"*\n\nClaude will then show you beginner-friendly tutorials and examples, including:\n- 📁 Organizing your Downloads folder automatically\n- 📊 Analyzing CSV\u002FExcel files with Python\n- ⚙️ Setting up GitHub Actions CI\u002FCD\n- 🔍 Exploring and understanding codebases\n- 🤖 Running interactive development environments\n\n## Usage\n\nThe server provides a comprehensive set of tools organized into several categories:\n\n### Available Tools\n\n| Category | Tool | Description |\n|----------|------|-------------|\n| **Configuration** | `get_config` | Get the complete server configuration as JSON (includes blockedCommands, defaultShell, allowedDirectories, fileReadLineLimit, fileWriteLineLimit, telemetryEnabled) |\n| | `set_config_value` | Set a specific configuration value by key. Available settings: \u003Cbr>• `blockedCommands`: Array of shell commands that cannot be executed\u003Cbr>• `defaultShell`: Shell to use for commands (e.g., bash, zsh, powershell)\u003Cbr>• `allowedDirectories`: Array of filesystem paths the server can access for file operations (⚠️ terminal commands can still access files outside these directories)\u003Cbr>• `fileReadLineLimit`: Maximum lines to read at once (default: 1000)\u003Cbr>• `fileWriteLineLimit`: Maximum lines to write at once (default: 50)\u003Cbr>• `telemetryEnabled`: Enable\u002Fdisable telemetry (boolean) |\n| **Terminal** | `start_process` | Start programs with smart detection of when they're ready for input |\n| | `interact_with_process` | Send commands to running programs and get responses |\n| | `read_process_output` | Read output from running processes |\n| | `force_terminate` | Force terminate a running terminal session |\n| | `list_sessions` | List all active terminal sessions |\n| | `list_processes` | List all running processes with detailed information |\n| | `kill_process` | Terminate a running process by PID |\n| **Filesystem** | `read_file` | Read contents from local filesystem, URLs, Excel files (.xlsx, .xls, .xlsm), and PDFs with line\u002Fpage-based pagination |\n| | `read_multiple_files` | Read multiple files simultaneously |\n| | `write_file` | Write file contents with options for rewrite or append mode. Supports Excel files (JSON 2D array format). For PDFs, use `write_pdf` |\n| | `write_pdf` | Create new PDF files from markdown or modify existing PDFs (insert\u002Fdelete pages). Supports HTML\u002FCSS styling and SVG graphics |\n| | `create_directory` | Create a new directory or ensure it exists |\n| | `list_directory` | Get detailed recursive listing of files and directories (supports depth parameter, default depth=2) |\n| | `move_file` | Move or rename files and directories |\n| | `start_search` | Start streaming search for files by name or content patterns (searches text files and Excel content) |\n| | `get_more_search_results` | Get paginated results from active search with offset support |\n| | `stop_search` | Stop an active search gracefully |\n| | `list_searches` | List all active search sessions |\n| | `get_file_info` | Retrieve detailed metadata about a file or directory (includes sheet info for Excel files) |\n| **Text Editing** | `edit_block` | Apply targeted text replacements for text files, or range-based cell updates for Excel files |\n| **Analytics** | `get_usage_stats` | Get usage statistics for your own insight |\n| | `get_recent_tool_calls` | Get recent tool call history with arguments and outputs for debugging and context recovery |\n| | `give_feedback_to_desktop_commander` | Open feedback form in browser to provide feedback to Desktop Commander Team |\n\n### Quick Examples\n\n**Data Analysis:**\n```\n\"Analyze sales.csv and show top customers\" → Claude runs Python code in memory\n```\n\n**Remote Access:**\n```\n\"SSH to my server and check disk space\" → Claude maintains SSH session\n```\n\n**Development:**\n```\n\"Start Node.js and test this API\" → Claude runs interactive Node session\n```\n\n### Tool Usage Examples\n\nSearch\u002FReplace Block Format:\n```\nfilepath.ext\n\u003C\u003C\u003C\u003C\u003C\u003C\u003C SEARCH\ncontent to find\n=======\nnew content\n>>>>>>> REPLACE\n```\n\nExample:\n```\nsrc\u002Fmain.js\n\u003C\u003C\u003C\u003C\u003C\u003C\u003C SEARCH\nconsole.log(\"old message\");\n=======\nconsole.log(\"new message\");\n>>>>>>> REPLACE\n```\n\n### Enhanced Edit Block Features\n\nThe `edit_block` tool includes several enhancements for better reliability:\n\n1. **Improved Prompting**: Tool descriptions now emphasize making multiple small, focused edits rather than one large change\n2. **Fuzzy Search Fallback**: When exact matches fail, it performs fuzzy search and provides detailed feedback\n3. **Character-level Diffs**: Shows exactly what's different using `{-removed-}{+added+}` format\n4. **Multiple Occurrence Support**: Can replace multiple instances with `expected_replacements` parameter\n5. **Comprehensive Logging**: All fuzzy searches are logged for analysis and debugging\n\nWhen a search fails, you'll see detailed information about the closest match found, including similarity percentage, execution time, and character differences. All these details are automatically logged for later analysis using the fuzzy search log tools.\n\n### Docker Support\n\n### 🐳 Isolated Environment Usage\n\nDesktop Commander can be run in Docker containers for **complete isolation from your host system**, providing **zero risk to your computer**. This is perfect for testing, development, or when you want complete sandboxing.\n\n### Installation Instructions\n\n1. **Install Docker for Windows\u002FMac**\n   - Download and install Docker Desktop from [docker.com](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop\u002F)\n\n2. **Get Desktop Commander Docker Configuration**\n   - Visit: https:\u002F\u002Fhub.docker.com\u002Fmcp\u002Fserver\u002Fdesktop-commander\u002Fmanual\n   - **Option A:** Use the provided terminal command for automated setup\n   - **Option B:** Click \"Standalone\" to get the config JSON and add it manually to your Claude Desktop config\n ![docker-config.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_aa790a3b563b.png)\n\n3. **Mount Your Machine Folders (Coming Soon)**\n   - Instructions on how to mount your local directories into the Docker container will be provided soon\n   - This will allow you to work with your files while maintaining complete isolation\n\n### Benefits of Docker Usage\n- **Complete isolation** from your host system\n- **Consistent environment** across different machines\n- **Easy cleanup** - just remove the container when done\n- **Perfect for testing** new features or configurations\n\n## URL Support\n- `read_file` can now fetch content from both local files and URLs\n- Example: `read_file` with `isUrl: true` parameter to read from web resources\n- Handles both text and image content from remote sources\n- Images (local or from URLs) are displayed visually in Claude's interface, not as text\n- Claude can see and analyze the actual image content\n- Default 30-second timeout for URL requests\n\n## Fuzzy Search Log Analysis (npm scripts)\n\nThe fuzzy search logging system includes convenient npm scripts for analyzing logs outside of the MCP environment:\n\n```bash\n# View recent fuzzy search logs\nnpm run logs:view -- --count 20\n\n# Analyze patterns and performance\nnpm run logs:analyze -- --threshold 0.8\n\n# Export logs to CSV or JSON\nnpm run logs:export -- --format json --output analysis.json\n\n# Clear all logs (with confirmation)\nnpm run logs:clear\n```\n\nFor detailed documentation on these scripts, see [scripts\u002FREADME.md](scripts\u002FREADME.md).\n\n## Fuzzy Search Logs\n\nDesktop Commander includes comprehensive logging for fuzzy search operations in the `edit_block` tool. When an exact match isn't found, the system performs a fuzzy search and logs detailed information for analysis.\n\n### What Gets Logged\n\nEvery fuzzy search operation logs:\n- **Search and found text**: The text you're looking for vs. what was found\n- **Similarity score**: How close the match is (0-100%)\n- **Execution time**: How long the search took\n- **Character differences**: Detailed diff showing exactly what's different\n- **File metadata**: Extension, search\u002Ffound text lengths\n- **Character codes**: Specific character codes causing differences\n\n### Log Location\n\nLogs are automatically saved to:\n- **macOS\u002FLinux**: `~\u002F.claude-server-commander-logs\u002Ffuzzy-search.log`\n- **Windows**: `%USERPROFILE%\\.claude-server-commander-logs\\fuzzy-search.log`\n\n### What You'll Learn\n\nThe fuzzy search logs help you understand:\n1. **Why exact matches fail**: Common issues like whitespace differences, line endings, or character encoding\n2. **Performance patterns**: How search complexity affects execution time\n3. **File type issues**: Which file extensions commonly have matching problems\n4. **Character encoding problems**: Specific character codes that cause diffs\n\n## Audit Logging\n\nDesktop Commander now includes comprehensive logging for all tool calls:\n\n### What Gets Logged\n- Every tool call is logged with timestamp, tool name, and arguments (sanitized for privacy)\n- Logs are rotated automatically when they reach 10MB in size\n\n### Log Location\nLogs are saved to:\n- **macOS\u002FLinux**: `~\u002F.claude-server-commander\u002Fclaude_tool_call.log`\n- **Windows**: `%USERPROFILE%\\.claude-server-commander\\claude_tool_call.log`\n\nThis audit trail helps with debugging, security monitoring, and understanding how Claude is interacting with your system.\n\n## Handling Long-Running Commands\n\nFor commands that may take a while:\n\n## Configuration Management\n\n### ⚠️ Important Security Warnings\n\n> **For comprehensive security information and vulnerability reporting**: See [SECURITY.md](SECURITY.md)\n\n1. **Known security limitations**: Directory restrictions and command blocking can be bypassed through various methods including symlinks, command substitution, and absolute paths or code execution\n\n2. **Always change configuration in a separate chat window** from where you're doing your actual work. Claude may sometimes attempt to modify configuration settings (like `allowedDirectories`) if it encounters filesystem access restrictions.\n\n3. **The `allowedDirectories` setting currently only restricts filesystem operations**, not terminal commands. Terminal commands can still access files outside allowed directories.\n\n4. **For production security**: Use the [Docker installation](#option-6-docker-installation-🐳-⭐-auto-updates-no-nodejs-required) which provides complete isolation from your host system.\n\n### Configuration Tools\n\nYou can manage server configuration using the provided tools:\n\n```javascript\n\u002F\u002F Get the entire config\nget_config({})\n\n\u002F\u002F Set a specific config value\nset_config_value({ \"key\": \"defaultShell\", \"value\": \"\u002Fbin\u002Fzsh\" })\n\n\u002F\u002F Set multiple config values using separate calls\nset_config_value({ \"key\": \"defaultShell\", \"value\": \"\u002Fbin\u002Fbash\" })\nset_config_value({ \"key\": \"allowedDirectories\", \"value\": [\"\u002FUsers\u002Fusername\u002Fprojects\"] })\n```\n\nThe configuration is saved to `config.json` in the server's working directory and persists between server restarts.\n\n#### Understanding fileWriteLineLimit\n\nThe `fileWriteLineLimit` setting controls how many lines can be written in a single `write_file` operation (default: 50 lines). This limit exists for several important reasons:\n\n**Why the limit exists:**\n- **AIs are wasteful with tokens**: Instead of doing two small edits in a file, AIs may decide to rewrite the whole thing. We're trying to force AIs to do things in smaller changes as it saves time and tokens\n- **Claude UX message limits**: There are limits within one message and hitting \"Continue\" does not really work. What we're trying here is to make AI work in smaller chunks so when you hit that limit, multiple chunks have succeeded and that work is not lost - it just needs to restart from the last chunk\n\n**Setting the limit:**\n```javascript\n\u002F\u002F You can set it to thousands if you want\nset_config_value({ \"key\": \"fileWriteLineLimit\", \"value\": 1000 })\n\n\u002F\u002F Or keep it smaller to force more efficient behavior\nset_config_value({ \"key\": \"fileWriteLineLimit\", \"value\": 25 })\n```\n\n**Maximum value**: You can set it to thousands if you want - there's no technical restriction.\n\n**Best practices**:\n- Keep the default (50) to encourage efficient AI behavior and avoid token waste\n- The system automatically suggests chunking when limits are exceeded\n- Smaller chunks mean less work lost when Claude hits message limits\n\n### Best Practices\n\n1. **Create a dedicated chat for configuration changes**: Make all your config changes in one chat, then start a new chat for your actual work.\n\n2. **Be careful with empty `allowedDirectories`**: Setting this to an empty array (`[]`) grants access to your entire filesystem for file operations.\n\n3. **Use specific paths**: Instead of using broad paths like `\u002F`, specify exact directories you want to access.\n\n4. **Always verify configuration after changes**: Use `get_config({})` to confirm your changes were applied correctly.\n\n## Command Line Options\n\nDesktop Commander supports several command line options for customizing behavior:\n\n### Disable Onboarding\n\nBy default, Desktop Commander shows helpful onboarding prompts to new users (those with fewer than 10 tool calls). You can disable this behavior:\n\n```bash\n# Disable onboarding for this session\nnode dist\u002Findex.js --no-onboarding\n\n# Or if using npm scripts\nnpm run start:no-onboarding\n\n# For npx installations, modify your claude_desktop_config.json:\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@wonderwhy-er\u002Fdesktop-commander@latest\",\n        \"--no-onboarding\"\n      ]\n    }\n  }\n}\n```\n\n**When onboarding is automatically disabled:**\n- When the MCP client name is set to \"desktop-commander\"\n- When using the `--no-onboarding` flag\n- After users have used onboarding prompts or made 10+ tool calls\n\n**Debug information:**\nThe server will log when onboarding is disabled: `\"Onboarding disabled via --no-onboarding flag\"`\n\n## Using Different Shells\n\nYou can specify which shell to use for command execution:\n\n```javascript\n\u002F\u002F Using default shell (bash or system default)\nexecute_command({ \"command\": \"echo $SHELL\" })\n\n\u002F\u002F Using zsh specifically\nexecute_command({ \"command\": \"echo $SHELL\", \"shell\": \"\u002Fbin\u002Fzsh\" })\n\n\u002F\u002F Using bash specifically\nexecute_command({ \"command\": \"echo $SHELL\", \"shell\": \"\u002Fbin\u002Fbash\" })\n```\n\nThis allows you to use shell-specific features or maintain consistent environments across commands.\n\n1. `execute_command` returns after timeout with initial output\n2. Command continues in background\n3. Use `read_output` with PID to get new output\n4. Use `force_terminate` to stop if needed\n\n## Debugging\n\nIf you need to debug the server, you can install it in debug mode:\n\n```bash\n# Using npx\nnpx @wonderwhy-er\u002Fdesktop-commander@latest setup --debug\n\n# Or if installed locally\nnpm run setup:debug\n```\n\nThis will:\n1. Configure Claude to use a separate \"desktop-commander\" server\n2. Enable Node.js inspector protocol with `--inspect-brk=9229` flag\n3. Pause execution at the start until a debugger connects\n4. Enable additional debugging environment variables\n\nTo connect a debugger:\n- In Chrome, visit `chrome:\u002F\u002Finspect` and look for the Node.js instance\n- In VS Code, use the \"Attach to Node Process\" debug configuration\n- Other IDEs\u002Ftools may have similar \"attach\" options for Node.js debugging\n\nImportant debugging notes:\n- The server will pause on startup until a debugger connects (due to the `--inspect-brk` flag)\n- If you don't see activity during debugging, ensure you're connected to the correct Node.js process\n- Multiple Node processes may be running; connect to the one on port 9229\n- The debug server is identified as \"desktop-commander-debug\" in Claude's MCP server list\n\nTroubleshooting:\n- If Claude times out while trying to use the debug server, your debugger might not be properly connected\n- When properly connected, the process will continue execution after hitting the first breakpoint\n- You can add additional breakpoints in your IDE once connected\n\n## Model Context Protocol Integration\n\nThis project extends the MCP Filesystem Server to enable:\n- Local server support in Claude Desktop\n- Full system command execution\n- Process management\n- File operations\n- Code editing with search\u002Freplace blocks\n\nCreated as part of exploring Claude MCPs: https:\u002F\u002Fyoutube.com\u002Flive\u002FTlbjFDbl5Us\n\n## Support Desktop Commander\n\n\u003Cdiv align=\"center\">\n  \u003Ch3>📢 SUPPORT THIS PROJECT\u003C\u002Fh3>\n  \u003Cp>\u003Cstrong>Desktop Commander MCP is free and open source, but needs your support to thrive!\u003C\u002Fstrong>\u003C\u002Fp>\n  \n  \u003Cdiv style=\"background-color: #f8f9fa; padding: 15px; border-radius: 10px; margin: 20px 0; border: 2px solid #007bff;\">\n    \u003Cp>Our philosophy is simple: we don't want you to pay for it if you're not successful. But if Desktop Commander contributes to your success, please consider contributing to ours.\u003C\u002Fp>\n    \u003Cp>\u003Cstrong>Ways to support:\u003C\u002Fstrong>\u003C\u002Fp>\n    \u003Cul style=\"list-style-type: none; padding: 0;\">\n      \u003Cli>🌟 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fwonderwhy-er\">\u003Cstrong>GitHub Sponsors\u003C\u002Fstrong>\u003C\u002Fa> - Recurring support\u003C\u002Fli>\n      \u003Cli>☕ \u003Ca href=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Fwonderwhyer\">\u003Cstrong>Buy Me A Coffee\u003C\u002Fstrong>\u003C\u002Fa> - One-time contributions\u003C\u002Fli>\n      \u003Cli>💖 \u003Ca href=\"https:\u002F\u002Fwww.patreon.com\u002Fc\u002FEduardsRuzga\">\u003Cstrong>Patreon\u003C\u002Fstrong>\u003C\u002Fa> - Become a patron and support us monthly\u003C\u002Fli>\n      \u003Cli>⭐ \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\">\u003Cstrong>Star on GitHub\u003C\u002Fstrong>\u003C\u002Fa> - Help others discover the project\u003C\u002Fli>\n    \u003C\u002Ful>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\n### ❤️ Supporters Hall of Fame\n\nGenerous supporters are featured here. Thank you for helping make this project possible!\n\n\u003Cdiv align=\"center\">\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjonrichards\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_8485aa32d7ac.png\" width=\"100px;\" alt=\"Jon Richards\"\u002F>\n        \u003Cbr \u002F>\n        \u003Csub>\u003Cb>Jon Richards\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstepanic\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_7daed2c0733f.png\" width=\"100px;\" alt=\"Matija Stepanic\"\u002F>\n        \u003Cbr \u002F>\n        \u003Csub>\u003Cb>Matija Stepanic\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdetails>\n  \u003Csummary>\u003Cstrong>Why your support matters\u003C\u002Fstrong>\u003C\u002Fsummary>\n  \u003Cp>Your support allows us to:\u003C\u002Fp>\n  \u003Cul>\n    \u003Cli>Continue active development and maintenance\u003C\u002Fli>\n    \u003Cli>Add new features and integrations\u003C\u002Fli>\n    \u003Cli>Improve compatibility across platforms\u003C\u002Fli>\n    \u003Cli>Provide better documentation and examples\u003C\u002Fli>\n    \u003Cli>Build a stronger community around the project\u003C\u002Fli>\n  \u003C\u002Ful>\n\u003C\u002Fdetails>\n\n## Website\n\nVisit our official website at [https:\u002F\u002Fdesktopcommander.app\u002F](https:\u002F\u002Fdesktopcommander.app\u002F) for the latest information, documentation, and updates.\n\n## Media\n\nLearn more about this project through these resources:\n\n### Article\n[Claude with MCPs replaced Cursor & Windsurf. How did that happen?](https:\u002F\u002Fwonderwhy-er.medium.com\u002Fclaude-with-mcps-replaced-cursor-windsurf-how-did-that-happen-c1d1e2795e96) - A detailed exploration of how Claude with Model Context Protocol capabilities is changing developer workflows.\n\n### Video\n[Claude Desktop Commander Video Tutorial](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8) - Watch how to set up and use the Commander effectively.\n\n### Publication at AnalyticsIndiaMag\n[![analyticsindiamag.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_f7809374f26c.png)\nThis Developer Ditched Windsurf, Cursor Using Claude with MCPs](https:\u002F\u002Fanalyticsindiamag.com\u002Fai-features\u002Fthis-developer-ditched-windsurf-cursor-using-claude-with-mcps\u002F)\n\n### Community\nJoin our [Discord server](https:\u002F\u002Fdiscord.gg\u002FkQ27sNnZr7) to get help, share feedback, and connect with other users.\n\n## Testimonials\n\n[![It's a life saver! I paid Claude + Cursor currently which I always feel it's kind of duplicated. This solves the problem ultimately. I am so happy. Thanks so much. Plus today Claude has added the web search support. With this MCP + Internet search, it writes the code with the latest updates. It's so good when Cursor doesn't work sometimes or all the fast requests are used.](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_3137ad8ca76c.png) https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgyyBt6_ShdDX_rIOad4AaABAg\n](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgyyBt6_ShdDX_rIOad4AaABAg\n)\n\n[![This is the first comment I've ever left on a youtube video, THANK YOU! I've been struggling to update an old Flutter app in Cursor from an old pre null-safety version to a current version and implemented null-safety using Claude 3.7. I got most of the way but had critical BLE errors that I spent days trying to resolve with no luck. I tried Augment Code but it didn't get it either. I implemented your MCP in Claude desktop and was able to compare the old and new codebase fully, accounting for the updates in the code, and fix the issues in a couple of hours. A word of advice to people trying this, be sure to stage changes and commit when appropriate to be able to undo unwanted changes. Amazing!](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_45f014f782fc.png)\nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgztdHvDMqTb9jiqnf54AaABAg](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgztdHvDMqTb9jiqnf54AaABAg\n)\n\n[![Great! I just used Windsurf, bought license a week ago, for upgrading old fullstack socket project and it works many times good or ok but also many times runs away in cascade and have to revert all changes losing hundereds of cascade tokens. In just a week down to less than 100 tokens and do not want to buy only 300 tokens for 10$. This Claude MCP ,bought claude Pro finally needed but wanted very good reason to also have next to ChatGPT, and now can code as much as I want not worrying about token cost.\nAlso this is much more than code editing it is much more thank you for great video!](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_5c12d720b68d.png)\nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgyQFTmYLJ4VBwIlmql4AaABAg](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgyQFTmYLJ4VBwIlmql4AaABAg)\n\n[![it is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_b87f2df8f58a.png)\nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=Ugy4-exy166_Ma7TH-h4AaABAg](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=Ugy4-exy166_Ma7TH-h4AaABAg)\n\n[![You sir are my hero. You've pretty much summed up and described my experiences of late, much better than I could have. Cursor and Windsurf both had me frustrated to the point where I was almost yelling at my computer screen. Out of whimsy, I thought to myself why not just ask Claude directly, and haven't looked back since.\nClaude first to keep my sanity in check, then if necessary, engage with other IDEs, frameworks, etc. I thought I was the only one, glad to see I'm not lol.\n33\n1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_d487318cc351.png)\nhttps:\u002F\u002Fmedium.com\u002F@pharmx\u002Fyou-sir-are-my-hero-62cff5836a3e](https:\u002F\u002Fmedium.com\u002F@pharmx\u002Fyou-sir-are-my-hero-62cff5836a3e)\n\nIf you find this project useful, please consider giving it a ⭐ star on GitHub! This helps others discover the project and encourages further development.\n\nWe welcome contributions from the community! Whether you've found a bug, have a feature request, or want to contribute code, here's how you can help:\n\n- **Found a bug?** Open an issue at [github.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues)\n- **Have a feature idea?** Submit a feature request in the issues section\n- **Want to contribute code?** Fork the repository, create a branch, and submit a pull request\n- **Questions or discussions?** Start a discussion in the GitHub Discussions tab\n\nAll contributions, big or small, are greatly appreciated!\n\nIf you find this tool valuable for your workflow, please consider [supporting the project](https:\u002F\u002Fwww.buymeacoffee.com\u002Fwonderwhyer).\n\n## Frequently Asked Questions\n\nHere are answers to some common questions. For a more comprehensive FAQ, see our [detailed FAQ document](FAQ.md).\n\n### What is Desktop Commander?\nIt's an MCP tool that enables Claude Desktop to access your file system and terminal, turning Claude into a versatile assistant for coding, automation, codebase exploration, and more.\n\n### How is this different from Cursor\u002FWindsurf?\nUnlike IDE-focused tools, Claude Desktop Commander provides a solution-centric approach that works with your entire OS, not just within a coding environment. Claude reads files in full rather than chunking them, can work across multiple projects simultaneously, and executes changes in one go rather than requiring constant review.\n\n### Do I need to pay for API credits?\nNo. This tool works with Claude Desktop's standard Pro subscription ($20\u002Fmonth), not with API calls, so you won't incur additional costs beyond the subscription fee.\n\n### Does Desktop Commander automatically update?\nYes, when installed through npx or Smithery, Desktop Commander automatically updates to the latest version when you restart Claude. No manual update process is needed.\n\n### What are the most common use cases?\n- Exploring and understanding complex codebases\n- Generating diagrams and documentation\n- Automating tasks across your system\n- Working with multiple projects simultaneously\n- Making surgical code changes with precise control\n\n### I'm having trouble installing or using the tool. Where can I get help?\nJoin our [Discord server](https:\u002F\u002Fdiscord.gg\u002FkQ27sNnZr7) for community support, check the [GitHub issues](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues) for known problems, or review the [full FAQ](FAQ.md) for troubleshooting tips. You can also visit our [website FAQ section](https:\u002F\u002Fdesktopcommander.app#faq) for a more user-friendly experience. If you encounter a new issue, please consider [opening a GitHub issue](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues\u002Fnew) with details about your problem.\n\n### How do I report security vulnerabilities?\nPlease create a [GitHub Issue](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues) with detailed information about any security vulnerabilities you discover. See our [Security Policy](SECURITY.md) for complete guidelines on responsible disclosure.\n\n## Data Collection & Privacy\n\nDesktop Commander collects limited, pseudonymous telemetry to improve the tool. We do not collect file contents, file paths, or command arguments.\n\n**Opt-out:** Ask Claude to \"disable Desktop Commander telemetry\" or set `\"telemetryEnabled\": false` in your config.\n\nFor complete details, see our [Privacy Policy](PRIVACY.md).\n\n## Verifications\n[![Verified on MseeP](https:\u002F\u002Fmseep.ai\u002Fbadge.svg)](https:\u002F\u002Fmseep.ai\u002Fapp\u002F25ff7a06-58bc-40b8-bd79-ebb715140f1a)\n\n## License\n\nMIT\n","# 桌面指挥官 MCP  \n### 使用 AI 搜索、更新、管理文件并运行终端命令  \n\n[![npm 下载量](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdw\u002F@wonderwhy-er\u002Fdesktop-commander)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@wonderwhy-er\u002Fdesktop-commander)  \n[![AgentAudit 验证](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_445158c0e4c8.png)](https:\u002F\u002Fagentaudit.dev\u002Fskills\u002Fdesktop-commander)  \n[![信任评分](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_ec997b0c806b.png)](https:\u002F\u002Farchestra.ai\u002Fmcp-catalog\u002Fwonderwhy-er__desktopcommandermcp)  \n[![smithery 徽章](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_b2bee29b5027.png)](https:\u002F\u002Fsmithery.ai\u002Fserver\u002F@wonderwhy-er\u002Fdesktop-commander)  \n[![请我喝杯咖啡](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBuy%20Me%20A%20Coffee-support-yellow.svg)](https:\u002F\u002Fwww.buymeacoffee.com\u002Fwonderwhyer)\n\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJoin%20Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002FkQ27sNnZr7)\n\n\n处理代码与文本、运行进程并自动化任务，远超其他 AI 编辑器——同时采用主机客户端订阅模式，而非 API Token 费用。\n\n\u003Ca href=\"https:\u002F\u002Fglama.ai\u002Fmcp\u002Fservers\u002Fzempur9oh4\">\n  \u003Cimg width=\"380\" height=\"200\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_92505c4f1080.png\" alt=\"桌面指挥官 MCP\" \u002F>\n\u003C\u002Fa>\n\n## 👋 我们正在招聘——欢迎加入我们：https:\u002F\u002Fdesktopcommander.app\u002Fcareers\u002F\n\n## 🖥️ 试用桌面指挥官应用（Beta 版）\n\n**想要更佳体验吗？** 桌面指挥官应用为您提供 MCP 服务器的所有功能，并额外具备：\n\n- **使用任意 AI 模型** —— Claude、GPT-4.5、Gemini 2.5，或您偏好的任何模型  \n- **实时查看文件变更** —— AI 编辑文件时的可视化预览  \n- **添加自定义 MCP 和上下文** —— 无需配置文件即可扩展您的专属工具  \n- **即将推出** —— 技能系统、语音转文字、后台定时任务等功能  \n\n**👉 [下载应用](https:\u002F\u002Fdesktopcommander.app\u002F#download)**（macOS & Windows）\n\n> 下方的 MCP 服务器仍可与 Claude Desktop 及其他 MCP 客户端完美配合——而这款应用则专为追求专注、精致体验的用户打造。\n\n## 目录\n- [功能](#features)  \n- [安装方法](#how-to-install)  \n- [入门指南](#getting-started)  \n- [使用说明](#usage)  \n- [处理长时间运行的命令](#handling-long-running-commands)  \n- [开发进展与待办事项](#roadmap)  \n- [赞助商与支持者](#support-desktop-commander)  \n- [官网](#website)  \n- [媒体](#media)  \n- [用户评价](#testimonials)  \n- [常见问题](#frequently-asked-questions)  \n- [贡献](#contributing)  \n- [许可证](#license)\n\n将您的所有 AI 开发工具集中于一处。  \n桌面指挥官将所有开发工具整合到一个聊天界面中。  \n在您的电脑上执行长时间运行的终端命令，并通过模型上下文协议（MCP）管理进程。基于 [MCP 文件系统服务器](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Ftree\u002Fmain\u002Fsrc\u002Ffilesystem) 构建，提供额外的搜索与替换文件编辑功能。\n\n## 功能\n\n- **远程 AI 控制** —— 通过 [Remote MCP](https:\u002F\u002Fmcp.desktopcommander.app) 从 ChatGPT、Claude Web 等 AI 服务中使用桌面指挥官  \n- **文件预览 UI** —— 在 Claude Desktop 中提供可视化文件预览，支持渲染 Markdown、内嵌图片、内容展开以及快速“在文件夹中打开”功能  \n- **增强的终端命令与交互式进程控制**  \n- **在内存中执行代码（Python、Node.js、R），无需保存文件**  \n- **即时数据分析——只需提问即可分析 CSV\u002FJSON\u002FExcel 文件**  \n- **原生 Excel 文件支持** —— 无需外部工具即可读取、写入、编辑和搜索 Excel 文件（.xlsx、.xls、.xlsm）  \n- **PDF 支持** —— 支持文本提取的 PDF 阅读、从 Markdown 创建新 PDF、修改现有 PDF  \n- **DOCX 支持** —— 支持读取、创建、编辑和搜索 Word 文档（.docx），具备精细的 XML 编辑功能及 Markdown 转 DOCX 功能  \n- **与正在运行的进程交互（SSH、数据库、开发服务器）**  \n- 执行带输出流的终端命令  \n- 支持命令超时与后台执行  \n- 进程管理（列出并终止进程）  \n- 长时间运行命令的会话管理  \n- **进程输出分页** —— 通过偏移\u002F长度控制读取终端输出，防止上下文溢出  \n- 服务器配置管理：  \n  - 获取\u002F设置配置值  \n  - 一次性更新多项设置  \n  - 动态配置更改无需重启服务器  \n- 全面的文件系统操作：  \n  - 读取\u002F写入文件（文本、Excel、PDF、DOCX）  \n  - 创建\u002F列出目录  \n  - **递归目录列表**，支持可配置深度及大型文件夹的上下文溢出保护  \n  - 移动文件\u002F目录  \n  - 搜索文件与内容（包括 Excel 内容）  \n  - 获取文件元数据  \n  - **负偏移文件读取**：使用负偏移值从文件末尾读取（类似 Unix 的 tail 命令）  \n- 代码编辑功能：  \n  - 针对小范围修改的精细文本替换  \n  - 针对重大修改的整文件重写  \n  - 多文件支持  \n  - 基于模式的替换  \n  - 基于 vscode-ripgrep 的文件夹递归代码或文本搜索  \n- 全面的审计日志记录：  \n  - 所有工具调用均自动记录  \n  - 日志轮转，单个日志大小限制为 10MB  \n  - 详细的时间戳与参数  \n- 安全加固：  \n  - 文件操作中的符号链接遍历防护  \n  - 命令黑名单及绕过防护  \n  - [Docker 隔离](#option-6-docker-installation--auto-updates-no-nodejs-required) 实现完全沙盒化  \n  - 详情请参阅 [SECURITY.md](SECURITY.md)  \n\n## 如何安装\n\n### 在 Claude Desktop 中安装\n\nDesktop Commander 为 Claude Desktop 提供了多种安装方式。\n\n> **📋 更新与卸载信息：** 方案 1、2、3、4 和 6 均支持自动更新，方案 5 需手动更新。详情请见下文。\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>方案 1：通过 npx 安装 ⭐ 自动更新（需 Node.js）\u003C\u002Fb>\u003C\u002Fsummary>\n\n只需在终端中运行以下命令：\n```\nnpx @wonderwhy-er\u002Fdesktop-commander@latest setup\n```\n\n如需调试模式（允许连接 Node.js 调试器）：\n```\nnpx @wonderwhy-er\u002Fdesktop-commander@latest setup --debug\n```\n\n**安装时的命令行选项：**\n- `--debug`：启用 Node.js 调试器的调试模式\n- `--no-onboarding`：禁用新用户的引导提示\n\n如果正在运行 Claude，请重启。\n\n**✅ 自动更新：** 是——在您重启 Claude 时自动更新  \n**🔄 手动更新：** 再次运行上述 setup 命令  \n**🗑️ 卸载：** 运行 `npx @wonderwhy-er\u002Fdesktop-commander@latest remove`\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>方案 2：使用 bash 脚本安装程序（macOS）⭐ 自动更新（若需要则安装 Node.js）\u003C\u002Fb>\u003C\u002Fsummary>\n\n```\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall.sh | bash\n```\n\n该脚本会自动处理所有依赖项和配置。\n\n**✅ 自动更新：** 是  \n**🔄 手动更新：** 重新运行上述 bash 安装脚本  \n**🗑️ 卸载：** 运行 `npx @wonderwhy-er\u002Fdesktop-commander@latest remove`\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>方案 3：通过 Smithery 安装 ⭐ 自动更新（需 Node.js）\u003C\u002Fb>\u003C\u002Fsummary>\n\n1. **访问：** https:\u002F\u002Fsmithery.ai\u002Fserver\u002F@wonderwhy-er\u002Fdesktop-commander  \n2. **登录 Smithery**（如尚未登录）  \n3. **在右侧选择您的客户端**（Claude Desktop）  \n4. **使用选定客户端后显示的密钥进行安装**  \n5. **重启 Claude Desktop**\n\n**✅ 自动更新：** 是——在您重启 Claude 时自动更新  \n**🔄 手动更新：** 访问 Smithery 页面并重新安装  \n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>方案 4：手动添加到 claude_desktop_config ⭐ 自动更新（需 Node.js）\u003C\u002Fb>\u003C\u002Fsummary>\n\n将以下条目添加到您的 `claude_desktop_config.json` 文件中：\n\n- Mac：`~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`\n- Windows：`%APPDATA%\\Claude\\claude_desktop_config.json`\n- Linux：`~\u002F.config\u002FClaude\u002Fclaude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@wonderwhy-er\u002Fdesktop-commander@latest\"\n      ]\n    }\n  }\n}\n```\n\n如果正在运行 Claude，请重启。\n\n**✅ 自动更新：** 是——在您重启 Claude 时自动更新  \n**🔄 手动更新：** 再次运行 setup 命令  \n**🗑️ 卸载：** 运行 `npx @wonderwhy-er\u002Fdesktop-commander@latest remove`，或从您的 `claude_desktop_config.json` 中移除该条目\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>方案 5：本地检出 ❌ 手动更新（需 Node.js）\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP.git\ncd DesktopCommanderMCP\nnpm run setup\n```\n\n如果正在运行 Claude，请重启。\n\nsetup 命令会安装依赖、构建服务器，并配置 Claude 的桌面应用。\n\n**❌ 自动更新：** 否——需手动进行 git 更新  \n**🔄 手动更新：** `cd DesktopCommanderMCP && git pull && npm run setup`  \n**🗑️ 卸载：** 运行 `npx @wonderwhy-er\u002Fdesktop-commander@latest remove`，或删除克隆目录及 Claude 配置中的 MCP 服务器条目\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>方案 6：Docker 安装 🐳 ⭐ 自动更新（无需 Node.js）\u003C\u002Fb>\u003C\u002Fsummary>\n\n非常适合希望实现隔离或未安装 Node.js 的用户。在沙盒化的 Docker 容器中运行，并提供持久化的工作环境。\n\n**前提条件：** 已安装并运行 [Docker Desktop](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop)，且已安装 Claude Desktop 应用。\n\n**macOS\u002FLinux：**\n```bash\nbash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh)\n```\n\n**Windows PowerShell：**\n```powershell\niex ((New-Object System.Net.WebClient).DownloadString('https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.ps1'))\n```\n\n安装程序会检查 Docker、拉取镜像、提示挂载文件夹，并配置 Claude Desktop。\n\n**Docker 持久性：** 您的工具、配置、工作文件以及包缓存均能在重启后保留。\n\n\u003Cdetails>\n\u003Csummary>手动 Docker 配置\u003C\u002Fsummary>\n\n**基础设置（无文件访问）：**\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander-in-docker\": {\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"mcp\u002Fdesktop-commander:latest\"]\n    }\n  }\n}\n```\n\n**带文件夹挂载：**\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander-in-docker\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\", \"-i\", \"--rm\",\n        \"-v\", \"\u002FUsers\u002Fusername\u002FDesktop:\u002Fmnt\u002Fdesktop\",\n        \"-v\", \"\u002FUsers\u002Fusername\u002FDocuments:\u002Fmnt\u002Fdocuments\",\n        \"mcp\u002Fdesktop-commander:latest\"\n      ]\n    }\n  }\n}\n```\n\n**高级文件夹挂载：**\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander-in-docker\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\", \"-i\", \"--rm\",\n        \"-v\", \"dc-system:\u002Fusr\",\n        \"-v\", \"dc-home:\u002Froot\", \n        \"-v\", \"dc-workspace:\u002Fworkspace\",\n        \"-v\", \"dc-packages:\u002Fvar\",\n        \"-v\", \"\u002FUsers\u002Fusername\u002FProjects:\u002Fmnt\u002FProjects\",\n        \"-v\", \"\u002FUsers\u002Fusername\u002FDownloads:\u002Fmnt\u002FDownloads\",\n        \"mcp\u002Fdesktop-commander:latest\"\n      ]\n    }\n  }\n}\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Docker 管理命令\u003C\u002Fsummary>\n\n**macOS\u002FLinux：**\n```bash\n# 查看状态\nbash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh) --status\n\n# 重置所有持久化数据\nbash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh) --reset\n```\n\n**Windows PowerShell：**\n```powershell\n# 查看状态\n$script = (New-Object System.Net.WebClient).DownloadString('https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.ps1'); & ([ScriptBlock]::Create(\"$script\")) -Status\n\n# 重置所有数据\n$script = (New-Object System.Net.WebClient).DownloadString('https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.ps1'); & ([ScriptBlock]::Create(\"$script\")) -Reset\n\n# 显示帮助\n$script = (New-Object System.Net.WebClient).DownloadString('https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.ps1'); & ([ScriptBlock]::Create(\"$script\")) -Help\n```\n\n**故障排除：** 重置并从头重新安装：\n```bash\nbash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh) --reset && bash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh)\n```\n\n\u003C\u002Fdetails>\n\n**✅ 自动更新：** 是——`latest` 标签会自动获取新版本  \n**🔄 手动更新：** `docker pull mcp\u002Fdesktop-commander:latest`，然后重启 Claude  \n\n\u003C\u002Fdetails>\n\n### 在其他客户端中安装\n\nDesktop Commander 可与任何兼容 MCP 的客户端配合使用。标准的 JSON 配置如下：\n\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@wonderwhy-er\u002Fdesktop-commander@latest\"]\n    }\n  }\n}\n```\n\n将此配置添加到您的客户端的 MCP 配置文件中，位置如下：\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Cursor\u003C\u002Fb>\u003C\u002Fsummary>\n\n[在 Cursor 中安装 MCP 服务器](https:\u002F\u002Fcursor.directory\u002Fmcp\u002Fdesktop-commander-mcp)\n\n或者手动添加到 `~\u002F.cursor\u002Fmcp.json`（全局）或 `.cursor\u002Fmcp.json` 在您的项目文件夹中（项目专用）。\n\n更多信息请参阅 [Cursor MCP 文档](https:\u002F\u002Fdocs.cursor.com\u002Fcontext\u002Fmodel-context-protocol)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Windsurf\u003C\u002Fb>\u003C\u002Fsummary>\n\n添加到 `~\u002F.codeium\u002Fwindsurf\u002Fmcp_config.json`。更多信息请参阅 [Windsurf MCP 文档](https:\u002F\u002Fdocs.windsurf.com\u002Fwindsurf\u002Fcascade\u002Fmcp)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>VS Code \u002F GitHub Copilot\u003C\u002Fb>\u003C\u002Fsummary>\n\n添加到您项目的 `.vscode\u002Fmcp.json` 或 VS Code 用户设置（JSON）。确保在“聊天”>“MCP”下启用 MCP。可在代理模式下运行。\n\n更多信息请参阅 [VS Code MCP 文档](https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Fcopilot\u002Fchat\u002Fmcp-servers)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Cline\u003C\u002Fb>\u003C\u002Fsummary>\n\n通过 VS Code 中的 Cline 扩展设置进行配置。打开 Cline 侧边栏，点击 MCP 服务器图标，并添加上述 JSON 配置。更多信息请参阅 [Cline MCP 文档](https:\u002F\u002Fdocs.cline.bot\u002Fmcp\u002Fconfiguring-mcp-servers)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Roo Code\u003C\u002Fb>\u003C\u002Fsummary>\n\n添加到您的 Roo Code MCP 配置文件中。更多信息请参阅 [Roo Code MCP 文档](https:\u002F\u002Fdocs.roocode.com\u002Ffeatures\u002Fmcp\u002Fusing-mcp-in-roo)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Claude Code\u003C\u002Fb>\u003C\u002Fsummary>\n\n```sh\nclaude mcp add --scope user desktop-commander -- npx -y @wonderwhy-er\u002Fdesktop-commander@latest\n```\n\n移除 `--scope user` 可仅为当前项目安装。更多信息请参阅 [Claude Code MCP 文档](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Fmcp)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Trae\u003C\u002Fb>\u003C\u002Fsummary>\n\n使用“手动添加”功能，并粘贴上述 JSON 配置。更多信息请参阅 [Trae MCP 文档](https:\u002F\u002Fdocs.trae.ai\u002Fide\u002Fmodel-context-protocol?_lang=en)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Kiro\u003C\u002Fb>\u003C\u002Fsummary>\n\n导航至 `Kiro` > `MCP 服务器`, 点击 `+ 添加`, 并粘贴上述 JSON 配置。更多信息请参阅 [Kiro MCP 文档](https:\u002F\u002Fkiro.dev\u002Fdocs\u002Fmcp\u002Fconfiguration\u002F)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Codex (OpenAI)\u003C\u002Fb>\u003C\u002Fsummary>\n\nCodex 使用 TOML 配置。运行以下命令以添加 Desktop Commander：\n\n```sh\ncodex mcp add desktop-commander -- npx -y @wonderwhy-er\u002Fdesktop-commander@latest\n```\n\n或者手动添加到 `~\u002F.codex\u002Fconfig.toml`：\n\n```toml\n[mcp_servers.desktop-commander]\ncommand = \"npx\"\nargs = [\"-y\", \"@wonderwhy-er\u002Fdesktop-commander@latest\"]\n```\n\n更多信息请参阅 [Codex MCP 文档](https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fmcp\u002F)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>JetBrains (AI Assistant)\u003C\u002Fb>\u003C\u002Fsummary>\n\n在 JetBrains IDE 中，前往 **设置 → 工具 → AI Assistant → 模型上下文协议 (MCP)**，点击 `+` 添加，选择 **作为 JSON**，并粘贴上述 JSON 配置。更多信息请参阅 [JetBrains MCP 文档](https:\u002F\u002Fwww.jetbrains.com\u002Fhelp\u002Fai-assistant\u002Fconfigure-an-mcp-server.html)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Gemini CLI\u003C\u002Fb>\u003C\u002Fsummary>\n\n添加到 `~\u002F.gemini\u002Fsettings.json`：\n\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@wonderwhy-er\u002Fdesktop-commander@latest\"]\n    }\n  }\n}\n```\n\n更多信息请参阅 [Gemini CLI 文档](https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Augment Code\u003C\u002Fb>\u003C\u002Fsummary>\n\n按下 `Cmd\u002FCtrl+Shift+P`，打开 Augment 面板，添加一个名为 `desktop-commander` 的新 MCP 服务器，并使用上述 JSON 配置。更多信息请参阅 [Augment Code MCP 文档](https:\u002F\u002Fdocs.augmentcode.com\u002Fsetup-augment\u002Fmcp)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Qwen Code\u003C\u002Fb>\u003C\u002Fsummary>\n\n运行以下命令以添加 Desktop Commander：\n\n```sh\nqwen mcp add desktop-commander -- npx -y @wonderwhy-er\u002Fdesktop-commander@latest\n```\n\n或者添加到 `.qwen\u002Fsettings.json`（项目）或 `~\u002F.qwen\u002Fsettings.json`（全局）。更多信息请参阅 [Qwen Code MCP 文档](https:\u002F\u002Fqwenlm.github.io\u002Fqwen-code-docs\u002Fen\u002Fdevelopers\u002Ftools\u002Fmcp-server\u002F)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>ChatGPT \u002F Claude Web (远程 MCP)\u003C\u002Fb>\u003C\u002Fsummary>\n\n通过远程 MCP，在 **ChatGPT**、**Claude web** 和其他 AI 服务中使用 Desktop Commander——无需桌面应用程序。\n\n**👉 [立即开始使用 mcp.desktopcommander.app](https:\u002F\u002Fmcp.desktopcommander.app)**\n\n工作原理：\n1. 您在电脑上运行一个轻量级的 **远程设备**\n2. 它安全地连接到云端的远程 MCP 服务\n3. 您的 AI 通过云端向您的设备发送命令\n4. 命令在本地执行，结果返回给您的 AI\n5. **您始终掌控一切**——随时按 `Ctrl+C` 即可停止。\n\n### 安全性\n\n- ✅ 设备仅在您启动时运行\n- ✅ 命令在您的用户权限下执行\n- ✅ 安全的 OAuth 认证和加密通信通道\n\n\u003C\u002Fdetails>\n\n## 更新与卸载 Desktop Commander\n\n### 自动更新（选项 1、2、3、4 和 6）\n**选项 1（npx）、选项 2（bash 安装程序）、选项 3（Smithery）、选项 4（手动配置）以及选项 6（Docker）** 在您重启 Claude 时会自动更新到最新版本。无需手动干预。\n\n### 手动更新（选项 5）\n- **选项 5（本地检出）：** `cd DesktopCommanderMCP && git pull && npm run setup`\n\n### 卸载 Desktop Commander\n#### 🤖 自动卸载（推荐）\n\n彻底移除 Desktop Commander 的最简单方法：\n\n```bash\nnpx @wonderwhy-er\u002Fdesktop-commander@latest remove\n```\n\n此自动卸载工具将：\n- ✅ 从 Claude 的 MCP 服务器配置中移除 Desktop Commander\n- ✅ 在进行更改前为您的 Claude 配置创建备份\n- ✅ 提供完整卸载包的指导\n- ✅ 如遇问题，可从备份中恢复\n\n#### 🔧 手动卸载\n\n如果自动卸载工具无法正常工作，或您更倾向于手动移除：\n\n##### 从 Claude 配置中移除\n\n1. **找到您的 Claude Desktop 配置文件：**\n   - **macOS：** `~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`\n   - **Windows：** `%APPDATA%\\Claude\\claude_desktop_config.json`\n   - **Linux：** `~\u002F.config\u002FClaude\u002Fclaude_desktop_config.json`\n\n2. **编辑配置文件：**\n   - 使用文本编辑器打开该文件\n   - 在 `\"mcpServers\"` 部分查找并删除 `\"desktop-commander\"` 条目\n   - 保存文件\n\n   **示例——移除以下部分：**\n   ```json\n   {\n       \"desktop-commander\": {\n           \"command\": \"npx\",\n           \"args\": [\"@wonderwhy-er\u002Fdesktop-commander@latest\"]\n       }\n   }\n   ```\n\n关闭并重新启动 Claude Desktop，以完成移除。\n\n#### 🆘 故障排除\n\n**如果自动卸载失败：**\n- 请使用手动卸载作为备用方案\n\n**如果卸载后 Claude 无法启动：**\n- 恢复由卸载工具创建的备份配置文件\n- 或者手动修复您的 claude_desktop_config.json 文件中的 JSON 语法\n\n**需要帮助吗？**\n- 加入我们的 Discord 社区：https:\u002F\u002Fdiscord.com\u002Finvite\u002FkQ27sNnZr7\n\n## 入门指南\n\n一旦安装好 Desktop Commander 并重启 Claude Desktop，您就可以开始大幅提升您的 Claude 使用体验了！\n\n### 🚀 新用户引导\n\nDesktop Commander 内置智能引导功能，帮助您发现各种可能性：\n\n**针对新用户：** 当您刚开始使用（成功执行命令少于 10 次）时，Claude 会在您成功使用 Desktop Commander 后，自动提供实用的入门指导和教程。\n\n**随时请求帮助：** 您可以随时通过说出以下话语来获得引导帮助：\n- “帮我开始使用 Desktop Commander”\n- “给我看 Desktop Commander 的示例”\n- “我可以用 Desktop Commander 做些什么？”\n\n随后，Claude 将为您展示适合初学者的教程和示例，包括：\n- 📁 自动整理您的下载文件夹\n- 📊 使用 Python 分析 CSV\u002FExcel 文件\n- ⚙️ 设置 GitHub Actions CI\u002FCD\n- 🔍 探索并理解代码库\n- 🤖 运行交互式开发环境\n\n## 使用说明\n\n该服务器提供了一套全面的工具，按多个类别组织：\n\n### 可用工具\n\n| 类别 | 工具 | 描述 |\n|------|------|------|\n| **配置** | `get_config` | 获取完整的服务器配置，格式为 JSON（包含 blockedCommands、defaultShell、allowedDirectories、fileReadLineLimit、fileWriteLineLimit、telemetryEnabled 等） |\n| | `set_config_value` | 按键设置特定的配置值。可用设置包括：\u003Cbr>• `blockedCommands`：不可执行的 shell 命令列表\u003Cbr>• `defaultShell`：用于执行命令的 shell（如 bash、zsh、powershell）\u003Cbr>• `allowedDirectories`：服务器可访问的文件系统路径列表（⚠️ 终端命令仍可访问这些目录之外的文件）\u003Cbr>• `fileReadLineLimit`：一次最多读取的行数（默认 1000 行）\u003Cbr>• `fileWriteLineLimit`：一次最多写入的行数（默认 50 行）\u003Cbr>• `telemetryEnabled`：启用\u002F禁用遥测功能（布尔值） |\n| **终端** | `start_process` | 启动程序，并智能检测其是否已准备好接收输入 |\n| | `interact_with_process` | 向正在运行的程序发送命令并获取响应 |\n| | `read_process_output` | 读取正在运行的进程输出 |\n| | `force_terminate` | 强制终止一个正在运行的终端会话 |\n| | `list_sessions` | 列出所有活跃的终端会话 |\n| | `list_processes` | 列出所有正在运行的进程，并提供详细信息 |\n| | `kill_process` | 根据 PID 终止一个正在运行的进程 |\n| **文件系统** | `read_file` | 从本地文件系统、URL、Excel 文件（.xlsx、.xls、.xlsm）以及 PDF 中读取内容，并支持按行\u002F页分页 |\n| | `read_multiple_files` | 同时读取多个文件 |\n| | `write_file` | 写入文件内容，支持覆盖或追加模式。支持 Excel 文件（JSON 二维数组格式）。对于 PDF，则使用 `write_pdf` |\n| | `write_pdf` | 从 markdown 创建新的 PDF 文件，或修改现有 PDF（插入\u002F删除页面）。支持 HTML\u002FCSS 样式和 SVG 图形 |\n| | `create_directory` | 创建新目录或确保其存在 |\n| | `list_directory` | 获取文件和目录的递归详细列表（支持深度参数，默认深度为 2） |\n| | `move_file` | 移动或重命名文件和目录 |\n| | `start_search` | 开始按名称或内容模式流式搜索文件（搜索文本文件和 Excel 内容） |\n| | `get_more_search_results` | 获取当前搜索的分页结果，并支持偏移 |\n| | `stop_search` | 优雅地停止正在进行的搜索 |\n| | `list_searches` | 列出所有正在进行的搜索会话 |\n| | `get_file_info` | 获取文件或目录的详细元数据（包括 Excel 文件的表格信息） |\n| **文本编辑** | `edit_block` | 对文本文件进行有针对性的文本替换，或对 Excel 文件进行基于范围的单元格更新 |\n| **分析** | `get_usage_stats` | 获取使用统计信息，供您自行了解 |\n| | `get_recent_tool_calls` | 获取最近的工具调用记录，包括参数和输出，便于调试和上下文恢复 |\n| | `give_feedback_to_desktop_commander` | 在浏览器中打开反馈表单，向 Desktop Commander 团队提交反馈 |\n\n### 快速示例\n\n**数据分析：**\n```\n“分析 sales.csv 并显示顶级客户” → Claude 在内存中运行 Python 代码\n```\n\n**远程访问：**\n```\n“SSH 到我的服务器并检查磁盘空间” → Claude 维持 SSH 会话\n```\n\n**开发：**\n```\n“启动 Node.js 并测试这个 API” → Claude 运行交互式 Node 会话\n```\n\n### 工具使用示例\n\n搜索\u002F替换块格式：\n```\nfilepath.ext\n\u003C\u003C\u003C\u003C\u003C\u003C\u003C SEARCH\n要查找的内容\n=======\n新内容\n>>>>>>> REPLACE\n```\n\n示例：\n```\nsrc\u002Fmain.js\n\u003C\u003C\u003C\u003C\u003C\u003C\u003C SEARCH\nconsole.log(\"旧消息\");\n=======\nconsole.log(\"新消息\");\n>>>>>>> REPLACE\n```\n\n### 增强的编辑块功能\n\n`edit_block` 工具包含多项增强功能，以提升可靠性：\n\n1. **改进提示**：工具说明现在强调进行多次小而集中的修改，而非一次性进行大改动。\n2. **模糊搜索回退**：当精确匹配失败时，系统会执行模糊搜索并提供详细反馈。\n3. **字符级差异显示**：使用 `{-removed-}{+added+}` 格式精确展示不同之处。\n4. **多处替换支持**：可通过 `expected_replacements` 参数一次性替换多个实例。\n5. **全面日志记录**：所有模糊搜索都会被记录下来，便于分析与调试。\n\n当搜索失败时，您将看到关于找到的最接近匹配的详细信息，包括相似度百分比、执行时间以及字符差异。所有这些细节都会自动记录下来，以便后续使用模糊搜索日志工具进行分析。\n\n### Docker 支持\n\n### 🐳 隔离环境使用\n\nDesktop Commander 可以在 Docker 容器中运行，实现与宿主机系统的完全隔离，从而确保您的计算机零风险。这非常适合用于测试、开发，或需要完全沙盒化环境的场景。\n\n### 安装说明\n\n1. **安装适用于 Windows\u002FMac 的 Docker**\n   - 从 [docker.com](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop\u002F) 下载并安装 Docker Desktop。\n\n2. **获取 Desktop Commander 的 Docker 配置**\n   - 访问：https:\u002F\u002Fhub.docker.com\u002Fmcp\u002Fserver\u002Fdesktop-commander\u002Fmanual\n   - **选项 A**：使用提供的终端命令进行自动化设置。\n   - **选项 B**：点击“独立”以获取配置 JSON，并手动将其添加到您的 Claude Desktop 配置中。\n   ![docker-config.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_aa790a3b563b.png)\n\n3. **挂载本地文件夹（即将推出）**\n   - 关于如何将本地目录挂载到 Docker 容器中的说明将很快发布。\n   - 这样您就可以在保持完全隔离的同时处理自己的文件。\n\n### 使用 Docker 的优势\n- **完全隔离** 与宿主机系统。\n- **一致的环境** 在不同机器上保持一致。\n- **易于清理**——完成任务后只需删除容器即可。\n- **非常适合测试** 新功能或新配置。\n\n## URL 支持\n- `read_file` 现在既可以读取本地文件，也可以从 URL 获取内容。\n- 示例：使用 `isUrl: true` 参数调用 `read_file` 以读取网络资源。\n- 同时支持远程来源的文本和图像内容。\n- 图像（无论是本地还是来自 URL）都会在 Claude 的界面中以可视化方式显示，而不是作为文本呈现。\n- Claude 能够查看并分析实际的图像内容。\n- 默认对 URL 请求设置 30 秒超时。\n\n## 模糊搜索日志分析（npm 脚本）\n\n模糊搜索日志系统包含便捷的 npm 脚本，可在 MCP 环境外部对日志进行分析：\n\n```bash\n# 查看最近的模糊搜索日志\nnpm run logs:view -- --count 20\n\n# 分析模式与性能\nnpm run logs:analyze -- --threshold 0.8\n\n# 将日志导出为 CSV 或 JSON\nnpm run logs:export -- --format json --output analysis.json\n\n# 清除所有日志（需确认）\nnpm run logs:clear\n```\n\n有关这些脚本的详细文档，请参阅 [scripts\u002FREADME.md](scripts\u002FREADME.md)。\n\n## 模糊搜索日志\n\nDesktop Commander 包含针对 `edit_block` 工具中模糊搜索操作的全面日志记录功能。当无法找到精确匹配时，系统会执行模糊搜索，并记录详细信息以便分析。\n\n### 日志记录的内容\n\n每次模糊搜索操作都会记录：\n- **搜索与找到的文本**：您要查找的文本与实际找到的文本对比。\n- **相似度分数**：匹配的接近程度（0–100%）。\n- **执行时间**：搜索耗时。\n- **字符差异**：详细显示具体不同的地方。\n- **文件元数据**：扩展名、搜索\u002F找到文本的长度。\n- **字符编码**：导致差异的具体字符编码。\n\n### 日志保存位置\n\n日志会自动保存至：\n- **macOS\u002FLinux**：`~\u002F.claude-server-commander-logs\u002Ffuzzy-search.log`\n- **Windows**：`%USERPROFILE%\\.claude-server-commander-logs\\fuzzy-search.log`\n\n### 您能从中了解到什么\n\n模糊搜索日志可以帮助您理解：\n1. **精确匹配为何失败**：常见问题如空格差异、行尾符或字符编码问题。\n2. **性能模式**：搜索复杂度如何影响执行时间。\n3. **文件类型问题**：哪些文件扩展名常出现匹配问题。\n4. **字符编码问题**：哪些特定字符编码会导致差异。\n\n## 审计日志\n\nDesktop Commander 现在包含对所有工具调用的全面日志记录功能：\n\n### 日志记录的内容\n- 每次工具调用都会记录时间戳、工具名称及参数（已进行隐私保护处理）。\n- 当日志达到 10MB 时会自动轮转。\n\n### 日志保存位置\n日志保存至：\n- **macOS\u002FLinux**：`~\u002F.claude-server-commander\u002Fclaude_tool_call.log`\n- **Windows**：`%USERPROFILE%\\.claude-server-commander\\claude_tool_call.log`\n\n此审计追踪有助于调试、安全监控以及了解 Claude 如何与您的系统交互。\n\n## 处理长时间运行的命令\n\n对于可能需要较长时间才能完成的命令：\n\n## 配置管理\n\n### ⚠️ 重要安全警告\n\n> **有关全面的安全信息及漏洞报告**：请参阅 [SECURITY.md](SECURITY.md)\n\n1. **已知的安全限制**：目录限制与命令阻断可通过多种方式绕过，包括符号链接、命令替换、绝对路径以及代码执行等。\n   \n2. **始终在单独的聊天窗口中更改配置**，不要与实际工作同时进行。Claude 有时可能会尝试修改配置设置（如 `allowedDirectories`），尤其是在遇到文件系统访问限制时。\n\n3. **目前 `allowedDirectories` 设置仅限制文件系统操作**，并不限制终端命令。终端命令仍可访问允许目录之外的文件。\n\n4. **出于生产环境的安全考虑**：请使用 [Docker 安装](#option-6-docker-installation-🐳-⭐-auto-updates-no-nodejs-required)，该方法可实现与宿主机系统的完全隔离。\n\n### 配置工具\n\n您可以使用提供的工具来管理服务器配置：\n\n```javascript\n\u002F\u002F 获取整个配置\nget_config({})\n\n\u002F\u002F 设置特定的配置值\nset_config_value({ \"key\": \"defaultShell\", \"value\": \"\u002Fbin\u002Fzsh\" })\n\n\u002F\u002F 通过多次调用设置多个配置值\nset_config_value({ \"key\": \"defaultShell\", \"value\": \"\u002Fbin\u002Fbash\" })\nset_config_value({ \"key\": \"allowedDirectories\", \"value\": [\"\u002FUsers\u002Fusername\u002Fprojects\"] })\n```\n\n配置会保存到服务器工作目录下的 `config.json` 文件中，并在服务器重启后仍然有效。\n\n#### 关于 `fileWriteLineLimit` 的说明\n\n`fileWriteLineLimit` 设置控制单次 `write_file` 操作可以写入的最大行数（默认值为 50 行）。设置这一限制有以下几个重要原因：\n\n**为什么需要设置这个限制：**\n- **AI 在使用 Token 方面较为浪费**：AI 可能不会对文件进行两次小规模的修改，而是选择直接重写整个文件。我们希望通过限制每次操作的行数，促使 AI 以更小的改动方式完成任务，从而节省时间和 Token。\n- **Claude 的消息长度限制**：单条消息存在长度限制，且点击“继续”按钮并不能真正解决问题。我们希望 AI 能够以更小的块状方式处理任务，这样当达到消息长度限制时，已经成功处理的部分不会丢失——只需从上一个块重新开始即可。\n\n**如何设置该限制：**\n```javascript\n\u002F\u002F 如果需要，可以将其设置为上千行\nset_config_value({ \"key\": \"fileWriteLineLimit\", \"value\": 1000 })\n\n\u002F\u002F 或者保持较小的值以强制更高效的行为\nset_config_value({ \"key\": \"fileWriteLineLimit\", \"value\": 25 })\n```\n\n**最大值**：您可以根据需要将其设置为上千行——技术上没有任何限制。\n\n**最佳实践**：\n- 建议保持默认值（50 行），以鼓励 AI 更高效地工作并避免 Token 浪费。\n- 当超过限制时，系统会自动提示分块处理。\n- 分块越小，当 Claude 达到消息长度限制时，丢失的工作就越少。\n\n### 最佳实践\n\n1. **创建专门的聊天用于配置更改**：所有配置更改都应在同一个聊天中完成，然后开启一个新的聊天进行实际工作。\n   \n2. **谨慎设置空的 `allowedDirectories`**：如果将此设置为一个空数组 (`[]`)，则文件操作将获得对整个文件系统的访问权限。\n\n3. **使用具体的路径**：不要使用像 `\u002F` 这样的宽泛路径，而应明确指定您希望访问的具体目录。\n\n4. **更改后务必验证配置**：使用 `get_config({})` 确认您的更改已正确应用。\n\n## 命令行选项\n\nDesktop Commander 支持多种命令行选项，用于自定义行为：\n\n### 禁用引导功能\n\n默认情况下，Desktop Commander 会向新用户（即工具调用次数少于 10 次的用户）显示有用的引导提示。您可以禁用此功能：\n\n```bash\n# 禁用本次会话的引导\nnode dist\u002Findex.js --no-onboarding\n\n# 或者使用 npm 脚本\nnpm run start:no-onboarding\n\n# 对于 npx 安装，修改您的 claude_desktop_config.json：\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@wonderwhy-er\u002Fdesktop-commander@latest\",\n        \"--no-onboarding\"\n      ]\n    }\n  }\n}\n```\n\n**自动禁用引导的情况：**\n- 当 MCP 客户端名称被设置为 “desktop-commander” 时；\n- 当使用 `--no-onboarding` 标志时；\n- 当用户已经使用过引导提示或进行了 10 次以上的工具调用后。\n\n**调试信息：**\n服务器会在引导被禁用时记录日志：“通过 --no-onboarding 标志禁用了引导”。\n\n## 使用不同的 Shell\n\n您可以指定用于执行命令的 Shell：\n\n```javascript\n\u002F\u002F 使用默认 Shell（bash 或系统默认）\nexecute_command({ \"command\": \"echo $SHELL\" })\n\n\u002F\u002F 特别使用 zsh\nexecute_command({ \"command\": \"echo $SHELL\", \"shell\": \"\u002Fbin\u002Fzsh\" })\n\n\u002F\u002F 特别使用 bash\nexecute_command({ \"command\": \"echo $SHELL\", \"shell\": \"\u002Fbin\u002Fbash\" })\n```\n\n这使您能够利用特定 Shell 的功能，或在不同命令之间保持一致的环境。\n\n1. `execute_command` 在超时后返回初始输出；\n2. 命令在后台继续执行；\n3. 使用 `read_output` 并提供 PID 来获取新的输出；\n4. 如有必要，使用 `force_terminate` 来终止进程。\n\n## 调试\n\n如果您需要调试服务器，可以以调试模式安装它：\n\n```bash\n# 使用 npx\nnpx @wonderwhy-er\u002Fdesktop-commander@latest setup --debug\n\n# 或者本地安装\nnpm run setup:debug\n```\n\n这将：\n1. 配置 Claude 使用单独的 “desktop-commander” 服务器；\n2. 启用 Node.js 调试协议，并添加 `--inspect-brk=9229` 标志；\n3. 在启动时暂停执行，直到调试器连接；\n4. 启用额外的调试环境变量。\n\n要连接调试器：\n- 在 Chrome 中，访问 `chrome:\u002F\u002Finspect` 并查找 Node.js 实例；\n- 在 VS Code 中，使用 “附加到 Node.js 进程” 调试配置；\n- 其他 IDE 或工具也可能提供类似的 “附加” 选项来进行 Node.js 调试。\n\n重要的调试注意事项：\n- 由于设置了 `--inspect-brk` 标志，服务器会在启动时暂停，直到调试器连接；\n- 如果在调试过程中没有看到任何活动，请确保已连接到正确的 Node.js 进程；\n- 可能同时运行多个 Node.js 进程，需连接到端口 9229 上的那个；\n- 调试服务器在 Claude 的 MCP 服务器列表中会被标识为 “desktop-commander-debug”。\n\n故障排除：\n- 如果 Claude 在尝试使用调试服务器时超时，可能是调试器未正确连接；\n- 正确连接后，进程将在遇到第一个断点后继续执行；\n- 连接后，您可以在 IDE 中添加更多断点。\n\n## 模型上下文协议集成\n\n该项目扩展了 MCP 文件系统服务器的功能，使其能够实现：\n- 在 Claude Desktop 中支持本地服务器；\n- 执行完整的系统命令；\n- 进程管理；\n- 文件操作；\n- 代码编辑并支持搜索\u002F替换块。\n\n该项目是探索 Claude MCP 的一部分：https:\u002F\u002Fyoutube.com\u002Flive\u002FTlbjFDbl5Us\n\n## 支持 Desktop Commander\n\n\u003Cdiv align=\"center\">\n  \u003Ch3>📢 支持本项目\u003C\u002Fh3>\n  \u003Cp>\u003Cstrong>Desktop Commander MCP 是免费且开源的，但要蓬勃发展仍需您的支持！\u003C\u002Fstrong>\u003C\u002Fp>\n  \n  \u003Cdiv style=\"background-color: #f8f9fa; padding: 15px; border-radius: 10px; margin: 20px 0; border: 2px solid #007bff;\">\n    \u003Cp>我们的理念很简单：如果您尚未取得成功，我们不希望您为此付费。但若 Desktop Commander 能为您的成功助力，请考虑为我们提供支持。\u003C\u002Fp>\n    \u003Cp>\u003Cstrong>支持方式：\u003C\u002Fstrong>\u003C\u002Fp>\n    \u003Cul style=\"list-style-type: none; padding: 0;\">\n      \u003Cli>🌟 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fwonderwhy-er\">\u003Cstrong>GitHub Sponsors\u003C\u002Fstrong>\u003C\u002Fa> - 定期支持\u003C\u002Fli>\n      \u003Cli>☕ \u003Ca href=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Fwonderwhyer\">\u003Cstrong>请我喝杯咖啡\u003C\u002Fstrong>\u003C\u002Fa> - 一次性捐赠\u003C\u002Fli>\n      \u003Cli>💖 \u003Ca href=\"https:\u002F\u002Fwww.patreon.com\u002Fc\u002FEduardsRuzga\">\u003Cstrong>Patreon\u003C\u002Fstrong>\u003C\u002Fa> - 成为赞助人，每月支持我们\u003C\u002Fli>\n      \u003Cli>⭐ \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\">\u003Cstrong>在 GitHub 上加星标\u003C\u002Fstrong>\u003C\u002Fa> - 帮助更多人发现该项目\u003C\u002Fli>\n    \u003C\u002Ful>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\n### ❤️ 支持者名人堂\n\n这里展示了慷慨的支持者。感谢您让这个项目成为现实！\n\n\u003Cdiv align=\"center\">\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjonrichards\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_8485aa32d7ac.png\" width=\"100px;\" alt=\"Jon Richards\"\u002F>\n        \u003Cbr \u002F>\n        \u003Csub>\u003Cb>Jon Richards\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstepanic\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_7daed2c0733f.png\" width=\"100px;\" alt=\"Matija Stepanic\"\u002F>\n        \u003Cbr \u002F>\n        \u003Csub>\u003Cb>Matija Stepanic\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdetails>\n  \u003Csummary>\u003Cstrong>为什么您的支持至关重要\u003C\u002Fstrong>\u003C\u002Fsummary>\n  \u003Cp>您的支持使我们能够：\u003C\u002Fp>\n  \u003Cul>\n    \u003Cli>持续进行积极的开发与维护\u003C\u002Fli>\n    \u003Cli>添加新功能与集成\u003C\u002Fli>\n    \u003Cli>提升跨平台兼容性\u003C\u002Fli>\n    \u003Cli>提供更完善的文档与示例\u003C\u002Fli>\n    \u003Cli>打造更强大的项目社区\u003C\u002Fli>\n  \u003C\u002Ful>\n\u003C\u002Fdetails>\n\n## 官方网站\n\n请访问我们的官方网站 [https:\u002F\u002Fdesktopcommander.app\u002F](https:\u002F\u002Fdesktopcommander.app\u002F)，获取最新资讯、文档及更新。\n\n## 媒体资源\n\n通过以下资源了解更多关于本项目的信息：\n\n### 文章\n[Claude 搭配 MCP 替代 Cursor 和 Windsurf。这是如何做到的？](https:\u002F\u002Fwonderwhy-er.medium.com\u002Fclaude-with-mcps-replaced-cursor-windsurf-how-did-that-happen-c1d1e2795e96) - 详细探讨具备模型上下文协议能力的 Claude 如何改变开发者的工作流程。\n\n### 视频\n[Claude Desktop Commander 视频教程](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8) - 观看如何高效地设置并使用 Commander。\n\n### AnalyticsIndiaMag 的报道\n[![analyticsindiamag.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_f7809374f26c.png)\n这位开发者用 Claude 搭配 MCP 取代了 Windsurf 和 Cursor](https:\u002F\u002Fanalyticsindiamag.com\u002Fai-features\u002Fthis-developer-ditched-windsurf-cursor-using-claude-with-mcps\u002F)\n\n### 社区\n加入我们的 [Discord 服务器](https:\u002F\u002Fdiscord.gg\u002FkQ27sNnZr7)，获取帮助、分享反馈并与其他用户交流。\n\n## 用户评价\n\n[![这简直是救星！我之前一直用Claude + Cursor，总觉得有点重复。现在这个工具彻底解决了这个问题，真是太开心了！非常感谢！而且今天Claude还新增了网络搜索功能，有了MCP+互联网搜索，它就能写出包含最新更新的代码。当Cursor偶尔出问题或快速请求都被占满时，这个功能就特别管用。](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_3137ad8ca76c.png) https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgyyBt6_ShdDX_rIOad4AaABAg\n](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgyyBt6_ShdDX_rIOad4AaABAg\n)\n\n[![这是我第一次在YouTube视频下留评论，真的太感谢了！我一直想把Cursor里的一个旧Flutter应用从旧的非空安全版本升级到当前版本，并且用Claude 3.7实现了空安全。虽然大部分工作都完成了，但还是遇到了一些关键的BLE错误，折腾了好几天也没解决。试过Augment Code，也没搞定。后来我在Claude桌面版里用了你的MCP，能够完整地对比新旧代码库，考虑到代码中的各项更新，只花了几个小时就把问题都修复了。给尝试这个方法的朋友一个小建议：一定要适时暂存和提交更改，这样万一出现不想要的改动还能及时撤销。太棒了！](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_45f014f782fc.png)\nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgztdHvDMqTb9jiqnf54AaABAg](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgztdHvDMqTb9jiqnf54AaABAg\n)\n\n[![太棒了！我刚用Windsurf，一周前才买了许可证，用来升级一个老旧的全栈Socket项目。效果时好时坏，有时候还会引发连锁反应，不得不回滚所有更改，结果损失了好几百个连锁代币。现在才一周时间，代币余额就降到不到100个了，可不想再花10美元买300个代币。这款Claude MCP，终于让我觉得值得入手Claude Pro，也让我有了一个比ChatGPT更强大的理由。现在我可以随心所欲地写代码，完全不用担心代币消耗的问题。\n而且这可不仅仅是代码编辑，它远不止于此，真的非常感谢你制作了这么棒的视频！](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_5c12d720b68d.png)\nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgyQFTmYLJ4VBwIlmql4AaABAg](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=UgyQFTmYLJ4VBwIlmql4AaABAg\n)\n\n[![这真是个很棒的工具，谢谢！我喜欢用它，因为它让Claude具备了精准的手术式修改能力，让它更像一位人类开发者。](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_b87f2df8f58a.png)\nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=Ugy4-exy166_Ma7TH-h4AaABAg](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ly3bed99Dy8&lc=Ugy4-exy166_Ma7TH-h4AaABAg\n)\n\n[![您就是我的英雄！您几乎完美地总结并描述了我最近的经历，比我自己的表达还要到位。Cursor和Windsurf都曾让我沮丧到几乎对着电脑屏幕大喊大叫。一时兴起，我就想干脆直接问Claude吧，从此就再也离不开它了。\n先用Claude保持理智，必要时再配合其他IDE、框架等使用。我还以为只有我才这样呢，没想到居然不是，哈哈。\n33\n1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_readme_d487318cc351.png)\nhttps:\u002F\u002Fmedium.com\u002F@pharmx\u002Fyou-sir-are-my-hero-62cff5836a3e](https:\u002F\u002Fmedium.com\u002F@pharmx\u002Fyou-sir-are-my-hero-62cff5836a3e\n\n如果您觉得这个项目有用，请考虑在GitHub上给它点个⭐星！这有助于更多人发现该项目，并鼓励我们继续开发。\n\n我们欢迎社区贡献！无论您发现了Bug、有功能需求，还是想贡献代码，都可以通过以下方式参与：\n\n- **发现了Bug？** 在[github.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues)中提交一个问题\n- **有功能想法？** 在Issues栏目中提交功能请求\n- **想贡献代码？** Fork仓库，创建分支，然后提交Pull Request\n- **有问题或讨论？** 在GitHub Discussions标签页发起讨论\n\n无论大小贡献，我们都十分感激！\n\n如果您觉得这个工具对您的工作流程很有价值，请考虑[支持该项目](https:\u002F\u002Fwww.buymeacoffee.com\u002Fwonderwhyer)。\n\n## 常见问题\n\n以下是几个常见问题的解答。如需更全面的FAQ，请参阅我们的[详细FAQ文档](FAQ.md)。\n\n### 什么是Desktop Commander？\n这是一个MCP工具，可以让Claude Desktop访问您的文件系统和终端，从而将Claude变成一个多功能的助手，用于编码、自动化、代码库探索等。\n\n### 这和Cursor\u002FWindsurf有什么不同？\n与专注于IDE的工具不同，Claude Desktop Commander提供了一种以解决方案为中心的方法，可以与您的整个操作系统协同工作，而不仅限于编码环境。Claude会完整读取文件，而不是分块处理；它可以同时处理多个项目；并且能一次性执行所有更改，而无需反复检查。\n\n### 我需要为API积分付费吗？\n不需要。这个工具是基于Claude Desktop的标准Pro订阅（每月20美元）运行的，不涉及API调用，因此除了订阅费之外不会产生额外费用。\n\n### Desktop Commander会自动更新吗？\n是的，通过npx或Smithery安装后，只要您重启Claude，Desktop Commander就会自动更新到最新版本。无需手动更新。\n\n### 最常见的使用场景有哪些？\n- 探索和理解复杂的代码库\n- 生成图表和文档\n- 自动化跨系统的任务\n- 同时处理多个项目\n- 进行精准控制的手术式代码修改\n\n### 安装或使用过程中遇到问题，该去哪里求助？\n请加入我们的[Discord服务器](https:\u002F\u002Fdiscord.gg\u002FkQ27sNnZr7)获取社区支持，查看[GitHub Issues](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues)了解已知问题，或查阅[完整FAQ](FAQ.md)获取故障排除技巧。您也可以访问我们的[网站FAQ页面](https:\u002F\u002Fdesktopcommander.app#faq)，获得更友好的使用体验。如果遇到新问题，请考虑[提交GitHub Issue](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues\u002Fnew)，并详细说明您的问题。\n\n### 如何报告安全漏洞？\n请在[GitHub Issue](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues)中提交关于您发现的安全漏洞的详细信息。有关负责任披露的完整指南，请参阅我们的[安全政策](SECURITY.md)。\n\n## 数据收集与隐私\n\nDesktop Commander 会收集有限的、经过假名处理的遥测数据，以改进该工具。我们不会收集文件内容、文件路径或命令参数。\n\n**选择退出：** 请让 Claude 执行“禁用 Desktop Commander 遥测”操作，或在您的配置中将 `\"telemetryEnabled\": false` 设置为真。\n\n有关完整详情，请参阅我们的[隐私政策](PRIVACY.md)。\n\n## 验证\n[![在 MseeP 上已验证](https:\u002F\u002Fmseep.ai\u002Fbadge.svg)](https:\u002F\u002Fmseep.ai\u002Fapp\u002F25ff7a06-58bc-40b8-bd79-ebb715140f1a)\n\n## 许可证\n\nMIT","# DesktopCommanderMCP 中文快速上手指南\n\n## 环境准备\n\n| 项目 | 要求 |\n|---|---|\n| 操作系统 | macOS \u002F Windows \u002F Linux |\n| Node.js | ≥ 18（推荐 20+） |\n| Claude Desktop | 已安装并运行 |\n| Docker（可选） | 如需隔离运行 |\n\n> 国内用户若 npm 下载慢，可先执行  \n> `npm config set registry https:\u002F\u002Fregistry.npmmirror.com`\n\n---\n\n## 安装步骤（任选其一）\n\n### 方案 1：一行命令自动安装（推荐）\n```bash\nnpx @wonderwhy-er\u002Fdesktop-commander@latest setup\n```\n重启 Claude Desktop 即可使用。  \n自动更新：每次重启 Claude 时检查更新。\n\n### 方案 2：macOS 一键脚本（自动装 Node.js）\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall.sh | bash\n```\n\n### 方案 3：Docker 隔离安装（无需 Node.js）\nmacOS \u002F Linux：\n```bash\nbash \u003C(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.sh)\n```\nWindows PowerShell：\n```powershell\niex ((New-Object System.Net.WebClient).DownloadString('https:\u002F\u002Fraw.githubusercontent.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Frefs\u002Fheads\u002Fmain\u002Finstall-docker.ps1'))\n```\n\n### 方案 4：手动写入配置\n打开 Claude Desktop 配置文件：\n- macOS: `~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`\n- Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n- Linux: `~\u002F.config\u002FClaude\u002Fclaude_desktop_config.json`\n\n追加：\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@wonderwhy-er\u002Fdesktop-commander@latest\"]\n    }\n  }\n}\n```\n保存后重启 Claude Desktop。\n\n---\n\n## 基本使用\n\n1. 打开 Claude Desktop，新建对话。\n2. 直接输入自然语言指令，例如：\n   - “在当前目录创建名为 demo 的文件夹”\n   - “把 README.md 里的 ‘foo’ 全部替换为 ‘bar’”\n   - “运行 `python -m http.server 8000` 并在后台保持”\n3. Claude 会调用 DesktopCommanderMCP 完成操作，并实时返回结果。\n\n### 最小示例\n```\n用户：在当前目录新建 test.py，写入 print(\"Hello MCP\") 并运行\nClaude：✅ 已创建 test.py  \n✅ 已运行 python test.py  \n输出：Hello MCP\n```\n\n至此，安装完成，可开始用自然语言让 AI 帮你管理文件、执行命令、分析数据。","独立开发者小林正在赶制一个 SaaS 项目的 MVP，需要在 48 小时内把本地原型部署到线上并修复用户反馈的若干 bug。\n\n### 没有 DesktopCommanderMCP 时\n- 为了找出“用户列表加载慢”的代码位置，小林在 VS Code 里全局搜索 `user.*load`，结果 200+ 条匹配，手动逐条排查耗时 40 分钟。  \n- 发现是 SQL 查询缺少索引后，他切到终端敲 `psql` 连数据库，再手动复制粘贴 EXPLAIN 结果回 Claude 网页，来回切换窗口 5 次才拿到优化建议。  \n- 改完 SQL 后，需要把改动同步到 staging 服务器，他又打开新终端窗口，手敲 `scp` 上传文件，结果路径写错，覆盖错了文件，回滚又花 20 分钟。  \n- 用户还反馈导出 Excel 乱码，小林本地没有装 Office，只能先写脚本把 CSV 转 XLSX，再上传到测试环境验证，来回折腾 3 轮。  \n\n### 使用 DesktopCommanderMCP 后\n- 小林直接在 Claude 聊天框里问：“找出所有包含 user 且执行 SQL 的函数”，DesktopCommanderMCP 秒级返回 3 个精准文件定位，节省 35 分钟。  \n- 他接着让 Claude 在对话里执行 `psql -c \"EXPLAIN ANALYZE SELECT * FROM users\"`，输出实时回显在聊天窗口，AI 立即给出加索引的 SQL，一键复制即可运行。  \n- 改动完成后，一句“把当前 diff 推送到 staging”就让 DesktopCommanderMCP 自动执行 `git diff` + `scp` 正确路径，全程无手敲命令，零失误。  \n- 针对 Excel 乱码，他直接让 Claude 用 DesktopCommanderMCP 读取测试环境的导出文件，实时修改编码设置并生成新 XLSX，3 分钟验证通过。  \n\nDesktopCommanderMCP 把分散在终端、编辑器、浏览器里的操作压缩成一句自然语言对话，让小林在截止前 6 小时就完成上线并睡了个好觉。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwonderwhy-er_DesktopCommanderMCP_fbe6647d.png","wonderwhy-er","Eduard Ruzga","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fwonderwhy-er_88f375fa.jpg",null,"Riga","http:\u002F\u002Fwww.wonderwhy-er.com","https:\u002F\u002Fgithub.com\u002Fwonderwhy-er",[83,87,91,95,99,103,107],{"name":84,"color":85,"percentage":86},"TypeScript","#3178c6",54.6,{"name":88,"color":89,"percentage":90},"JavaScript","#f1e05a",38.6,{"name":92,"color":93,"percentage":94},"PowerShell","#012456",2.7,{"name":96,"color":97,"percentage":98},"CSS","#663399",2.2,{"name":100,"color":101,"percentage":102},"Shell","#89e051",1.8,{"name":104,"color":105,"percentage":106},"HTML","#e34c26",0.1,{"name":108,"color":109,"percentage":110},"Dockerfile","#384d54",0,5854,683,"2026-04-05T22:26:03","MIT",1,"macOS, Windows, Linux","未说明",{"notes":119,"python":117,"dependencies":120},"需要安装 Node.js；提供 Docker 方式可免 Node.js；支持通过 npx、bash 脚本、Smithery、手动配置或 Docker 安装；Docker 安装需 Docker Desktop 运行中；所有安装方式均支持自动更新（除手动 checkout 外）",[121],"Node.js",[15,13,14,26],[124,125,126,127,128,129,130,131],"agent","ai","code-analysis","code-generation","mcp","terminal-ai","terminal-automation","vibe-coding","2026-03-27T02:49:30.150509","2026-04-06T11:31:12.624710",[135,140,145,150],{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},6016,"启动时出现 “Cannot convert undefined or null to object” 错误怎么办？","该问题已在最新版本中修复。请升级到最新版 Desktop-Commander 即可解决。若仍有问题，可尝试重新安装或清除缓存后重试。","https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues\u002F191",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},6017,"Windows 上无法连接 MCP 服务器，Claude Desktop 无法识别 Desktop-Commander？","请确保使用完整路径指向 nvm 的 node 和 npx，而不是依赖系统 PATH。示例配置：\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"C:\\\\Users\\\\\u003C用户名>\\\\.nvm\\\\versions\\\\node\\\\v20.17.0\\\\bin\\\\node.exe\",\n      \"args\": [\n        \"C:\\\\Users\\\\\u003C用户名>\\\\AppData\\\\Roaming\\\\npm\\\\node_modules\\\\@wonderwhy-er\\\\desktop-commander\\\\dist\\\\index.js\"\n      ]\n    }\n  }\n}\n```\n替换 `\u003C用户名>` 为你的实际用户名。","https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues\u002F261",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},6018,"Mac 启动时报 “Unexpected token 'W', \"Watching \u002F\"... is not valid JSON” 怎么办？","Claude Desktop 不会自动使用 nvm 的 node，需手动指定完整路径：\n1. 运行 `which node` 获取 node 完整路径，例如 `\u002FUsers\u002F\u003C用户名>\u002F.nvm\u002Fversions\u002Fnode\u002Fv20.17.0\u002Fbin\u002Fnode`\n2. 修改 `claude_desktop_config.json`：\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"\u002FUsers\u002F\u003C用户名>\u002F.nvm\u002Fversions\u002Fnode\u002Fv20.17.0\u002Fbin\u002Fnode\",\n      \"args\": [\n        \"\u002FUsers\u002F\u003C用户名>\u002F.npm\u002F_npx\u002F\u003Chash>\u002Fnode_modules\u002F@wonderwhy-er\u002Fdesktop-commander\u002Fdist\u002Findex.js\"\n      ]\n    }\n  }\n}\n```\n3. 用 `ls ~\u002F.npm\u002F_npx\u002F*\u002Fnode_modules\u002F@wonderwhy-er\u002Fdesktop-commander\u002Fdist\u002Findex.js` 找到实际路径。","https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues\u002F11",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},6019,"如何限制 Desktop-Commander 只能访问指定目录？","从 v0.1.35 开始支持白名单路径配置。在配置文件中添加 `allowedPaths` 数组即可：\n```json\n{\n  \"mcpServers\": {\n    \"desktop-commander\": {\n      \"command\": \"npx\",\n      \"args\": [\"@wonderwhy-er\u002Fdesktop-commander\"],\n      \"env\": {\n        \"ALLOWED_PATHS\": \"\u002FUsers\u002Fme\u002Fprojects,\u002Ftmp\"\n      }\n    }\n  }\n}\n```\n多个路径用英文逗号分隔。","https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues\u002F7",[156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251],{"id":157,"version":158,"summary_zh":159,"released_at":160},115349,"v0.2.38","🖥️ Settings Panel (New!)\r\nA visual config editor right inside Claude Desktop — no more editing JSON files or remembering tool call syntax.\r\n\u003Cimg width=\"739\" height=\"657\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ffb6aa42b-a2f5-42dc-aac9-3c100c03c109\" \u002F>\r\n\r\nView and edit all Desktop Commander settings through a clean UI\r\nToggle telemetry, adjust file limits, manage blocked commands and allowed directories\r\nDark mode support with host-agnostic theming\r\nWorks across different MCP hosts\r\n\r\n🔒 Security Improvements\r\n\r\nConfig key allowlist — set_config_value now only accepts known configuration keys, preventing prompt injection from tampering with internal state like clientId or A\u002FB test flags (#353)\r\nFail-closed command validation — if blocklist validation errors (corrupt config, read failure), commands are now denied instead of silently allowed (#352)\r\nSandbox hardening — removed allow-same-origin from preview iframe sandbox to prevent embedded content from escaping (#355)\r\n\r\n🔧 Other Changes\r\n\r\nAdded token counter script for measuring tool definition token usage — 41 tools, 13,735 tokens, 6.9% of 200K context (#358)\r\nFixed \"Inialization\" typo in remote-channel.ts (#351)\r\n\r\nContributors\r\n@edgarsskore, @pmcdade","2026-03-03T20:09:04",{"id":162,"version":163,"summary_zh":164,"released_at":165},115350,"v0.2.37","## 📄 DOCX Support (New!)\r\nFull Microsoft Word document support through the existing `read_file`, `write_file`, `edit_block`, and `start_search` tools — no new tools needed.\r\n\r\n* **Read DOCX** — default mode shows a text-bearing outline (paragraphs, tables, images, headers\u002Ffooters) with body indices for navigation. Set `offset=1` to get raw pretty-printed XML for precise editing.\r\n* **Edit DOCX** — surgical find\u002Freplace on the underlying XML via `edit_block`, with automatic header\u002Ffooter search fallback. For bulk operations (e.g. translation), use Python with the zipfile module.\r\n* **Create DOCX** — `write_file` with a `.docx` extension converts markdown headings to proper Word heading styles with Calibri defaults and standard page margins.\r\n* **Search DOCX** — content search extracts text from `document.xml`, headers, and footers, running in parallel alongside ripgrep.\r\n* \r\n## 🔧 Fixes & Improvements\r\n* **Onboarding config override** — local `onboarding_injection` config setting is now respected, so users can disable it with `set_config_value` (#348, fixes #303)\r\n* **Remote error handling** — enhanced error handling and logging across remote channel operations; removed unused subscribe method (#332)\r\n* **Options parsing fix** — resolved false positive in options parsing (#345, fixes #343)\r\n* **Agent discovery** — added `plugin.yaml` for agent registry and plugin discovery (#346)\r\n* **AgentAudit badge** — added verified badge to docs (#340)\r\n\r\n## Contributors\r\n@edgarsskore, @lucamorettibuilds, @mattalxndr, @dasein108, @chorghemaruti64-creator, @ecap0-ai","2026-02-20T18:24:33",{"id":167,"version":168,"summary_zh":169,"released_at":170},115351,"v0.2.36","## 🖼️ File Preview UI (New!)\r\n\r\nWhen Claude reads a file, you now get a **visual preview widget** right in Claude Desktop — no more staring at raw text dumps in the chat.\r\n\r\n- **Rendered markdown** with clean, Medium-inspired typography\r\n- **Image preview** — PNG, JPEG, GIF, WebP files render inline\r\n- **\"Load more lines\"** — expand before\u002Fafter to see more of the file without re-reading\r\n- **Breadcrumb path** with an **\"Open in folder\"** button to jump straight to the file in Finder\u002FExplorer\r\n- Works on **macOS and Windows** (hardened Windows path handling to prevent injection)\r\n\r\n## 🔧 Fixes & Improvements\r\n\r\n- **Build fix**: `blocking-offline-update.js` now correctly copied to dist during build (#329)\r\n- **Tilde expansion**: Restricted `~` expansion to current user only for security\r\n\r\n## Contributors\r\n\r\n@edgarsskore\r\n\r\n## Screenshots\r\n\r\n\u003Cp>\r\n  \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F8f4994e8-f517-4e7c-a495-4117f4351311\" width=\"500\" \u002F>\r\n  \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F980b0c9d-0819-4611-8305-aadbe4cd96af\" width=\"500\" \u002F>\r\n  \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F9976c26a-b87b-4a56-914d-c889efd16bf5\" width=\"500\" \u002F>\r\n\u003C\u002Fp>\r\n","2026-02-16T11:55:40",{"id":172,"version":173,"summary_zh":174,"released_at":175},115352,"v0.2.33","## Security\r\n- Fix command blocklist bypass via absolute paths and command substitution — thanks @dcpagotto \r\n- `validatePath` now blocks symlink traversal to prevent arbitrary read\u002Fwrite — thanks @zjyhhhher \r\n- Added symlink security tests for `validatePath`\r\n\r\n## Protocol\r\n- Use SDK protocol version negotiation instead of a hardcoded version (found and suggested by @abcnow)\r\n\r\n## Features\r\n- Add v2 feature flags with weighted A\u002FB test variants\r\n- Fix welcome page A\u002FB test to include local-agent-mode clients\r\n\r\n## Release Tooling\r\n- Release script now handles existing tags gracefully\r\n","2026-02-01T18:08:13",{"id":177,"version":178,"summary_zh":179,"released_at":180},115353,"v0.2.30","## 🚀 Major New Feature\r\n\r\n### Remote MCP - Use Desktop Commander from ChatGPT & Claude Web! (#311)\r\n\r\nYou can now use Desktop Commander directly from **ChatGPT**, **Claude web**, and other AI services - no Claude Desktop app required!\r\n\r\n**How it works:**\r\n1. Run the Remote Device on your computer: `npx @wonderwhy-er\u002Fdesktop-commander@latest remote`\r\n2. Authenticate in your browser (secure OAuth 2.0 flow with PKCE)\r\n3. Connect your AI at [mcp.desktopcommander.app](https:\u002F\u002Fmcp.desktopcommander.app)\r\n4. Your AI can now execute commands, edit files, and manage your system!\r\n\r\n**Security:**\r\n- You're always in control - stop anytime with `Ctrl+C`\r\n- Secure OAuth 2.0 authentication with PKCE\r\n- Commands run locally under your user permissions\r\n- Device only active when you explicitly start it\r\n- Encrypted communication\r\n\r\n**Features:**\r\n- Works with ChatGPT Connectors, Claude Connectors, and other LLM interfaces\r\n- Session persistence option (`--persist-session`) for automatic reconnection\r\n- macOS sleep prevention to keep connection alive\r\n- Graceful shutdown with proper cleanup\r\n\r\n**Get Started:** https:\u002F\u002Fmcp.desktopcommander.app\r\n\r\n---\r\n\r\n## 🐛 Bug Fixes\r\n\r\n### PDF Generation Fixed (#306)\r\nDesktop Commander now reliably creates PDFs for all users:\r\n- Auto-detects system Chrome\u002FChromium on Windows, macOS, and Linux\r\n- If no browser is found, automatically downloads Chrome on first PDF creation\r\n- Pre-emptively checks\u002Fdownloads Chrome on server start for faster first use\r\n- Fixes ~250 errors\u002Fweek for MCPB users who didn't have puppeteer cache\r\n\r\n### macOS Shell Environment Fix (#312)\r\n- Defaults to zsh on macOS when `SHELL` environment variable is not set\r\n- Fixes tools like `gcloud`, `nvm`, and brew-installed utilities that weren't loading properly when running inside Claude Desktop\r\n- Ensures shell profiles (`.zprofile`) are properly sourced\r\n\r\n### Better Multi-Client Compatibility (#307)\r\n- Fixed `edit_block` for clients that send empty strings for optional parameters\r\n- Improves compatibility with ChatGPT\u002FOpenAI and other clients that treat optional params as required\r\n\r\n### MCPB Bundle ESM Fix (#314)\r\n- Added `type: module` to MCPB bundle package.json\r\n- Fixes Node.js warnings about ESM module recompilation in bundled version\r\n\r\n---\r\n\r\nCompare: [v0.2.24...v0.2.30](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fcompare\u002Fv0.2.24...v0.2.30)","2026-01-21T17:18:51",{"id":182,"version":183,"summary_zh":184,"released_at":185},115354,"v0.2.24","## 🚀 Major New Features\r\n\r\n### Full PDF Support (#283)\r\nDesktop Commander now has comprehensive PDF capabilities - read, create, and modify PDF files directly.\r\n\r\n**Reading PDFs:**\r\n- Extract text content as markdown with page structure\r\n- Extract embedded images from PDFs\r\n- Page-based pagination (offset\u002Flength work as page numbers)\r\n- Performance optimized for partial page reading\r\n\r\n**Creating PDFs:**\r\n- Convert markdown to PDF with `write_pdf` tool\r\n- Supports headers, lists, code blocks, tables\r\n- HTML\u002FCSS styling and inline SVG supported\r\n- Control page breaks with `\u003Cdiv style=\"page-break-before: always;\">\u003C\u002Fdiv>`\r\n\r\n**Modifying PDFs:**\r\n- Delete specific pages by index\r\n- Insert new pages from markdown or other PDFs\r\n- Merge and split documents\r\n- Editing existing page content is possible but results in loss of styling - not recommended at this stage\r\n\r\n**Safety:** When modifying PDFs, Desktop Commander creates a new output file, leaving your original untouched in case you need to revert.\r\n\r\n---\r\n\r\n### Full Excel\u002FSpreadsheet Support (#282)\r\nComplete Excel file handling with a new file handler architecture.\r\n\r\n**Reading Excel Files:**\r\n- Read `.xlsx`, `.xls`, `.xlsm` files - returns JSON 2D arrays\r\n- Sheet selection by name or index\r\n- Range queries (e.g., `A1:D100`)\r\n- Offset\u002Flength pagination for large sheets\r\n- `get_file_info` returns sheet metadata (names, row\u002Fcolumn counts)\r\n\r\n**Creating Excel Files:**\r\n- Write spreadsheets from JSON 2D arrays\r\n- Multi-sheet support with `{SheetName: [[...]]}`\r\n- Automatic column width handling\r\n\r\n**Modifying Excel Files:**\r\n- Edit specific cell ranges with `edit_block`\r\n- Update individual cells or ranges\r\n- Preserve existing sheets while modifying\r\n\r\n**Searching Excel Files:**\r\n- Content search works inside Excel files\r\n- Find data across sheets\r\n\r\n**Examples:**\r\n```javascript\r\n\u002F\u002F Read specific sheet and range\r\nread_file(\"data.xlsx\", { sheet: \"Sales\", range: \"A1:D100\" })\r\n\r\n\u002F\u002F Edit cells\r\nedit_block(\"data.xlsx\", { range: \"Sheet1!C1:C10\", content: [[\"New\"], [\"Values\"]] })\r\n```\r\n\r\n---\r\n\r\n## 🔒 Privacy Policy Update (#287)\r\n\r\nBased on user feedback, we've significantly updated our privacy policy to be more transparent and accurate.\r\n\r\n**Corrections Made:**\r\n- Fixed incorrect statements about UUIDs and personally identifiable information (PII)\r\n- Clarified that client IDs are pseudonymous identifiers (cannot directly identify you, but allow usage pattern analysis)\r\n\r\n**New Transparency:**\r\n- Clear explanation of exactly what we collect and don't collect\r\n- Explicit statement that we don't have access to IP addresses\r\n- Added dedicated contact email: privacy@desktopcommander.app\r\n\r\n**Your Rights Section Added:**\r\n- How to exercise your privacy rights (disable telemetry)\r\n- Why UUID-based data requests cannot be processed (privacy by design - we can't verify identity)\r\n- Automatic 14-month data retention with auto-deletion\r\n- If you uninstall and delete config, stored analytics cannot be linked back to you\r\n\r\nRead the full policy: [PRIVACY.md](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fblob\u002Fmain\u002FPRIVACY.md)\r\n\r\n---\r\n\r\n## 🐛 Critical Bug Fixes\r\n\r\n### Fixed MCP Protocol Violation During Startup (#285)\r\nThe MCP protocol requires the client to send the first message. Desktop Commander was writing to stdout before the client's initialization request, breaking protocol handshake with clients like `langchain-mcp-adapters`.\r\n\r\n**What Was Broken:**\r\n- `BrokenResourceError` in langchain-mcp-adapters\r\n- Server startup logs corrupting the MCP handshake\r\n- Feature flag async operations logging after client started closing\r\n\r\n**What's Fixed:**\r\n- Transport created before config loading to capture all output\r\n- Log messages buffered until client is initialized\r\n- Feature flag operations no longer log during startup\r\n- Clean process exit with `.unref()` on refresh intervals\r\n\r\n---\r\n\r\n### Windows Build Compatibility (#286)\r\n- Fixed ripgrep detection on Windows (uses `where` instead of `which`)\r\n- Cross-platform `postinstall` script (no more `|| true`)\r\n- Setup script works in `NODE_ENV=production` environments\r\n\r\n---\r\n\r\n## ✨ Enhancements\r\n\r\n### Process Output Pagination (#290)\r\nTerminal process outputs now support file-like pagination to prevent context overflow.\r\n\r\n**New Parameters:**\r\n- `offset`: Start line (0 for new output, positive for absolute, negative for tail)\r\n- `length`: Max lines to read (respects `fileReadLineLimit` config)\r\n\r\n**Examples:**\r\n```\r\noffset: 0, length: 100    → First 100 NEW lines since last read\r\noffset: 500, length: 50   → Lines 500-549 (absolute position)\r\noffset: -20               → Last 20 lines (tail)\r\noffset: -50, length: 10   → 10 lines starting 50 from end\r\n```\r\n\r\nAlso fixed bug where completed process output was missed when process finished between snapshot and poll.\r\n\r\n---\r\n\r\n### Better Mount Detection (#289)\r\nImproved detection of mounted filesystems for more reliable allowed directory validation.\r\n\r\n---\r\n\r\n## 📝 Other Changes\r\n\r\n- **Disabled","2025-12-17T09:58:13",{"id":187,"version":188,"summary_zh":189,"released_at":190},115355,"v0.2.22","## 🔥 Critical Windows Hotfix\r\n\r\n### Fixed Windows npx Installation Failures (#279) **[CRITICAL]**\r\n\r\n**This is a critical hotfix for Windows users experiencing installation and connection failures.**\r\n\r\nDesktop Commander now properly handles npx commands on Windows using the officially recommended `cmd \u002Fc` wrapper pattern. This resolves the widespread connection failures and crashes that occurred when Claude Desktop tried to start the server via npx on Windows.\r\n\r\n**What Was Broken:**\r\n- Windows users experienced \"Cannot read properties of undefined (reading 'cmd')\" errors\r\n- Server failed to start when installed via npx on Windows\r\n- Claude Desktop showed \"Connection closed\" or \"Cannot connect to MCP server\" errors\r\n\r\n**What's Fixed:**\r\n- Windows npx installations now use `cmd \u002Fc npx` wrapper instead of `npx.cmd`\r\n- Debug mode inspector flag (`--inspect-brk`) moved to `NODE_OPTIONS` environment variable\r\n- Follows Anthropic's official MCP server configuration guidelines for Windows\r\n\r\n**Impact:** Windows users can now successfully install and run Desktop Commander via npx. If you experienced connection issues on Windows, please reinstall:\r\n```bash\r\nnpx @wonderwhy-er\u002Fdesktop-commander@latest setup\r\n```\r\n\r\n---\r\n\r\n## 🐛 Additional Bug Fixes\r\n\r\n### Enhanced Ripgrep Stability (#275)\r\n\r\nImproved search functionality reliability with better ripgrep binary management and crash prevention.\r\n\r\n**What Changed:**\r\n- Added verification script to validate ripgrep installation\r\n- Implemented robust binary path resolution system\r\n- Enhanced error handling and crash tracking for search operations\r\n- Removed 283 lines of legacy code for better maintainability\r\n\r\n---\r\n\r\n## ✨ Enhancements\r\n\r\n### Streamlined Onboarding v2 (#278)\r\n\r\nSimplified the new user onboarding experience from multiple steps to just 2 steps with 5 focused prompts, helping new users get started faster.\r\n\r\n### Release Process Improvements (#280)\r\n\r\nRelease script now tracks state and can resume from failed steps, making the release workflow more robust and recoverable.\r\n\r\n---","2025-11-15T21:19:06",{"id":192,"version":193,"summary_zh":194,"released_at":195},115356,"v0.2.21","## 🐛 Bug Fixes\r\n\r\n### Improved Shell Compatibility #270\r\nDesktop Commander now uses your system's default shell when possible, including login shells. This provides better compatibility with your existing shell configuration and environment variables.\r\n\r\n### Fixed Cline Notification Clutter #269\r\nCline displays notifications as both chat messages and toasts, which clutters the UI. We've disabled logging that uses notifcations for Cline clients specifically while keeping it enabled for Claude Desktop and other MCP clients.\r\n\r\n### Fixed Ripgrep Permissions for Claude Extensions #267\r\nWhen Desktop Commander is installed as a Claude extension (MCPB\u002FDXT), ripgrep binaries now automatically receive correct executable permissions (0o755) at runtime. This fixes `EACCES` errors on macOS\u002FLinux where zip archives don't preserve Unix file permissions.\r\n\r\n**Technical Details:** The ripgrep-wrapper.js now ensures binaries are executable when loaded as an extension, preventing \"spawn rg EACCES\" errors.\r\n\r\n**Full Changelog:** [v0.2.19...v0.2.21](https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fcompare\u002Fv0.2.19...v0.2.21)","2025-11-05T10:32:46",{"id":197,"version":198,"summary_zh":199,"released_at":200},115365,"v0.2.5","## Cursor fix\r\nFixes https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues\u002F177\r\nWorks in cursor now:\r\n\u003Cimg width=\"600\" height=\"618\" alt=\"Screenshot 2025-07-16 at 12 14 02\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fca01cd6c-e09b-481e-85c2-44c41048470e\" \u002F>\r\n\r\n\r\nFew other changes, fix client detection, add MSeeP badge, update faq\u002Freadme with new tools, docker, privacy information","2025-07-16T12:30:18",{"id":202,"version":203,"summary_zh":204,"released_at":205},115357,"v0.2.19","# Release Notes - v0.2.19\r\n\r\n## 🚀 Performance Improvements\r\n\r\n### 160x Faster Terminal Interactions\r\n\r\nAfter Discord user reports that terminal commands felt slow, we investigated and found a critical bug: `interact_with_process` was always waiting the full 8-second timeout even when output arrived in milliseconds. \r\n\r\n**Fixed!** REPL interactions now complete in 50-100ms(when process finishes as fast, or waits for process) instead of 8 seconds.\r\n\r\n**New: Performance Debugging**\r\nAdded optional `verbose_timing` parameter to help diagnose performance issues:\r\n- Shows exit reasons, timing data, and output event timelines\r\n- Available on `start_process`, `read_process_output`, and `interact_with_process`\r\n\r\n## 🐛 Bug Fixes\r\n\r\n### Fixed Code Search on Windows https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues\u002F260\r\n\r\nWhen installing Desktop Commander as an MCPB extension in Claude, code search wasn't working on Windows. Our bundling process wasn't including ripgrep binaries for all platforms.\r\n\r\n**Fixed!** Now bundles for all platforms: macOS (x64\u002FARM), Windows (x64\u002FARM\u002Fx86), Linux (x64\u002FARM\u002FARM64\u002FPPC64\u002FS390X).\r\n\r\n**Note:** This fix is pending Anthropic's review before it appears in the Claude extensions store.\r\n\r\n### Fixed Installation Error https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fpull\u002F259\r\n\r\nFixed incorrect `mkdir` call that was breaking installation. Thanks @bhowell2 for finding and fixing this!\r\n\r\n### Fixed Terminal Listener Bug\r\n\r\nResolved issue where terminal commands would break after the first use due to improper listener cleanup.\r\n\r\n### Cleaner Console Output\r\n\r\nRemoved diagnostic messages that were cluttering terminal output.\r\n\r\n## ✨ New Features\r\n\r\n### Feature Flags & Survey\r\n\r\nAdded feature flag system and new user survey.\r\n\r\n**Full Changelog:** https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fcompare\u002Fv0.2.17...v0.2.19","2025-10-24T12:35:03",{"id":207,"version":208,"summary_zh":209,"released_at":210},115358,"v0.2.17","**Release Notes - v0.2.14-v0.2.17 - Enhanced Context Management & Directory Navigation**\r\n\r\n---\r\n\r\n## ✨ Major New Features\r\n\r\n### 📜 **Tool Call History System** (`get_recent_tool_calls`)\r\n\r\nA powerful new tool for maintaining context and recovering from lost conversations.\r\n\r\n**How it works:**\r\n- Automatically tracks all tool calls made during your session\r\n- Stores the last 1000 tool calls in memory (resets on restart)\r\n- Retrieve calls with optional filters by tool name and time range\r\n- View complete details including arguments and outputs\r\n\r\n**Why this matters:**\r\n- **Restore Lost Claude Chats:** Sometimes Claude errors out and fails to save a conversation along with the tool calls. This tool lets you recover what was done.\r\n- **Pass Context Between Chats:** Start a new chat and quickly review what was accomplished in previous sessions\r\n- **Best Practice Tip:** Ask Claude to keep a log of work or a task list in markdown files. Combined with tool call history, you can almost completely restore lost context from failed sessions.\r\n\r\n**Example usage:**\r\n```\r\n\"Show me what commands were run in the last hour\"\r\n\"Get my recent file operations\"\r\n\"What did I do with GitHub tools today?\"\r\n```\r\n\u003Cimg width=\"759\" height=\"441\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F2ca0f3e8-a589-4e87-99c5-2db8c6ee8974\" \u002F>\r\n\r\n---\r\n\r\n### 📂 **Recursive Directory Listing with Depth Control**\r\n\r\nThe `list_directory` tool now supports a `depth` parameter for exploring directory hierarchies in a single call.\r\n\r\n**Depth Levels:**\r\n- `depth=1`: Only direct contents (files and folders in the specified directory)\r\n- `depth=2`: Contents plus one level of subdirectories *(default)*\r\n- `depth=3+`: Multiple levels deep for comprehensive exploration\r\n\r\n**Context Protection:**\r\nLarge directories (like `node_modules`) can contain thousands of files. To prevent overwhelming your context window:\r\n- **Top-level directory:** Shows ALL items (no limit)\r\n- **Nested directories (depth > 1):** Limited to 100 items per folder\r\n- When a folder exceeds 100 items, you'll see: `[WARNING] node_modules: 500 items hidden (showing first 100 of 600 total)`\r\n\r\n**Example output structure:**\r\n```\r\n[DIR] src\r\n[FILE] src\u002Findex.ts\r\n[DIR] src\u002Ftools\r\n[FILE] src\u002Ftools\u002Ffilesystem.ts\r\n[FILE] src\u002Ftools\u002Fterminal.ts\r\n[DIR] src\u002Futils\r\n[FILE] src\u002Futils\u002Flogger.ts\r\n```\r\n\u003Cimg width=\"760\" height=\"790\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F76a9262e-bc8d-4448-b3f2-53b577dac0b8\" \u002F>\r\n\r\n---\r\n\r\n### 🚫 **Disable Onboarding Option**\r\n\r\nYou can now disable the automatic onboarding system using the `--disable-onboarding` command-line parameter.\r\n\r\n**Configuration example for Claude Desktop:**\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"desktop-commander\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\r\n        \"@wonderwhy-er\u002Fdesktop-commander@latest\",\r\n        \"--disable-onboarding\"\r\n      ]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nThis is particularly useful for:\r\n- Power users who don't need getting-started guidance\r\n- Custom MCP client integrations\r\n- Automated setups where onboarding prompts aren't needed\r\n\r\n---\r\n\r\n### 🏛️ **Official Claude Desktop Extension Release**\r\n\r\nDesktop Commander is listed in Claude's official Desktop Extensions Directory!\r\n\r\n\u003Cimg width=\"737\" height=\"270\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F0b8d97cf-daf4-4e21-8a50-f1129239c69e\" \u002F>\r\n\r\n**Improvements made for that release:**\r\n- ✅ More human-readable tool call names for better Claude integration\r\n- ✅ Updated to latest MCP SDK (v1.9.0)\r\n- ✅ Protocol compliance improvements for cross-platform compatibility\r\n- ✅ Enhanced tool annotations and metadata\r\n- ✅ Proper manifest formatting for official registry","2025-10-06T11:59:33",{"id":212,"version":213,"summary_zh":214,"released_at":215},115359,"v0.2.14","✨ **New Features & Improvements**\r\n* **Enhanced Search Performance:** Fixed pattern matching in search queries and improved search reliability with better error handling\r\n* **MCP Registry Ready:** Prepared Desktop Commander for official MCP registry publication with proper configuration\r\n* **VS Code Compatibility:** Added compatibility handler for VS Code MCP integration contributed by [andriyshevchenko](https:\u002F\u002Fgithub.com\u002Fandriyshevchenko)\r\n* **Updated Dependencies:** Upgraded to @modelcontextprotocol\u002Fsdk v1.9.0 for latest MCP features contributed by [andriyshevchenko](https:\u002F\u002Fgithub.com\u002Fandriyshevchenko)","2025-09-12T19:15:54",{"id":217,"version":218,"summary_zh":219,"released_at":220},115360,"v0.2.13","✨ New Features & Improvements\r\n\r\n*   **Intelligent Onboarding System:**\r\n    *   **Automated Guidance:** Desktop Commander now includes intelligent onboarding for new users (fewer than 10 successful commands). AI Client will automatically offer helpful getting-started guidance and tutorials after successful tool use.\r\n    *   **On-Demand Help:** Users can now explicitly ask AI Client for onboarding assistance at any time with phrases like \"Help me get started with Desktop Commander,\" \"Show me Desktop Commander examples,\" or \"What can I do with Desktop Commander?\".\r\n    *   **Curated Examples:** AI Client will present beginner-friendly tutorials and examples, including:\r\n        *   Organizing your Downloads folder\r\n        *   Analyzing CSV\u002FExcel files with Python\r\n        *   Setting up GitHub Actions CI\u002FCD\r\n        *   Exploring and understanding codebases\r\n        *   Running interactive development environments\r\n        *   Building a shopping list app and deploying it online\r\n        *   Analyzing data files\r\n        *   Checking system health and resources\r\n        *   Finding patterns and errors in log files\r\n        \r\nIn future we plan to add way more to prompt library, allow to save your own private prompts or publish and share with others.\r\nThis is just first step.\r\n\r\n*   **`get_prompts` Tool:**\r\n    *   A new tool `get_prompts` has been added to browse and retrieve curated Desktop Commander prompts.\r\n    *   **Actions:**\r\n        *   `list_categories`: List all available prompt categories.\r\n        *   `list_prompts`: List prompts, with optional filtering by category.\r\n        *   `get_prompt`: Retrieve and execute a specific prompt by ID.\r\n    *   This tool allows users to discover and leverage pre-built workflows and examples directly in AI Client like Claude\u002FClaude Code\u002FCursor and others.\r\n\r\n\r\n*   **Enhanced Client Compatibility & Type Safety:**\r\n    *   **`set_config_value` Fixes:** Improved handling for `allowedDirectories` and `blockedCommands` when setting values via the `set_config_value` tool. It now robustly parses various string inputs (e.g., comma-separated, JSON array strings, single values) into arrays, ensuring compatibility with strict client environments like Gemini. This avoids previous issues where certain input formats would cause errors.\r\n    *   **Stricter Type Definitions:** The `value` parameter in `SetConfigValueArgsSchema` now uses `z.union` to explicitly define accepted types (string, number, boolean, array of strings, null). This provides clearer type hints for clients and prevents unexpected type-related errors, leading to more reliable tool usage across different LLM clients.\r\n\r\nThat fixes few bugs:\r\nhttps:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues\u002F235\r\nhttps:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP\u002Fissues\u002F209\r\n","2025-09-10T08:30:07",{"id":222,"version":223,"summary_zh":224,"released_at":225},115361,"v0.2.11","# Release Notes - v0.2.11\r\n\r\n## 🔍 **Unified Search System - Major Change**\r\n\r\n### **Search Tools Rewrite**\r\n- **Breaking Change:** Replaced `search_files` and `search_code` with unified search system\r\n- Both file name and content searches now use **ripgrep backend** (previously only content search used ripgrep)\r\n- Simplified codebase by unifying two separate implementations into one consistent system\r\n\r\n### **New Streaming Search Workflow** \r\n- **Parallel Searches:** Start multiple searches simultaneously like processes\r\n- **Progressive Results:** `start_search` runs in background, get immediate first results\r\n- **Session Management:** `get_more_search_results` for pagination, `list_searches` to track active searches, `stop_search` to cancel\r\n- **Non-blocking:** Read first results without waiting for full completion\r\n\r\n### **Enhanced Search Features**\r\n- **Multi-Extension Support:** Search across multiple file types with `*.ts|*.js|*.py|*.java|*.go` patterns  \r\n  *Thanks to [@genkernel](https:\u002F\u002Fgithub.com\u002Fgenkernel) for the contribution!*\r\n- **Better Ripgrep Integration:** Optimized command construction and flag usage\r\n- **Early Termination:** Option to stop searches after first match found\r\n- **Case Sensitivity Control:** New `ignoreCase` parameter for precise control\r\n- **Improved Accuracy:** Fixed result counting to separate matches from context lines\r\n\r\n**New Tools:**\r\n- `start_search` → `get_more_search_results` → `stop_search` → `list_searches`\r\n\r\n---\r\n\r\n## 🛠️ **Other Improvements**\r\n\r\n- **MCP Catalog Badge:** Added official MCP Catalog integration badge\r\n- **Security Documentation:** Added `SECURITY.md` with transparent security approach\r\n- **Website Fixes:** Updated navigation, installation links, and mobile responsiveness\r\n- **Code Quality:** Various cleanups, better error handling, enhanced type safety\r\n- **Bug Fixes:** Server initialization issues, NPX uninstall command, search timeouts\r\n\r\n---\r\n\r\n**Upgrade:** NPX users get automatic updates, manual installations should update to `@latest`","2025-09-01T17:16:56",{"id":227,"version":228,"summary_zh":229,"released_at":230},115362,"v0.2.9","## 🚀 Major Features\r\n\r\n### 🐳 Secure Docker Support with Persistence\r\nWe know people install us from Docker Hub [Docker Hub](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fmcp\u002Fdesktop-commander) \r\nBut way it works there is suboptimal. Does not support mounting host system folders and looses changes on container restarts.\r\n\r\nIn this release we added custom installation scripts that solve the key limitations: **file persistence and folder mounting**.\r\n\r\n**Installation instructions:** [Docker Setup Guide](https:\u002F\u002Fdesktopcommander.app\u002F#docker-install)\r\n\r\n**Why it matters:** Secure, isolated environment for AI work with persistence and access to selected folders with files\r\n\r\n## 🛠️ Additional Enhantments\r\n- **Process Output Fix:** Resolved critical bug where completed process outputs couldn't be read by AI\r\n- **Uninstall Script:** Clean removal with `npx @wonderwhy-er\u002Fdesktop-commander remove`","2025-08-15T07:27:35",{"id":232,"version":233,"summary_zh":234,"released_at":235},115363,"v0.2.7","# Release Notes - v0.2.7\r\n\r\n## Overview\r\nThis release includes important bug fixes, improvements to binary file handling, and new features to enhance the user experience.\r\n\r\n## Changes\r\n\r\n### ✨ Enhancements\r\n- **Improve binary file handling (#187)**\r\n  - Not dumping binary files into context anymore\r\n  - Enhanced binary file detection and processing capabilities\r\n  - Added comprehensive test suite for binary file detection\r\n  - Updated filesystem tools to better handle binary content\r\n\r\n---\r\n*Released on: July 23, 2025*","2025-07-23T09:38:14",{"id":237,"version":238,"summary_zh":239,"released_at":240},115364,"v0.2.6","Bug was reported that when opting out and turning off feedback requests they still show up.\r\nShould not be the case. Disabling the functionality here quickly.","2025-07-16T16:49:07",{"id":242,"version":243,"summary_zh":244,"released_at":245},115366,"v0.2.4","## 🚀 New Features\r\n\r\n### Cross-OS Interactive Terminal Support(SSH, REPL, etc)\r\n- **New**: REPL and interactive terminal functionality for things like SSH, Python and Node REPL and almost anything else\r\n- **New**: Now DC can start, read and interact with processes\r\n- **New**: Now instead of running new terminal with each command it can reuse single terminal session for many things\r\n- **New**: It also allows it to run code in memory to do things like parsing and working with Excel or PDF files among many other things\r\n- **Improved**: OS-specific prompt adjustments for better user experience\r\n\u003Cimg width=\"299\" height=\"95\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F6025738f-3175-47b3-b513-e100faa54a40\" \u002F>\r\n\r\n### Usage Analytics & Feedback System\r\n- **New**: `get_usage_stats` tool for sharing your usage statistics, these are not sent anywhere, its for you\r\n- **New**: `give_feedback_to_desktop_commander` tool for streamlined user feedback collection, give us feedback\r\n- **New**: User will be prompted once to share feedback after moderate amount of usage\r\n\r\n### Docker Environment Compatibility\r\n- **New**: We can be installed from https:\u002F\u002Fhub.docker.com\u002Fr\u002Fmcp\u002Fdesktop-commander\r\n- **Fixed**: Bug fix with shell commands fixed so it fully works now\r\n- **TODO:** - add installation instructions with mounted folders + improve Windows compatibility \r\n\r\n## ⚡ Improvements\r\n\r\n### Advanced File Operations\r\n- **New**: Support for negative file reads (tail-like behavior)\r\n- **New**: Enhanced file reading with offset\u002Flength parameters for large files\r\n- **New**: Improved file operation responses with better formatting\r\n\r\n### Search & Performance Optimizations\r\n- **New**: Smart truncation for large search results\r\n- **New**: Better handling of oversized responses to prevent timeouts\r\n- **New**: Optimized search performance across different file types\r\n\r\n### Cross-Platform Stability\r\n- **Fixed**: Enhanced Windows compatibility issues\r\n- **Fixed**: Improved shell execution across different operating systems\r\n- **Fixed**: Better handling of environment-specific commands and paths","2025-07-15T17:04:02",{"id":247,"version":248,"summary_zh":249,"released_at":250},115367,"v0.2.3","## 🚀 New Features & Enhancements\r\n\r\n### File Read Improvements\r\n- **Negative Offset Support**: Added support for reading files from the end using negative offsets (tail-like behavior)\r\n  - Use `offset: -20` to read the last 20 lines of a file\r\n  - Optimized for large files with efficient reverse reading\r\n- **Enhanced File Reading Performance**: Improved handling of large files with better byte estimation for deep positive offsets\r\n\r\n### Tool Enhancements\r\n- **Analytics Update**: Minor tool calling analytics improvements\r\n- **Improved Chunked Writing**: Better prompts and guidance for writing large files in chunks\r\n- **Enhanced Edit Block**: Improved surgical text replacement functionality\r\n\r\n","2025-06-07T17:45:00",{"id":252,"version":253,"summary_zh":254,"released_at":255},115368,"v0.2.1","Small fixes:\r\n- improved work with lines and asking for lines beyond file end, should work better now\r\n- add ability to ask for current version so users can be calm that they are on latest one\r\n- improvement of telemetry for file operations to track issues and usage ","2025-05-22T12:28:58"]