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.
- Auto-presses the Allow button on command execution approval cards.
- Optional model filtering for the selector (show/hide models via
MODEL_VISIBILITY_CONFIG).
- Press
Ctrl+Shift+P(orCmd+Shift+Pon Mac). - Search for and select
Developer: Toggle Developer Tools. - Go to the Sources tab, then the Snippets panel.
- Create a new snippet and paste the contents of
windsurf-auto-continue.js. - Right-click on the snippet and select Run.
Note: You need to run the snippet every time a new Windsurf window is opened.
Alternative (Console):
- 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,AutoExecutionUnlock,AutoAllow,AutoContinue,AutoRunAltEnter).LogLevel: enum of log levels (Error, Warn, Info, Debug, Trace).BUTTON_TARGETS/BTN_SELECTORS: buttons to consider for auto-click; each target declares afeaturefor per-target toggles.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.AutoExecutionUnlock]: { enabled: false, level: LogLevel.Info },
[Feature.AutoAllow]: { enabled: true, level: LogLevel.Info },
[Feature.AutoContinue]: { enabled: false, level: LogLevel.Info },
[Feature.AutoRunAltEnter]: { enabled: true, 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-clicking the Allow button:
{ enabled: true, level: LogLevel.Info }forFeature.AutoAllow. - Enable auto-clicking the Continue button:
{ enabled: true, level: LogLevel.Info }forFeature.AutoContinue.
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_TARGETSwith afeatureproperty and reusingevaluateButtonvisibility checks. - Project conventions live in
openspec/project.md.