Skip to content
MCP Shelf

Desktop Commander

View on GitHub

A terminal, file search and surgical file edits for your assistant.

  • Started in our test
  • ★ 10.1K GitHub stars
  • 394.7K downloads a week
  • Last commit 26 Oct 2026

At a glance

Desktop Commander turns a chat assistant into something closer to a coding agent: it can run shell commands, keep long-running processes going, search across folders and edit files by replacing exact blocks of text instead of rewriting whole files.

It runs with your user account, so it can do anything you can do in a terminal. That is the point, and also the reason to add it to a client you watch rather than one that runs unattended.

Made by
Eduard Ruzga (wonderwhy-er) and contributors
Licence
MIT
Latest version
0.3.1 (22 Oct 2026)
GitHub stars
10.1K
Downloads
394.7K a week
Last commit
26 Oct 2026
Tools
25
Runs on
Your computer

Our check: We ran this exact config on 26 Oct 2026: it started and answered with 25 tools.

What's in the pod: its tools

We found 25 tools when we started it on 26 Oct 2026. 13 only read. The rest can change things, so keep your app's "ask before each tool call" setting on for them.

Runs commands3 tools · Can start programs or run code.

ToolWhat it is for
interact_with_processTypes input into a running program, such as a Python or database prompt, and returns its reply.
kill_processEnds a process on your computer by its process id.
start_processStarts a terminal command and notices when it is waiting for input.

Changes things9 tools · Can create, edit, send or delete.

ToolWhat it is for
create_directoryMakes a folder, including any missing parent folders.
edit_blockSwaps an exact piece of text in a file for new text, or updates a range of cells in an Excel sheet.
force_terminateStops a terminal session that has hung or is no longer needed.
give_feedback_to_desktop_commanderOpens the project's feedback form in your browser.
move_fileMoves or renames a file or folder.
set_config_valueChanges one setting, such as the allowed folders or the default shell.
stop_searchCancels a running search.
write_fileWrites or appends to a file, in chunks of 50 lines by default, including Excel data.
write_pdfBuilds a PDF from Markdown, or adds and removes pages in an existing one.

Only reads13 tools · Looks things up and changes nothing.

ToolWhat it is for
get_configShows the current settings: allowed folders, blocked commands, shell and line limits.
get_file_infoReports a file's size, dates and permissions, plus sheet names for Excel files.
get_more_search_resultsPages through the results of a search that is still running.
get_recent_tool_callsLists the last tool calls with their inputs and outputs, useful after a chat is cut off.
get_usage_statsShows how often you have used each tool.
list_directoryLists the files and folders under a path, two levels deep by default.
list_processesLists what is running on the computer, with memory and CPU use.
list_searchesShows which searches are still running.
list_sessionsLists the terminal sessions it has open.
read_fileReads a text file, Excel workbook, PDF or web address, a chunk of lines or pages at a time.
read_multiple_filesReads several files in one go.
read_process_outputCollects the latest output from a command that is still running.
start_searchSearches file names or file contents across a folder and streams back matches.

Grouped and described by us. The README on GitHub lists the inputs each tool takes.

Set it up

Pick your app for the exact snippet and where it goes.

Where it goes: claude_desktop_config.json (Settings → Developer → Edit Config)

Claude Desktop
{
  "mcpServers": {
    "desktop-commander": {
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander@latest"
      ]
    }
  }
}

New to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.

Settings

Names are exactly as the project spells them. Required ones are marked.

SettingWhat it does
allowedDirectoriesConfigFolders the file tools may use. An empty list means the whole disk. Terminal commands are not limited by it.["/Users/you/projects"]
blockedCommandsConfigShell commands it refuses to run.["rm", "sudo"]
defaultShellConfigThe shell used for commands./bin/zsh
fileReadLineLimitConfigMost lines returned by one read. Defaults to 1000.
fileWriteLineLimitConfigMost lines written in one call. Defaults to 50, which nudges the model into small, recoverable edits.1000
telemetryEnabledConfigSet to false to stop the pseudonymous usage data it sends. No file contents or paths are included either way.false

What it can touch

It can read

  • Files and folders on your computer, inside allowedDirectories for file tools
  • Running processes and their output
  • Web pages, Excel files and PDFs you point it at

It can change

  • Writes, edits, moves and creates files and folders
  • Runs any terminal command your user account can run
  • Can kill processes

Safer setup: Run the Docker version for real isolation. The project says folder limits and blocked commands can be bypassed, for example through symlinks or command substitution.

Before you start

  • Node.js 18 or newer
  • Nothing else: no account or key

If it does not work

The agent changes its own settings to get around a limit
Change settings in a separate chat from the one where you work, then check them with get_config.
Writes stop part way through a file
That is fileWriteLineLimit at work. Let it continue in chunks, or raise the limit with set_config_value.
Claude Desktop will not start after removing it
Restore the config backup the uninstaller made, or fix the JSON in claude_desktop_config.json by hand.

Peas in a pod: similar servers

How Desktop Commander lines up against other developer tools servers on the shelf.

ServerToolsRuns onLicenceStars
Desktop Commander25Your computerMIT10.1K
Serena3Your computer–30.7K
Context72Your computer or hostedMIT63.7K
GitHub46Hosted–34K
MCP Inspector–Your computer–11.2K

Questions

Is it safe to give an AI my terminal?

It runs with your full user rights, so only use it where you would trust the model to type commands. Docker mode keeps it away from your real system.

How does it update?

The npx and Docker installs pull the latest version each time Claude restarts. A cloned copy needs a manual git pull.

Does it cost anything?

No. It is MIT licensed and free.

Can it work on a remote machine?

Yes. Its remote device mode lets a hosted client send commands to a computer running Desktop Commander, signed in with OAuth.

Full docs on GitHubwonderwhy-er/DesktopCommanderMCP

Something wrong on this page? Tell us.

More in Developer tools