Automation helper for the Windsurf desktop UI. It watches for key actions and clicks them for you—no synthetic key events required.
Based on code from https://gist.github.com/steipete/799f4f7a6ed6e96a02a5539d4a03b5b7 (v13.2).
- Auto-presses the main Continue button (text begins with "continue").
- Auto-presses the RunAlt+⏎ run button.
- Optional unlocks for disabled dropdown options in Auto Web Requests and Auto Execution settings.
- Optional model filtering for the selector (show/hide models via
MODEL_VISIBILITY_CONFIG).
- Open the Windsurf desktop app, launch DevTools, and paste the contents of
windsurf-auto-continue.jsinto the console. - The script starts immediately and runs every second by default.
- To stop it, run:
window.stopWindsurfAutoPressContinue_v13_2().
Feature: enum of feature names (ModelVisibility, Clicker, Settings, Lifecycle, AutoWebRequestsUnlock, AutoExecutionUnlock).LogLevel: enum of log levels (Error, Warn, Info, Debug, Trace).BUTTON_TARGETS/BTN_SELECTORS: buttons to consider for auto-click.COOLDOWN_MS/CHECK_MS: click cooldown and poll interval.MODEL_VISIBILITY_CONFIG: which models to show/hide in the selector.
Use per-feature { enabled, level } entries to control behavior and log noise:
const FEATURE_CONFIG = {
[Feature.ModelVisibility]: { enabled: true, level: LogLevel.Info },
[Feature.AutoWebRequestsUnlock]:{ enabled: false, level: LogLevel.Info },
[Feature.AutoExecutionUnlock]: { enabled: false, level: LogLevel.Info },
};- Toggle a feature: set
enabledtotrue(on) orfalse(off). - Adjust logs per feature: set
leveltoError | Warn | Info | Debug | Trace.
- Disable model filtering entirely:
{ enabled: false, level: LogLevel.Info }forFeature.ModelVisibility. - Enable Auto Web Requests unlock with verbose logs:
{ enabled: true, level: LogLevel.Debug }forFeature.AutoWebRequestsUnlock. - Keep Auto Execution unlock off but quiet:
{ enabled: false, level: LogLevel.Error }forFeature.AutoExecutionUnlock.
LOG_LEVELis the fallback when a feature is missing fromFEATURE_CONFIG.- Raise a specific feature to
DebugorTracewhen diagnosing it; keep others atInfoto avoid noise.
- If Windsurf UI/CSS changes, revisit
BTN_SELECTORSand settings row selectors. - Add new button behaviors by extending
BUTTON_TARGETSand reusingevaluateButtonvisibility checks. - Project conventions live in
openspec/project.md.