Conveniences for common tasks
lowk.hotkey.register('ctrl alt d', myfn)lowk.input.sendkeys'lwin e'- And more!
File association for quick apps
Associates .lowk files with lowkPRO
so you can create Windows applications on the fly.
Just type some Lua code, save it, and you're done!
Getting Started
The full power of the Windows C API
is available to the Lua script in any .lowk file.
All functions, constants, and types, and many macros, are available as globals.
- Create a
.lowkfile - Write Lua code
- Double-click it
Examples
Hello world
local b = MessageBox(
nil, "❤️?", "hi", MB_YESNO)
print(b, b == IDYES, b == IDNO)
os.execute('pause')

6 true false
Press any key to continue . . .
Sample run loop
local msg = MSG()
while true do
Sleep(1)
GetMessage(msg, nil, 0, 0)
TranslateMessage(msg)
DispatchMessage(msg)
end
Name meaning
The name "lowkPRO" is an acronym, short for "Lua on Windows kernel for professionals."
Changelog
1.0-rc3 (wip)
- Added thread-safety to callbacks
- Added lowk.mouse.getpos/move
- Added primitive :get() and :set(n)
- Added lowk.darkmode.get/set/toggle
- Added lowk.thread.create
1.0-rc2 (10/29/2025)
- Added metatypes for more primitive types
- Added
~as dereference operator - Added convenient names for win32 metatypes
- Added metatype propagation for array access
- Added NULL checks for memory getters/setters
- Added metatype accessors for getters/setters
- Added auto-conversions for BOOLs/BOOLEANs
- Added zero-initializing for primitive types
- Added
[]array indexing on memory - Added global error handler
handleerror - Added
#operator for sizeof primitive types
1.0-rc1 (10/23/2025)
- All the features
- All the bugs
- Some of the TODOs