Fast, configurable keyboard shortcuts for selecting both the model and the reasoning effort in the Codex and ChatGPT composers of the Windows desktop app.
Unofficial community utility. It is not made, endorsed, or supported by OpenAI. The official Windows app is documented in the OpenAI documentation.
Run the downloaded installer. It installs for the current Windows user, starts immediately, and starts automatically when you sign in. AutoHotkey is bundled in the compiled release and does not need to be installed separately.
Because the executable is currently unsigned, Windows SmartScreen may show a warning. Use More info → Run anyway only if the publisher URL and checksum match this repository. Every release includes a SHA-256 checksum.
ReasonKey is also available from the Microsoft Store. See MSIX packaging for the reproducible package build, local test, identity, and submission process.
If you downloaded the source ZIP or cloned the repository, double-click
Install.cmd. It uses a locally built installer from dist when
present; otherwise it downloads the latest installer and verifies its published
checksum before running it.
If you prefer not to run a binary published by someone else, you can inspect this repository and compile the same AutoHotkey sources locally. Neither the build nor the per-user installer requires administrator rights.
-
Download the source with Code → Download ZIP, or clone it:
git clone https://github.com/nauroman/ReasonKey.git Set-Location .\ReasonKey
To build a particular release instead of the current
mainbranch, select its tag on GitHub or rungit checkout vX.Y.Zafter cloning. -
Review the files that will be compiled. Good starting points are the runtime, installer, uninstaller, and build script.
-
Open Windows PowerShell in the extracted repository folder and run:
powershell.exe -NoProfile -ExecutionPolicy Bypass ` -File .\scripts\Build.ps1 -Clean
-ExecutionPolicy Bypassapplies only to that new PowerShell process. It does not permanently change the Windows execution policy or disable an antivirus. -
Find your locally built files in
dist\:dist\ReasonKey.exe dist\ReasonKey-Setup.exe dist\ReasonKey-Setup.exe.sha256
The build script uses an installed AutoHotkey v2 toolchain when available.
Otherwise, the first build downloads the official portable
AutoHotkey v2 runtime and
Ahk2Exe compiler into the
local .tools\ folder. It then compiles both executables, runs their built-in
--validate checks, validates the uninstaller path guards, and generates the
installer's SHA-256 file.
A local build is independent of the executable attached to GitHub Releases. It may not be byte-for-byte identical because the build script currently uses the installed or latest available AutoHotkey toolchain. See Development to run directly from source and for the full test matrix.
No antivirus result, checksum, or open-source repository can prove that a program is completely safe. They provide different evidence that can be checked together:
-
Inspect the source and build it locally as described above. This avoids running the prebuilt release executable.
-
Download the installer and its
.sha256file from the same GitHub release, then compare them in PowerShell:$expected = ((Get-Content .\ReasonKey-Setup.exe.sha256 -Raw) ` -split '\s+')[0] $actual = (Get-FileHash .\ReasonKey-Setup.exe ` -Algorithm SHA256).Hash $actual -ieq $expected
Trueconfirms that the downloaded bytes match the published checksum. It does not by itself prove that the program's behavior is safe. -
Scan the downloaded file with Microsoft Defender or another locally installed antivirus before running it.
-
Look up the SHA-256 or submit the public release executable to VirusTotal for results from many security engines. A clean report is useful supporting evidence, not a security guarantee; standard VirusTotal submissions are shared with its security partners.
-
Review How it works, including the documented runtime boundaries: the direct EXE makes no network requests, while the Store package asks Microsoft Store only for ReasonKey updates. Neither channel uses an API key or edits Codex/ChatGPT files.
-
Review the privacy policy and security policy.
In Codex and ChatGPT Work, new installations use:
| Shortcut | Model | Reasoning effort |
|---|---|---|
F16 |
GPT-6.1 Sol | Light |
F17 |
GPT-6.1 Sol | Medium |
F18 |
GPT-6.1 Sol | Extra High |
F19 |
GPT-6.1 Sol | Max |
Ctrl+F16 |
GPT-6 Astra | Light |
Ctrl+F17 |
GPT-6 Astra | Medium |
Ctrl+F18 |
GPT-6 Astra | Extra High |
Ctrl+F19 |
GPT-6 Astra | Max |
Ctrl+Shift+F16 |
GPT-6 Luna | Light |
Ctrl+Shift+F17 |
GPT-6 Luna | Medium |
Ctrl+Shift+F18 |
GPT-6 Luna | Extra High |
Ctrl+Shift+F19 |
GPT-6 Luna | Max |
When the composer is in ChatGPT Chat instead of Codex, all three shortcut groups select 5.6 Sol on Chat's independent Power scale:
| Shortcut | Chat model | Power |
|---|---|---|
F16 |
5.6 Sol | Instant |
F17 |
5.6 Sol | Medium |
F18 |
5.6 Sol | High |
F19 |
5.6 Sol | Pro |
Ctrl+F16 |
5.6 Sol | Instant |
Ctrl+F17 |
5.6 Sol | Medium |
Ctrl+F18 |
5.6 Sol | High |
Ctrl+F19 |
5.6 Sol | Pro |
Ctrl+Shift+F16 |
5.6 Sol | Instant |
Ctrl+Shift+F17 |
5.6 Sol | Medium |
Ctrl+Shift+F18 |
5.6 Sol | High |
Ctrl+Shift+F19 |
5.6 Sol | Pro |
Chat uses its independent ChatEffort values. Some unified-picker versions
display the Instant and Pro endpoints as Light and Max; ReasonKey
retains that compatibility. An unavailable option fails explicitly instead of silently
choosing a different level.
Ordinary Chat has a separate model catalog. In the tested 26.915 app it exposes Latest, GPT-5.6 Sol and GPT-5.5, without Astra. Use Codex or ChatGPT Work for the Astra presets above; ReasonKey cannot unlock a model absent from the picker.
The shortcuts are active only while the Codex/ChatGPT desktop window is active. They do not capture these keys globally in other applications.
Right-click the ReasonKey tray icon and choose Open presets.ini. Change any hotkey, model, or effort, save, then choose Reload from the tray menu.
The tray icon is the black key with green-and-white chevrons in the Windows notification area near the clock. If it is hidden, click the ^ arrow to show hidden icons. Hover over it to confirm that its tooltip starts with ReasonKey.
The installed presets.ini contains a beginner-oriented explanation of every
setting and the supported hotkey syntax. Open configuration guide opens an
always-current commented example. Upgrades preserve the active presets.ini.
Still using the previous shortcuts after upgrading? Open presets.ini
through the running ReasonKey tray icon. Store and direct EXE installations
have separate configuration files, and upgrading deliberately keeps existing
presets. To adopt the current layout, copy Preset1–Preset12 from Open
configuration guide, set PresetCount=12, save and choose Reload.
Keep any custom shortcuts you want to retain. The tray command opens the file
used by the active runtime. Without Preset9–Preset12 and PresetCount=12,
the Luna Ctrl+Shift shortcuts are not registered.
Supported model names are Luna (GPT-5.6), Luna6 (GPT-6 Luna), Terra,
Sol (GPT-5.6), Sol6 (GPT-6 Sol), Sol61 (GPT-6.1 Sol), and Astra (GPT-6).
For GPT-6.1 Sol, use Model=Sol61 (or Model=GPT-6.1 Sol).
For GPT-6 Luna, use Model=Luna6 (or Model=GPT-6 Luna). To add the
Ctrl+Shift group, copy Preset9–Preset12 from the guide and set PresetCount=12.
In ordinary Chat, Ctrl+Shift uses the same four Chat Power levels listed above.
For GPT-6 Sol, set Model=Sol6 (or Model=GPT-6 Sol); existing Model=Sol still selects GPT-5.6 Sol.
To select GPT-6 Astra, set Model=Astra in the desired preset, save, and
choose Reload from the tray menu. For example, Model=Astra with
Effort=Max selects 6 Astra Max in Codex. Existing presets and ChatGPT's
independent Sol/ChatEffort mapping are preserved during upgrades.
Supported effort names
are Light, Medium, High, Extra High, Max, and Ultra, subject to what
the selected model and your OpenAI account expose. Each preset can also set an
independent ChatEffort of Instant, Medium, High, or Pro. Those names
remain the configuration compatibility contract; some picker versions display
them as Light, Medium, High, and Max. Existing configuration files
without ChatEffort automatically receive the four legacy values for presets
1 through 4.
AutoHotkey hotkey syntax is used. For example:
[Preset1]
Hotkey=^!1
Name=Luna High
Model=Luna
Effort=High^!1 means Ctrl+Alt+1.
Current Codex and ChatGPT Chat composers use a unified picker with
Select model and a keyboard-controlled Power row. ReasonKey also retains the
older compact Power and expanded Advanced picker paths. It detects the active
composer and an already-open picker, selects through keyboard-accessible UI
Automation controls, and verifies the final picker Button. It does not edit
Codex/ChatGPT files or send API requests.
See How it works for the state machine and selector details.
- Windows 10 or Windows 11
- Codex/ChatGPT Windows desktop app with a Codex or ChatGPT Chat composer
- English UI labels in the current release
The current unified Codex and ChatGPT paths were validated against desktop
package OpenAI.Codex_26.928.1915.0_x64__2p2nqsd0c76g0. The legacy Advanced
path remains for compatibility with the earlier 26.825 builds. UI Automation
labels are not a public compatibility contract, so future desktop updates can
require selector updates.
Right-click the tray icon and choose Open log. The log is stored at:
%LOCALAPPDATA%\ReasonKey\ReasonKey.log
The Microsoft Store package uses its per-user package LocalState directory;
the tray command opens the correct log for the installed channel.
On every active Microsoft Store launch, ReasonKey asks the Store whether a newer package is available. Windows installs it silently when the user's Store auto-update setting and network policy allow that, then restarts ReasonKey so it returns to the notification area. If Windows disallows a silent update (for example, auto-updates are disabled or the network is metered), ReasonKey does not override the user's setting and tries again on the next launch. The direct EXE does not run this Store-only update helper.
See Troubleshooting before opening an issue.
The 1.0.13 validation report records the tested desktop version, actual picker results and remaining external checks.
The Store package and direct installer use the same per-session singleton. If
both channels are installed, whichever current ReasonKey runtime starts first
remains active and a second launch exits without registering another set of
hotkeys or showing another Quick Start window. Version 1.0.4 also migrates and
stops the older CodexModelHotkeys.exe runtime from release 1.0.3.
Open Windows Settings → Apps → Installed apps, find ReasonKey, and choose Uninstall.
For the Store channel, Windows also removes package-owned configuration and log files. The direct installer keeps its existing per-user uninstall behavior.
The source is AutoHotkey v2 and uses the MIT-licensed UIA-v2 library. See Development for layout, build, validation, and release instructions.
For project work, start with the product specification, which routes to the exact owners of presets, picker interaction, installation and Store updates. Project context maps those contracts to source and validation entry points. Historical reports are kept separately.
MIT. See LICENSE and third-party notices.
