AHK v2 version & portability guidance — what runs on stock v2.0 vs v2.1-alpha vs the +Console fork, and how to write code that works on the build the user actually has. Use when choosing a #Requires floor, checking whether Print / Eval / typed Struct / (a?)() are available, detecting the interpreter at runtime, or making a script portable. TRIGGER when: user says "which version", "will this run on", "portable", "works on stock AHK", "is Print/Eval available", "what does the fork add", "#Requires version", "target v2.0", "detect the build", "A_AhkVersion". Examples: "will this run without my fork", "make this portable", "is typed Struct in v2.0"
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
AHK v2 version & portability guidance — what runs on stock v2.0 vs v2.1-alpha vs the +Console fork, and how to write code that works on the build the user actually has. Use when choosing a #Requires floor, checking whether Print / Eval / typed Struct / (a?)() are available, detecting the interpreter at runtime, or making a script portable. TRIGGER when: user says "which version", "will this run on", "portable", "works on stock AHK", "is Print/Eval available", "what does the fork add", "#Requires version", "target v2.0", "detect the build", "A_AhkVersion". Examples: "will this run without my fork", "make this portable", "is typed Struct in v2.0"
AHK v2 Versions & Portability
Decide what the user's build supports, then write code that runs on it.
How to use
Establish the target build(s): only this repo's +Console fork? Also stock v2.0? Upstream v2.1-alpha?
Load the full reference — capability matrix + a portable fallback for every gated feature —
from Modules/Module_Versions.md. It maps each feature to the builds that support it.
Apply the decision rule: declare the floor, gate the extras.
Is typed Struct / (a?)() available? v2.1-alpha+. v2.0 fallback: Buffer + NumPut/NumGet; a ? a() : unset.
What does the fork add over upstream alpha?Print, Eval, JSON diagnostics, /CrashLog, exit code 130, SyntaxError.
For the full matrix, all fallbacks, and the silent alpha behavior shifts (void→unset,
read-only class base, GuiCtrlFromHwnd no-value), read Modules/Module_Versions.md.