A server that lets Claude desktop app execute terminal commands on your computer and edit files through Model Context Protocol, featuring command execution, process management, and advanced file operations.
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% or when edit_block fails)Search/Replace Block Format:
filepath.ext
>>>>>> REPLACE
Example:
src/main.js
>>>>>> 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
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!