Claude Desktop Commander
STDIOExecute terminal commands and perform diff-based file editing on your computer.
Execute terminal commands and perform diff-based file editing on your computer.
Short version. Two key things. Terminal commands and diff based file editing.
This is server that allows Claude desktop app to execute long-running terminal commands on your computer and manage processes through Model Context Protocol (MCP) + Built on top of MCP Filesystem Server to provide additional search and replace file editing capabilities .
First, ensure you've downloaded and installed the Claude Desktop app and you have npm installed.
To install Desktop Commander for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @wonderwhy-er/desktop-commander --client claude
Just run this in terminal
npx @wonderwhy-er/desktop-commander setup
Restart Claude if running
Add this entry to your claude_desktop_config.json (on Mac, found at ~/Library/Application\ Support/Claude/claude_desktop_config.json):
{ "mcpServers": { "desktop-commander": { "command": "npx", "args": [ "-y", "@wonderwhy-er/desktop-commander" ] } } }
Restart Claude if running
git clone https://github.com/wonderwhy-er/ClaudeComputerCommander.git cd ClaudeComputerCommander npm run setup
Restart Claude if running
The setup command will:
The server provides these tool categories:
execute_command
: Run commands with configurable timeoutread_output
: Get output from long-running commandsforce_terminate
: Stop running command sessionslist_sessions
: View active command sessionslist_processes
: View system processeskill_process
: Terminate processes by PIDblock_command
/unblock_command
: Manage command blacklistread_file
/write_file
: File operationscreate_directory
/list_directory
: Directory managementmove_file
: Move/rename filessearch_files
: Pattern-based file searchget_file_info
: File metadataedit_block
: Apply surgical text replacements (best for changes <20% of file size)write_file
: Complete file rewrites (best for large changes >20% or when edit_block fails)Search/Replace Block Format:
filepath.ext
<<<<<<< SEARCH
existing code to replace
=======
new code to insert
>>>>>>> REPLACE
Example:
src/main.js
<<<<<<< SEARCH
console.log("old message");
=======
console.log("new message");
>>>>>>> REPLACE
For commands that may take a while:
execute_command
returns after timeout with initial outputread_output
with PID to get new outputforce_terminate
to stop if neededThis project extends the MCP Filesystem Server to enable:
Created as part of exploring Claude MCPs: https://youtube.com/live/TlbjFDbl5Us
The following features are currently being developed or planned:
Learn more about this project through these resources:
Claude with MCPs replaced Cursor & Windsurf. How did that happen? - A detailed exploration of how Claude with Model Context Protocol capabilities is changing developer workflows.
Claude Desktop Commander Video Tutorial - Watch how to set up and use the Commander effectively.
Join our Discord server to get help, share feedback, and connect with other users.
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyyBt6_ShdDX_rIOad4AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgztdHvDMqTb9jiqnf54AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyQFTmYLJ4VBwIlmql4AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=Ugy4-exy166_Ma7TH-h4AaABAg
https://medium.com/@pharmx/you-sir-are-my-hero-62cff5836a3e
If you find this project useful, please consider giving it a ⭐ star on GitHub! This helps others discover the project and encourages further development.
We 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:
All contributions, big or small, are greatly appreciated!
If you find this tool valuable for your workflow, please consider supporting the project.
MIT