Skip to content

Homepage, readme and FAQ updates #138

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 29, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,28 @@ Absolutely. While it excels at coding-related tasks, Claude Desktop Commander ca
- Running and managing any terminal-based tools
- Data processing and analysis

### Can I use Desktop Commander in any MCP client outside of Claude?

Yes, you can install Desktop Commander MCP on other clients that support MCP, including:
- Cursor
- Windsurf
- DeepChat
- Any other client with MCP support

You can use any model available for that client with Desktop Commander.

**However, important caveats:**
- **Unexpected behavior**: Desktop Commander can work unexpectedly on other clients due to differences in system prompts and potential conflicts with their own built-in tools
- **Not optimized for other clients**: Desktop Commander is primarily designed and tested with Claude Desktop
- **Varying results**: The experience may differ significantly from the Claude Desktop experience

**If you try other clients:**
- Test carefully with non-critical projects first
- Be aware that some features may not work as expected
- Consider reporting your experience to help improve compatibility

We welcome feedback from users who try Desktop Commander with other MCP clients to help us understand compatibility and improve the experience across different platforms.

## Security & Permissions

### Is it safe to give Claude access to my file system?
Expand All @@ -275,6 +297,33 @@ Recent updates have removed path limitations, and work is in progress to add con

Claude Desktop Commander doesn't have a pre-defined blocklist, but you can use the `block_command` and `unblock_command` functions to manage which commands Claude can execute. It's recommended to block commands that could potentially be destructive, such as `rm -rf` or `format`.

### Why is the fileWriteLineLimit set to 50 by default? What is the maximum value?

The `fileWriteLineLimit` setting is set to 50 lines by default for these specific reasons:

**Why 50 lines is the default:**
- **AIs are wasteful with tokens**: Instead of doing two small edits in a file, AIs may decide to rewrite the whole thing. We're trying to force AIs to do things in smaller changes as it saves time and tokens
- **Claude UX message limits**: There are limits within one message and hitting "Continue" does not really work. What we're trying here is to make AI work in smaller chunks so when you hit that limit, multiple chunks have succeeded and that work is not lost - it just needs to restart from the last chunk

**What is the maximum value:**
- You can set it to thousands if you want - there's no technical restriction

**Configuration examples:**
```javascript
// You can set it very high if needed
set_config_value({ "key": "fileWriteLineLimit", "value": 2000 })

// Or keep it small to force efficient behavior
set_config_value({ "key": "fileWriteLineLimit", "value": 25 })
```

**Why the chunking approach works:**
When you exceed the limit, the system automatically suggests breaking operations into chunks:
1. First chunk: `write_file(path, firstChunk, {mode: 'rewrite'})`
2. Additional chunks: `write_file(path, nextChunk, {mode: 'append'})`

This way, if Claude hits message limits partway through, the completed chunks are preserved and you only need to restart from where it left off, rather than losing all the work.

## Usage Scenarios

### Is it suitable for large codebases?
Expand Down
75 changes: 67 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ Execute long-running terminal commands on your computer and manage processes thr
## Installation
First, ensure you've downloaded and installed the [Claude Desktop app](https://claude.ai/download) and you have [npm installed](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).

### Option 1: Install through npx
> **📋 Update & Uninstall Information:** Before choosing an installation option, note that **only Options 1 and 3 have automatic updates**. Options 2, 4, and 5 require manual updates. See the sections below for update and uninstall instructions for each option.

### Option 1: Install through npx ⭐ **Auto-Updates**
Just run this in terminal:
```
npx @wonderwhy-er/desktop-commander@latest setup
Expand All @@ -78,22 +80,34 @@ npx @wonderwhy-er/desktop-commander@latest setup --debug
```
Restart Claude if running.

### Option 2: Using bash script installer (macOS)
**✅ Auto-Updates:** Yes - automatically updates when you restart Claude
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really like this listboxes, need to add them to the landing page

