Documentation

Everything you need to install SnapKeyNext, configure its modules, and tune movement behavior for each game.

Install SnapKeyNext

Choose the installed edition when SnapKeyNext must work with elevated games. It runs with administrator privileges and includes Start menu integration. Choose the portable ZIP for a self-contained, standard-user copy whose files remain in the data folder beside the executable. Portable builds cannot control elevated applications.

SnapKeyNext targets Windows 11 x64 with best-effort Windows 10 x64 compatibility.

Choose a Download

Quick Start

  1. Launch SnapKeyNext and open the Dashboard.
  2. Confirm that the program is enabled. The large state button enables or disables all input processing immediately.
  3. Open Modules to review Input Timing and the optional movement modules. Disabled modules remain available here for setup.
  4. Keep the default Last Input Wins behavior, or enable SOCD and select a different resolution mode.
  5. Select Save and apply after making changes.

Closing or minimizing the window keeps SnapKeyNext in the system tray. Use Quit SnapKeyNext from the tray menu when you want to release synthesized keys and exit completely.

Read the Overview

The Dashboard keeps the current application state in one place:

  • Processing shows whether the entire program is enabled and provides the state-specific enable or disable button.
  • Application Scope shows whether input is active for all applications or the selected foreground profile.
  • Modules lists enabled modules first in green, followed by disabled modules in gray.

Applications, Modules, and Settings are always available from the main navigation. Statistics is enabled by default. Debug appears above Settings only while its module is enabled, but both remain visible in the Modules page.

Configure Modules

Modules are built into SnapKeyNext and configured from one reusable page. Input Timing and Statistics start enabled; every other optional module starts disabled.

ModuleDefaultPurpose
Input TimingEnabledAdds the configured delay to synthesized actions.
StatisticsEnabledKeeps bounded daily timing aggregates locally.
DelayedDisabledAdds a neutral gap between a release and replacement press.
SOCDDisabledSelects Last Input Wins, First Input Wins, Neutral, Fixed Priority, or Absolute Priority.
Input TuningDisabledConditions chatter, short presses, overlaps, and held-key restoration.
DebugDisabledShows bounded live diagnostics and timing guidance.

Timing sliders cover 0–500 ms and devote extra travel to commonly used values from 0–50 ms. Type an exact whole-millisecond value for settings up to 1000 ms. Use --timing-slider-max-ms 50 when you want the entire slider dedicated to smaller values.

Configure Per-Game Profiles

SnapKeyNext works in all applications by default, with foreground-process detection off. Use the selected activation mode to apply a named category only while one of its configured executables is active.

[activation]
mode = "selected"

[activation.categories."Competitive games"]
executables = ["ExampleGame.exe"]
keys = [["A", "D"], ["W", "S"]]

Open Applications to add a running game and edit category key groups, SOCD, or Input Tuning overrides. Category overrides can also change Input Timing, Delayed, and Statistics settings without changing their global defaults.

Check for Updates

SnapKeyNext performs one bounded update check at startup. Use the refresh button beside the update status, or Check for updates in the tray menu, to run the same manual check. Manual checks have a five-second cooldown and do not send Diagnostics data.

When a newer stable or opted-in nightly build is available, the status shows its version and release time and reveals an update button. SnapKeyNext downloads and verifies the package only after you select that button.

Control Diagnostics

Diagnostics is enabled unless you explicitly disable it inconfig.toml:

diagnostics = { enabled = false }

It sends anonymous basic system and startup performance information to help improve the application. It never sends captured keys, configuration contents, hardware identifiers, or raw input timing samples. Current clients use the diagnostics API field; the legacytelemetry field remains accepted for older builds. Read the Privacy page for the complete data and retention policy.

Program Arguments

Overrides apply only to the current process. Both--option value and --option=value forms are accepted.

ArgumentPurpose
--config-file <path>Use another schema-version-1 configuration file.
--language-file <path>Load custom UTF-8 translations with English fallback.
--timing-slider-max-ms <value>Use a smaller slider range for fine control.
--initial-window-width
--initial-window-height
--minimum-window-width
--minimum-window-height
Override initial or minimum window dimensions.
--minimum-timing-ms
--maximum-timing-ms
Override the accepted timing-input bounds.
--statistics-refresh-ms <value>Override the local Statistics refresh interval.
--startup-api-host
--startup-api-path
Use another compatible startup API endpoint.
--help-url
--releases-url
Override the Help and Releases targets.
--help or -hShow every supported option, including internal Windows message and timer identifiers.