Your first feedback loop
Start with a compatible Windows Console executable. If you do not have one, follow Build & install. These examples use a neutral folder, C:\Tools, and a project folder, C:\Scripts.
1. Identify the executable
$engine = 'C:\Tools\AutoHotkey64Console.exe'
& $engine --version
& $engine --capabilitiesThe filename is not a version guarantee. Read the build revision, architecture, commands, and feature flags. The compatibility guide explains the development features used throughout this site.
2. Write a small program
Save this as hello.ahk in your project:
#Requires AutoHotkey v2.1-alpha.31
Print("Hello from {}", A_AhkVersion)
Print("Literal {braces} stay literal")3. Check, then execute
& $engine check .\hello.ahk
if ($LASTEXITCODE -ne 0) { throw 'Syntax check failed' }
& $engine /Headless /Diag=json .\hello.ahk 1>result.txt 2>diagnostics.jsonl
$runExit = $LASTEXITCODE
Get-Content result.txt
"Exit: $runExit"check parses the script. The second command executes it. A clean check does not prove correct behavior; add assertions when an outcome matters.
4. Add ClautoHotkey
In Claude Code:
/plugin marketplace add TrueCrimeDev/ClautoHotkey
/plugin install clautohotkey@clautohotkeyCreate harness.env in the project root:
AHK_BIN_WIN="C:\Tools\AutoHotkey64Console.exe"
AHK_DIAG_JSON=1
RUNTIME_PROBE=1
NO_AUTO_RELOAD="hello.ahk"The hooks require a working Bash environment and jq. Ask Claude to edit hello.ahk, then inspect the actual validation output. See Plugin setup for WSL paths, dependency checks, and hook verification.
What next?
Build a JSON CLI, explore the REPL, or run the 26-assertion demonstration.
