CLI Reference¶
surfmon¶
Monitor Windsurf IDE performance and resource usage
Usage¶
surfmon [OPTIONS] COMMAND [ARGS]...
Arguments¶
No arguments available
Options¶
| Name | Description | Required | Default |
|---|---|---|---|
-V, --version | Show version and exit. | No | - |
--help | Show this message and exit. | No | - |
Commands¶
| Name | Description |
|---|---|
check | Run a quick performance check and display... |
watch | Continuously monitor Windsurf with live... |
compare | Compare two monitoring reports to show... |
cleanup | Clean up orphaned Windsurf crash handlers. |
prune | Remove duplicate/identical monitoring... |
analyze | Analyze historical reports to identify... |
Subcommands¶
surfmon check¶
Run a quick performance check and display results.
This is the main monitoring command that shows current Windsurf resource usage. When using --save, verbose output is automatically enabled for more complete information.
Usage¶
surfmon check [OPTIONS]
Arguments¶
No arguments available
Options¶
| Name | Description | Required | Default |
|---|---|---|---|
-t, --target TEXT | Required. Windsurf target: 'stable', 'next', or 'insiders'. Can also be set via SURFMON_TARGET env var. | No | - |
-v, --verbose | Show detailed process information | No | - |
-s, --save | Save both JSON and Markdown reports (auto-named, displays verbose output) | No | - |
--json PATH | Save report as JSON | No | - |
--md PATH | Save report as Markdown | No | - |
--help | Show this message and exit. | No | - |
surfmon watch¶
Continuously monitor Windsurf with live updates.
Shows a live-updating dashboard with resource usage changes over time. Saves periodic JSON reports for historical analysis. Each watch session creates a new timestamped folder.
Usage¶
surfmon watch [OPTIONS]
Arguments¶
No arguments available
Options¶
| Name | Description | Required | Default |
|---|---|---|---|
-t, --target TEXT | Required. Windsurf target: 'stable', 'next', or 'insiders'. Can also be set via SURFMON_TARGET env var. | No | - |
-i, --interval INTEGER | Check interval in seconds [default: 5] | No | - |
-o, --output PATH | Output directory for periodic reports [default: /home/runner/.surfmon/reports/watch] | No | - |
-s, --save-interval INTEGER | Save full report every N seconds [default: 300] | No | - |
-n, --max INTEGER | Stop after N checks (0 = infinite) [default: 0] | No | - |
--help | Show this message and exit. | No | - |
surfmon compare¶
Compare two monitoring reports to show changes.
Useful for analyzing the impact of configuration changes or identifying performance regressions over time.
Usage¶
surfmon compare [OPTIONS] BEFORE AFTER
Arguments¶
| Name | Description | Required |
|---|---|---|
BEFORE | Path to 'before' report JSON | Yes |
AFTER | Path to 'after' report JSON | Yes |
Options¶
| Name | Description | Required | Default |
|---|---|---|---|
--help | Show this message and exit. | No | - |
surfmon cleanup¶
Clean up orphaned Windsurf crash handlers.
Finds and kills orphaned chrome_crashpad_handler processes that remain running after Windsurf has been closed. These processes can accumulate over time and waste system resources.
Usage¶
surfmon cleanup [OPTIONS]
Arguments¶
No arguments available
Options¶
| Name | Description | Required | Default |
|---|---|---|---|
-t, --target TEXT | Required. Windsurf target: 'stable', 'next', or 'insiders'. Can also be set via SURFMON_TARGET env var. | No | - |
-f, --force | Skip confirmation and kill processes immediately | No | - |
--help | Show this message and exit. | No | - |
surfmon prune¶
Remove duplicate/identical monitoring reports.
Compares JSON reports in a directory and removes duplicates, keeping only unique reports. This is useful after running watch mode for extended periods, as identical reports accumulate when nothing changes.
By default, always keeps the latest report even if it's a duplicate.
Usage¶
surfmon prune [OPTIONS] DIRECTORY
Arguments¶
| Name | Description | Required |
|---|---|---|
DIRECTORY | Directory containing JSON reports to prune | Yes |
Options¶
| Name | Description | Required | Default |
|---|---|---|---|
--dry-run | Show what would be deleted without actually deleting | No | - |
--keep-latest / --no-keep-latest | Always keep the most recent report [default: keep-latest] | No | - |
--help | Show this message and exit. | No | - |
surfmon analyze¶
Analyze historical reports to identify trends and issues.
Examines multiple JSON reports from watch mode to detect: - Memory leaks and growth patterns - Process count changes - Performance degradation - Recurring issues
Usage¶
surfmon analyze [OPTIONS] DIRECTORY
Arguments¶
| Name | Description | Required |
|---|---|---|
DIRECTORY | Directory containing JSON reports to analyze | Yes |
Options¶
| Name | Description | Required | Default |
|---|---|---|---|
-p, --plot | Generate visualizations | No | - |
-o, --output PATH | Save plots to file | No | - |
--help | Show this message and exit. | No | - |