AutoHotkey
Scriptable hotkeys with a typed API, editor, AI edits, and safer sharing.
Build Windows shortcuts, macros, and scripts once, then keep them organized across the apps and PCs you use.
Record a sequence, bind shortcuts by app, or script the parts that need decisions.
PowerKeys brings macros, keybinds, scripts, profiles, device triggers, marketplace installs, and sync into the same app.
Scriptable hotkeys with a typed API, editor, AI edits, and safer sharing.
Assign every extra mouse, keyboard, pedal, and macro-pad button inside the same profiles.
Per-app shortcut layers plus macros and scripts when key swaps are not enough.
Trigger the same automations from buttons, hotkeys, mouse inputs, and scripts.
Keep the workflows. Replace the scattered setup.
Core automation stays free. Premium adds an agent that can read the current script, logs, and selection, then propose a patch you approve.
1 // Paste clipboard as uppercase text2 Hotkey.Register("Ctrl+Alt+U", async () => {3 const text = Clipboard.Text.trim();4 Keyboard.Type(text.toUpperCase());5 });
Profiles, bindings, and script data stay with your account across PCs.
Move from desktop to laptop without rebuilding shortcuts, profiles, or script state.
Shared packs are transparent before anything runs.
Browse shared scripts, profiles, and hotkey packs you can inspect, install, and adapt instead of starting from a blank file.
Write the workflow logic. PowerKeys handles typed APIs, permissions, settings UI, logs, and AI-assisted edits.
^!f::{
; 1. Create a Windows COM HTTP client
whr := ComObject("Msxml2.XMLHTTP.6.0")
; 2. Retry by hand
Loop 3 {
try {
whr.open("GET", url, false)
whr.send()
if (whr.status = 200) {
body := whr.responseText
; 3. Pull titles from JSON text
Loop 3
if RegExMatch(body, '"title":"([^"]+)"', &m, pos)
results .= m[1] . "`n", pos := m.Pos + m.Len
break
}
} catch
Sleep 500 * A_Index
}
; 4. Show the result
TrayTip("Feed", results)
} Hotkey.Register("Ctrl+Alt+F", async () => {
const feed = await HTTP.GetJson(url, {
retries: 3,
backoff: "exponential",
});
const titles = feed.items
.slice(0, 3)
.map(i => i.title)
.join("\n");
UI.Notify("Feed", titles);
}); Build scripts that feel like product features, not loose files on a desktop.
Start free with macros, keybinds, scripts, marketplace installs, and sync. Upgrade for the AI editor agent and no ads.
Windows 10 and 11 · Signed installer
Get release notes and early feature previews.