**🔄 Manual Update:** Run the setup command again
**🗑️ Uninstall:** Run `npx @wonderwhy-er/desktop-commander@latest setup --uninstall`

### Option 2: Using bash script installer (macOS) ❌ **Manual Updates**
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's not manual update! This is the same as Option 1, but with nodejs check.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we need to create same script for windows

For macOS users, you can use our automated bash installer which will check your Node.js version, install it if needed, and automatically configure Desktop Commander:
```
curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash
```
This script handles all dependencies and configuration automatically for a seamless setup experience.

### Option 3: Installing via Smithery
**❌ Auto-Updates:** No - requires manual updates
**🔄 Manual Update:** Re-run the bash installer command above
**🗑️ Uninstall:** Remove the MCP server entry from your Claude config file and delete the cloned repository if it exists

### Option 3: Installing via Smithery ⭐ **Auto-Updates**

To install Desktop Commander for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@wonderwhy-er/desktop-commander):

```bash
npx -y @smithery/cli install @wonderwhy-er/desktop-commander --client claude
```

### Option 4: Add to claude_desktop_config manually
**✅ Auto-Updates:** Yes - automatically updates when you restart Claude
**🔄 Manual Update:** Re-run the Smithery install command
**🗑️ Uninstall:** `npx -y @smithery/cli uninstall @wonderwhy-er/desktop-commander --client claude`

### Option 4: Add to claude_desktop_config manually ❌ **Manual Updates**
Add this entry to your claude_desktop_config.json:

- On Mac: `~/Library/Application\ Support/Claude/claude_desktop_config.json`
Expand All @@ -115,7 +129,11 @@ Add this entry to your claude_desktop_config.json:
```
Restart Claude if running.

### Option 5: Checkout locally
**❌ Auto-Updates:** No - uses npx but config might not update automatically
**🔄 Manual Update:** Usually automatic via npx, but if issues occur, update your config file or re-add the entry
**🗑️ Uninstall:** Remove the "desktop-commander" entry from your claude_desktop_config.json file

### Option 5: Checkout locally ❌ **Manual Updates**
1. Clone and build:
```bash
git clone https://github.com/wonderwhy-er/DesktopCommanderMCP.git
Expand All @@ -130,11 +148,28 @@ The setup command will:
- Configure Claude's desktop app
- Add MCP servers to Claude's config if needed

### Updating Desktop Commander
**❌ Auto-Updates:** No - requires manual git updates
**🔄 Manual Update:** `cd DesktopCommanderMCP && git pull && npm run setup`
**🗑️ Uninstall:** Remove the cloned directory and remove MCP server entry from Claude config

When installed through npx (Option 1) or Smithery (Option 3), Desktop Commander will automatically update to the latest version whenever you restart Claude. No manual update process is needed.
## Updating & Uninstalling Desktop Commander

For manual installations, you can update by running the setup command again.
### Automatic Updates (Options 1 & 3 only)
**Options 1 (npx) and 3 (Smithery)** automatically update to the latest version whenever you restart Claude. No manual intervention needed.

### Manual Updates (Options 2, 4 & 5)
- **Option 2 (bash installer):** Re-run the curl command
- **Option 4 (manual config):** Usually automatic via npx, but re-add config entry if issues occur
- **Option 5 (local checkout):** `cd DesktopCommanderMCP && git pull && npm run setup`

### Uninstalling Desktop Commander
- **Option 1:** `npx @wonderwhy-er/desktop-commander@latest setup --uninstall`
- **Option 2:** Remove MCP server entry from Claude config and delete any cloned repositories
- **Option 3:** `npx -y @smithery/cli uninstall @wonderwhy-er/desktop-commander --client claude`
- **Option 4:** Remove the "desktop-commander" entry from your claude_desktop_config.json file
- **Option 5:** Delete the cloned directory and remove MCP server entry from Claude config

