Desktop Commander

by wonderwhy-er

Community Developer Tools 9k likes

Gives Claude terminal control, filesystem access, and surgical file editing on your actual machine: running processes, searching files by content, and applying targeted diffs, not just chatting.

One-line setup (auto-configures Claude Desktop)

npx @wonderwhy-er/desktop-commander@latest setup

Source: https://github.com/wonderwhy-er/DesktopCommanderMCP

About

Desktop Commander turns Claude Desktop into something that operates directly on your OS rather than staying sandboxed inside a chat window. It can launch and interact with long-running terminal processes (with input-readiness detection so it knows when a program is actually ready for the next command), read and write files including Excel and PDF, search across a directory tree by filename or content, and apply targeted text replacements via a fuzzy-matching edit tool instead of rewriting whole files.

Because it drives your terminal directly, it isn't limited to one IDE or project. The same session can SSH into a remote box, query a local database, work across several unrelated project folders, and analyze a CSV or spreadsheet, all through the same tool surface. Usage-stats and recent-tool-call tools also let you (or the agent) see what it's actually been doing across a session.

Key features

  • Full terminal control: start, interact with, and force-terminate processes, with readiness detection
  • Filesystem access beyond plain text, reads Excel and PDF, writes PDFs directly
  • Content and filename search across a directory tree, not just single-file lookups
  • Fuzzy-matching targeted edits (edit_block) instead of full-file rewrites for precise changes
  • Works across multiple projects and remote systems in the same session (SSH, databases, dev servers)
  • Built-in usage stats and recent-tool-call history for auditing what the agent did

Use cases

  • Exploring and understanding an unfamiliar codebase by having Claude grep, read, and summarize files directly
  • Running and monitoring a long build or test process from inside the chat
  • Making a precise, surgical fix to one function without regenerating the whole file
  • Analyzing a CSV or Excel export and writing results back out as a new file

Available tools

start_process

Launches a program or command with input-readiness detection.

interact_with_process

Sends further input to an already-running process.

edit_block

Applies a targeted text replacement with fuzzy-matching fallback if the exact text moved.

start_search

Searches a directory tree by filename or file content.

read_file

Reads local files, URLs, Excel sheets, and PDFs.

list_processes

Lists currently active processes and sessions started by the agent.

Frequently asked questions

Is this limited to one project folder like a typical filesystem MCP server?

No. It operates at the OS level, so the same session can reach across multiple project folders, remote SSH targets, and databases rather than being scoped to one allow-listed directory.

Can it edit a file without rewriting the whole thing?

Yes. edit_block applies a targeted replacement and falls back to fuzzy matching if the surrounding text has shifted slightly since you last read the file.