This guide explains the basic operations of the CommandMate web app. It's a step-by-step guide for first-time users.
For developers: See the UI/UX Guide for UI implementation details.
- Launching and Accessing the App
- Registering Repositories
- Removing Repositories
- Selecting a Worktree
- Sending Messages
- Auto Yes Mode
- Viewing Chat History
- Status Indicators
- Markdown Log Viewer
- Notes Feature
- Agent Settings
- Mobile Access
# Start in background
commandmate start --daemon
# Check status
commandmate status
# Stop
commandmate stopcd CommandMate
# Development server
npm run dev
# Production build
npm run build
npm startNote: If this is your first time, run
commandmate initfor initial setup. See the CLI Setup Guide for details.
Open your browser and navigate to:
http://localhost:3000
Port change: Change the port with
commandmate start --port 3001or setCM_PORT=3001in the.envfile.
To manage worktrees with CommandMate, you first need to register a repository. There are two registration methods.
Scan and register an existing repository on your PC.
- Click the "Add Repository" button at the top right of the homepage
- Select the "Local Path" tab
- Enter the repository path (e.g.,
/Users/yourname/projects/my-repo) - Click "Scan"
- Review the detected worktree list and click "Register"
Clone and register from a remote repository like GitHub.
- Click the "Add Repository" button at the top right of the homepage
- Select the "URL Clone" tab
- Enter the repository URL
- HTTPS:
https://github.com/username/repo.git - SSH:
git@github.com:username/repo.git
- HTTPS:
- Click "Clone"
- After cloning completes, the worktree is automatically registered
Note: When using SSH URLs, SSH keys must be set up.
You can remove repositories that are no longer needed.
- In the repository list on the homepage, click the "..." menu for the repository you want to remove
- Select "Delete"
- Type
deletein the confirmation dialog - Click the "Delete" button
Warning: Removing a repository deletes all related worktree information, notes, and history. The repository's actual files are not deleted.
Select a worktree (branch) from registered repositories to operate on.
- A list of worktrees is displayed in the left sidebar
- Click the worktree you want to operate on
- The detail view appears on the right
- A list of worktrees is displayed on the homepage
- Tap the worktree you want to operate on
- Navigate to the worktree detail view
Send messages to Claude Code to give instructions.
- Select a worktree
- Type your message in the input field at the bottom
- Click the "Send" button (or press Enter)
When Claude asks for yes/no or multiple-choice confirmations:
- A confirmation dialog appears automatically
- Click "Yes" or "No"
- For multiple choices, click the options to respond
Mobile: Sending messages in the Terminal tab
A mode that automatically approves Claude's confirmations. Useful when you want to run continuous processes without interruption.
- Open the worktree detail view
- Turn on the "Auto Yes" toggle at the top of the screen
- A confirmation dialog appears
- Select the active duration (1 hour / 3 hours / 8 hours)
- Default is 1 hour
- Select the minimum time needed for your work
- The description text changes dynamically based on your selection (e.g., "Will automatically turn OFF after 3 hours.")
- Click "Agree and Enable"
| Option | Milliseconds | Intended Use Case |
|---|---|---|
| 1 hour (default) | 3,600,000 | Normal development work, short tasks |
| 3 hours | 10,800,000 | Medium-scale implementation work |
| 8 hours | 28,800,000 | Long batch-processing tasks (regular progress checks recommended) |
A countdown timer always shows the remaining time.
- Under 1 hour:
MM:SSformat (e.g.,45:30) - 1 hour or more:
H:MM:SSformat (e.g.,2:15:30)
The Auto-Yes activation API accepts the following parameters:
POST /api/worktrees/:id/auto-yes
{
"enabled": true,
"duration": 3600000 | 10800000 | 28800000 // Optional (default: 3600000)
}- When duration is omitted: Defaults to 1 hour (3,600,000 ms) for backward compatibility
- Invalid duration value: Returns 400 error
- Security: 5-layer defense with worktreeId format validation -> JSON parse validation -> type validation -> whitelist validation
- While Auto Yes is active, all confirmations are automatically answered with "Yes"
- Important changes (file deletions, etc.) are also auto-approved, so use with caution
- You can disable it by turning off the toggle
- Auto Yes automatically turns OFF after the selected duration
- Security best practices:
- Select the minimum time needed for your work (1 hour recommended when in doubt)
- Limit
CM_ROOT_DIRto the target worktree directory - Manually turn OFF when stepping away for extended periods, regardless of remaining time
- See Trust & Safety for details
View past message history.
History is displayed in the History Pane on the left.
- User messages and Claude's responses are shown chronologically
- Scroll to view past history
Tap the "History" tab in the tab bar at the bottom.
- View a list of past interactions
- Tap for details
Indicators displayed on each worktree in the sidebar show the current state.
| Display | Status | Meaning |
|---|---|---|
| Grey dot | idle | No active session |
| Green dot | ready | Waiting for input (ready to send a new message) |
| Blue spinner | running | Claude is processing |
| Yellow dot | waiting | Waiting for user input (yes/no confirmations, etc.) |
| Blue spinner | generating | Generating response |
Details: See Status Indicator Details for how status detection works.
View Claude's detailed output in Markdown format.
- Tap the "Logs" tab in the tab bar at the bottom
- Tap a log file from the list
- View the content rendered in Markdown format
- Click the "Info" button to open the modal
- Select a log file from the list to view
Save notes for each worktree. Useful for recording work details and TODOs.
- Click the "Info" button at the top right
- Edit in the "Notes" section in the modal
- Content is auto-saved
- Tap the "Info" tab in the tab bar at the bottom
- Edit in the "Notes" section
- Content is auto-saved
Select which CLI agents to use for each worktree.
- Select a worktree
- Click the "CMATE" tab
- Click the "Agent" sub-tab
- Select 2 agents using the checkboxes
- Settings are saved automatically
| Agent | Description |
|---|---|
| Claude | Claude Code CLI |
| Codex | OpenAI Codex CLI |
| Gemini | Google Gemini CLI |
| Vibe-Local | Ollama local LLM |
- You must always select exactly 2 agents
- The selected agents appear as tabs in the terminal header
When Vibe-Local is selected, you can specify which Ollama model to use.
- Choose a model from the "Ollama Model" selector in the Agent settings
- If Ollama is not running, "Ollama is not running" is displayed
Note: The selected model is also used for scheduled executions (CMATE.md).
How to access CommandMate from your smartphone.
- Connect your PC and smartphone to the same Wi-Fi
- Edit the
.envfile:CM_BIND=0.0.0.0 - Restart the server
- Open
http://<your PC's IP address>:3000in your smartphone's browser
Note: We recommend authentication via a reverse proxy for external network access. See the Security Guide for details.
# macOS
ifconfig | grep "inet " | grep -v 127.0.0.1
# Linux
ip addr | grep "inet " | grep -v 127.0.0.1Use tunneling services like Cloudflare Tunnel to access from outside your home. See the Deployment Guide for details.
On mobile, a tab bar is displayed at the bottom:
| Tab | Content |
|---|---|
| Terminal | Real-time output + message input |
| History | Chat history |
| Files | File tree view |
| CMATE | Notes + execution logs |
| Info | Worktree information |
- CLI Setup Guide - Installation and initial setup
- UI/UX Guide - UI implementation technical details
- Status Indicator Details - How status detection works
- Deployment Guide - Production environment setup
- Concept - CommandMate's vision