After uninstalling, restart Claude Desktop to complete the removal.

## Usage

Expand Down Expand Up @@ -298,6 +333,30 @@ set_config_value({ "key": "allowedDirectories", "value": ["/Users/username/proje

The configuration is saved to `config.json` in the server's working directory and persists between server restarts.

#### Understanding fileWriteLineLimit

The `fileWriteLineLimit` setting controls how many lines can be written in a single `write_file` operation (default: 50 lines). This limit exists for several important reasons:

**Why the limit exists:**
- **AIs are wasteful with tokens**: Instead of doing two small edits in a file, AIs may decide to rewrite the whole thing. We're trying to force AIs to do things in smaller changes as it saves time and tokens
- **Claude UX message limits**: There are limits within one message and hitting "Continue" does not really work. What we're trying here is to make AI work in smaller chunks so when you hit that limit, multiple chunks have succeeded and that work is not lost - it just needs to restart from the last chunk

**Setting the limit:**
```javascript
// You can set it to thousands if you want
set_config_value({ "key": "fileWriteLineLimit", "value": 1000 })

// Or keep it smaller to force more efficient behavior
set_config_value({ "key": "fileWriteLineLimit", "value": 25 })
```

**Maximum value**: You can set it to thousands if you want - there's no technical restriction.

**Best practices**:
- Keep the default (50) to encourage efficient AI behavior and avoid token waste
- The system automatically suggests chunking when limits are exceeded
- Smaller chunks mean less work lost when Claude hits message limits

### Best Practices

1. **Create a dedicated chat for configuration changes**: Make all your config changes in one chat, then start a new chat for your actual work.
Expand Down
52 changes: 47 additions & 5 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -920,14 +920,14 @@
<div class="hero-content">
<!-- Desktop title with typing effect -->
<div class="dynamic-title-container desktop-title">
<h1 class="dynamic-title">Your personal<br />AI <span class="typed-text">Full Stack Engineer</span><span class="cursor">&nbsp;</span><br />without token costs</h1>
<h1 class="dynamic-title">Your personal<br />AI <span class="typed-text">Full Stack Engineer</span><span class="cursor">&nbsp;</span><br />with Claude Desktop</h1>
</div>

<!-- Mobile title with static text -->
<div class="dynamic-title-container mobile-title">
<h1 class="dynamic-title">Your personal<br />AI Full Stack Engineer<br />without token costs</h1>
<h1 class="dynamic-title">Your personal<br />AI Full Stack Engineer<br />with Claude Desktop</h1>
</div>
<p style="color: #f0f0f0; font-weight: 300;">Work with code and text, run processes, and automate tasks, going far beyond other AI editors - without API token costs.</p>
<p style="color: #f0f0f0; font-weight: 300;">Work with code and text, run processes, and automate tasks using Claude Desktop's subscription model - no per-token API charges.</p>
<div class="badges">
<div class="badge-row">
<a href="https://www.npmjs.com/package/@wonderwhy-er/desktop-commander" target="_blank">
Expand Down Expand Up @@ -999,8 +999,8 @@ <h3>Local file storage and processing</h3>
<div class="benefit-icon">
<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
</div>
<h3>Unlimited token access</h3>
<p>Work without worrying about API token limits or per-token costs. Use Desktop Claude client to gain access to unlimited tokens. We recommend Claude Max subscription for the best experience.</p>
<h3>Subscription-based usage</h3>
<p>Use your Claude Desktop subscription instead of paying per API token. Daily usage limits depend on your plan tier (Pro: 45 messages/5hrs, Max: higher limits). Much more cost-effective than API pricing for regular development work.</p>
</div>

<div class="benefit-card">
Expand Down Expand Up @@ -1585,6 +1585,32 @@ <h2>Frequently Asked Questions</h2>
</div>
</div>

<div class="accordion-item">
<div class="accordion-header">
<span>Is usage really "unlimited"?</span>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>
</div>
<div class="accordion-body">
<div class="accordion-body-inner">
<p>Desktop Commander uses Claude Desktop's subscription model, which has usage limits that reset 2-3 times per day based on your plan tier. It's "unlimited" in that you don't pay per token like with API access, but you do have message limits. For most development work, Claude Pro's 45 messages per 5-hour window is quite generous - equivalent to 1,800+ messages per month.</p>
</div>
</div>
</div>
Comment on lines +1588 to +1598
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Accessibility and structured data update needed for new FAQ.
The new accordion item is missing the ARIA attributes (role="button", aria-expanded, aria-controls, tabindex, plus unique id on the header and matching id on the body) that other FAQ headers have—this impacts keyboard navigation and screen-reader support. Additionally, the JSON-LD structured data block (lines 1504–1543) wasn’t extended to include this question, so it won’t be indexed by search engines. Please:

  1. Add matching ARIA markup and unique IDs to the new header and its content container.
  2. Update the JSON-LD mainEntity array to include the "Is usage really 'unlimited'?" question and answer.
🤖 Prompt for AI Agents
In docs/index.html around lines 1588 to 1598, the new accordion FAQ item lacks
necessary ARIA attributes and unique IDs for accessibility and keyboard
navigation. Add role="button", aria-expanded, aria-controls, and tabindex
attributes to the accordion header, and assign unique IDs to both the header and
its corresponding accordion body with matching aria-controls and id references.
Additionally, update the JSON-LD structured data block between lines 1504 and
1543 to include this new FAQ question and answer in the mainEntity array for
proper search engine indexing.


<div class="accordion-item">
<div class="accordion-header">
<span>Why is the fileWriteLineLimit set to 50 by default? What is the maximum value?</span>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>
</div>
<div class="accordion-body">
<div class="accordion-body-inner">
<p><strong>AIs are wasteful with tokens:</strong> Instead of doing two small edits in a file, AIs may decide to rewrite the whole thing. We're trying to force AIs to do things in smaller changes as it saves time and tokens.</p>
<p><strong>Claude UX message limits:</strong> There are limits within one message and hitting "Continue" does not really work. We're trying to make AI work in smaller chunks so when you hit that limit, multiple chunks have succeeded and that work is not lost - it just needs to restart from the last chunk.</p>
<p><strong>Maximum value:</strong> You can set it to thousands if you want - there's no technical restriction.</p>
</div>
</div>
</div>

<div class="accordion-item">
<div class="accordion-header">
<span>Which operating systems does it support?</span>
Expand All @@ -1597,6 +1623,20 @@ <h2>Frequently Asked Questions</h2>
</div>
</div>

<div class="accordion-item">
<div class="accordion-header">
<span>Can I use Desktop Commander in any MCP client outside of Claude?</span>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>
</div>
<div class="accordion-body">
<div class="accordion-body-inner">
<p>Yes, you can install Desktop Commander on other MCP clients like Cursor, Windsurf, DeepChat, or any client with MCP support. You can use any model available for that client.</p>
<p><strong>Important caveats:</strong> Desktop Commander may work unexpectedly on other clients due to differences in system prompts and conflicts with their built-in tools. It's primarily designed and tested with Claude Desktop.</p>
<p>If you try other clients, test carefully with non-critical projects first and consider sharing your experience to help improve compatibility.</p>
</div>
</div>
</div>

<div class="accordion-item">
<div class="accordion-header">
<span>Is it safe to give Claude access to my file system?</span>
Expand Down Expand Up @@ -2029,6 +2069,8 @@ <h3>Resources</h3>
<script src="js/websocket-handler.js" async></script>
<!-- Accessibility improvements -->
<script src="js/accessibility.js" defer></script>
<!-- Main JavaScript functionality -->
<script src="js/main.js" defer></script>

<!-- JavaScript for command counter and typing effect -->
<script>
Expand Down