Desktop Commander MCP is the 7.8k-star open-source server that turns Claude into something closer to a human developer on your machine — terminal sessions, ripgrep search, surgical edit_block patches, Excel/PDF/DOCX, and a file preview UI in Claude Desktop. Latest release: v0.2.45 (July 11, 2026).
Creator @wonderwhy-er (Eduard Ruzga) built it on top of Anthropic's MCP Filesystem Server and extended it far beyond read/write — the README's pitch: "Work with code and text, run processes, and automate tasks… using host client subscriptions instead of API token costs."
TL;DR — Desktop Commander (July 2026)
| Field | Detail |
|---|---|
| Repo | github.com/wonderwhy-er/DesktopCommanderMCP |
| npm | @wonderwhy-er/desktop-commander@latest |
| Version | v0.2.45 |
| Stars | ~7.8k · 966 forks · 38 contributors |
| License | MIT |
| Site | desktopcommander.app |
| Install | npx -y @wonderwhy-er/desktop-commander@latest |
| Hosts | Claude Desktop · Cursor · Claude Code · Codex · Gemini CLI · Remote MCP |
Why Desktop Commander exists
Before MCP, Claude could only see what you pasted. IDE agents like Cursor and Windsurf added filesystem + terminal — but burn fast-request quotas and chunk large files.
Desktop Commander's differentiation (from the README and community testimonials):
| Pain | Desktop Commander answer |
|---|---|
| API/token burn | Runs on Claude Pro subscription — not per-call API |
| IDE lock-in | Works across OS-wide projects, not one repo |
| Chunked file reads | Full-file reads with pagination + negative offset (tail) |
| Cascade rewrites | edit_block surgical patches + 50-line write cap by default |
| No terminal REPL | start_process + interact_with_process for SSH, Node, Python |
YouTube commenters in the repo describe ditching Cursor + Claude duplicate subscriptions and fixing a Flutter null-safety migration in hours after days stuck in IDE cascades.
Install — all MCP clients
Standard JSON config (from README):
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
}
}
}
Where to put it
| Client | Config location |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) |
| Claude Code | .claude/settings.json or --mcp-config — full guide |
| Cursor | Cursor MCP settings (same JSON block) |
| Codex / Gemini CLI | Host-specific MCP config per top directories list |
Install options
| Method | Auto-update |
|---|---|
| npx (recommended) | ✅ on restart |
| bash installer (macOS) | ✅ |
| Smithery | ✅ |
| Docker | ✅ — full host isolation |
| Local git checkout | ❌ manual git pull |
Uninstall:
npx @wonderwhy-er/desktop-commander@latest remove
Creates a config backup before removing the desktop-commander entry from Claude's config.
Tool categories (v0.2.45)
Desktop Commander exposes 30+ tools grouped in the README:
Terminal
| Tool | Purpose |
|---|---|
start_process | Launch programs; detects readiness for input |
interact_with_process | Send commands to running REPL/SSH |
read_process_output | Paginated output (offset/length — prevents context overflow) |
list_sessions / force_terminate | Session management |
list_processes / kill_process | OS process control |
Long-running commands: execute with timeout → continues in background → read output by PID.
Filesystem
| Tool | Purpose |
|---|---|
read_file | Text, URLs, Excel, PDF — line/page pagination |
write_file / write_pdf | Text append/rewrite; PDF from markdown |
list_directory | Recursive tree with depth + overflow protection |
start_search | Ripgrep file/content search (streaming + pagination) |
move_file / create_directory / get_file_info | Standard FS ops |
Negative offset: read_file supports tail-style reads from file end (Unix tail semantics).
Code editing
edit_block — SEARCH/REPLACE format:
src/main.js
<<<<<<< SEARCH
console.log("old message");
=======
console.log("new message");
>>>>>>> REPLACE
Enhancements (v0.2.x):
- Fuzzy fallback when exact match fails — similarity %, character diffs
{-removed-}{+added+} expected_replacementsfor multi-occurrence edits- Logs to
~/.claude-server-commander-logs/fuzzy-search.log
Configuration
| Tool | Keys |
|---|---|
get_config / set_config_value | blockedCommands, defaultShell, allowedDirectories, fileReadLineLimit, fileWriteLineLimit, telemetryEnabled |
Default fileWriteLineLimit: 50 lines — intentionally low to force small edits and survive Claude message limits without losing entire rewrites.
Analytics
get_usage_stats— your own usage insightget_recent_tool_calls— debug / context recovery- Audit log:
~/.claude-server-commander/claude_tool_call.log(10MB rotation)
File Preview UI (Claude Desktop)
Desktop Commander ships a rich preview widget — not just raw tool JSON:
| Type | UI |
|---|---|
| Markdown | Rendered preview + built-in editor (fullscreen ⤢, live preview toggle, autosave) |
| Images | Inline display in Claude |
| Code | Syntax-highlighted |
| HTML | Rendered + source toggle |
| Directories | Interactive tree — lazy load, click-to-preview, Open in Finder |
| PDF / Excel / DOCX | Native extraction display |
Directory browser: list_directory opens as expandable tree inside the panel — not a wall of paths in chat.
Pair with Claude Code desktop browser when you need web verification; Desktop Commander handles local disk + terminal.
Quick workflows
Data analysis (in-memory)
"Analyze sales.csv and show top customers"
Desktop Commander runs Python in memory — no temp script file on disk.
SSH + ops
"SSH to my server and check disk space"
start_process maintains the SSH session; interact_with_process sends follow-up commands.
Surgical refactor
"Replace deprecated API calls in src/api/.ts"*
start_search → ripgrep hits → multiple small edit_block patches (not one 2,000-line rewrite).
Onboarding
New users (<10 successful commands) get automatic tutorials. Anytime:
- "Help me get started with Desktop Commander"
- "Show me Desktop Commander examples"
Disable: --no-onboarding flag in npx args.
Desktop Commander vs Cursor / Windsurf / Claude Code
| Dimension | Desktop Commander | Cursor / Windsurf | Claude Code (native) |
|---|---|---|---|
| Billing | Host subscription | Fast requests / credits | Anthropic plan quota |
| Scope | Entire OS | Single workspace | Project directory |
| Terminal | Interactive sessions + pagination | Integrated terminal | Bash tool |
| Edits | edit_block + fuzzy logs | Multi-file agent | Write + native Edit |
| Preview UI | Claude Desktop widget | IDE diff view | Terminal output |
| Excel/PDF/DOCX | Native tools | Limited / extensions | Not built-in |
explainx.ai read: Desktop Commander is not a Cursor replacement — it's the MCP layer that makes Claude Desktop (or any MCP host) competitive with IDE agents for subscription-priced automation. Many teams run Codex vs Claude Code for repo work and Desktop Commander for OS-wide scripts.
Security — read before allowedDirectories: []
From SECURITY.md and the README warnings:
| Control | Coverage |
|---|---|
| Symlink blocking | Filesystem tools |
| Command blocklist | blockedCommands — bypass attempts logged |
allowedDirectories | Filesystem only — terminal can still reach other paths |
| Docker install | Full host isolation — recommended for untrusted prompts |
⚠️ Never change config in the same chat where you're doing real work — Claude may try to widen allowedDirectories when blocked.
For enterprise threat models: MCP security guide · context-mode sandboxing.
Telemetry: Limited pseudonymous data; no file contents or paths. Opt out: telemetryEnabled: false or ask Claude to disable telemetry.
Desktop Commander App (Beta)
Beyond the MCP server, wonderwhy-er ships a Desktop Commander App (macOS & Windows):
- Any model — Claude, GPT-4.5, Gemini 2.5
- Live file change previews as AI edits
- Custom MCPs without config files
- Roadmap: skills, dictation, scheduled background tasks
The MCP server remains the path for Claude Desktop / Cursor / Codex users who want the open-source integration.
Remote MCP
Desktop Commander supports Remote MCP — use from ChatGPT web and Claude web without local Claude Desktop. Same tool surface; latency and sandbox policy depend on the remote host.
v0.2.45 and recent releases
| Release | Highlights |
|---|---|
| v0.2.45 | Jul 11, 2026 — latest tagged release |
| v0.2.44 | Tiptap round-trip safety, autosave scoping |
| Prior | File preview core, Gemini extension skills, Windows PATHEXT fix, telemetry proxy |
Track: GitHub Releases · MCP directory entry
Setup checklist
- Add npx config to your MCP host
- Restart client (auto-pulls latest on npx)
- Run
get_config({})— verifyallowedDirectories - Set
fileWriteLineLimitif 50 lines is too aggressive for your workflow - Ask Claude: "Help me get started with Desktop Commander"
- Stage git commits before large edit sessions — community best practice from testimonials
Related on explainx.ai
- What is MCP? — Model Context Protocol guide
- Claude Code MCP servers — connect any tool
- MCP security guide 2026
- Top 10 MCP server directories
- context-mode MCP sandboxing
- Codex vs Claude Code comparison
- Claude Code desktop in-app browser
- MCP tool descriptions & selection reliability
Official: GitHub — wonderwhy-er/DesktopCommanderMCP · desktopcommander.app · Discord
Desktop Commander runs with your user permissions. Treat it like installing a global npm CLI with full disk and shell access — use Docker or tight allowedDirectories on shared machines.
