Skip to content

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 -