Allows Claude to execute terminal commands on your computer and perform file system operations including surgical code editing with diff-based replacements.
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
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!
MIT
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!