Mouse or keyboard inputThe operating system delivers the action
03
Your existing controlsYour app decides what happens next
No browser camera SDK or raw-hand API.
TRY AN ACTUAL WORKFLOW
A repair reference, one step at a time.
Try the normal buttons below. This example uses the same action module as the starter kit, without another pause-to-click timer.
REPAIR REFERENCEIllustrative workflow
01 / 03
Identify the component.
Read the component label and compare it with your parts list.
Use a mouse, touch, or Tab and Enter. To use your hand, open AirDesk on Windows, select Start control, then use your saved click gesture. This page does not request your camera or detect AirDesk.
START AT YOUR LEVEL
Three ways in. One input model.
You do not need to rebuild hand tracking to explore a useful interaction.
NO CODE
Keep your normal buttons.
Connect large buttons to the navigation or workflows your builder already provides. AirDesk clicks them through Windows; no kit or custom code is required.
Use clear labels and generous space between controls.
Give each button one obvious action, such as opening the next instruction.
Try the published screen with a mouse first, then with AirDesk.
Compatibility depends on your builder and the published interface. There is no automatic AirDesk detection.
LOW CODE
Add a small action layer.
Use the HTML example in an embed or custom-code area, then connect its actions to the workflow you already own.
Start with semantic HTML buttons.
Scope the kit to your component and listen for named actions.
Keep normal keyboard access and visible confirmation.
Your platform must allow the required scripts. An iframe cannot freely control the surrounding page; use its supported messaging or workflow hooks.
FULL STACK
Own the whole workflow.
Use the Vanilla module or typed React example for a reference screen, guided task or deliberate menu. The same action contract keeps UI and application logic separate.
Bind only the component that needs the integration.
Handle actions in your app and dispose the binding on unmount.
Use your existing authenticated API for server-side work.
An action name is not authorization. Validate input, permissions and repeat requests on your server; keep credentials out of the browser.
A SMALL STARTER, READY TO ADAPT
Take the working example.
The kit includes the action module, TypeScript declarations, scoped styles, HTML and React examples, and practical integration guidance. The action module has no runtime dependencies.
Host the kit’s JavaScript and CSS, then adapt the paths and actions for your platform. The complete example below comes directly from the downloadable kit.
<!-- Low-code recipe. Host the kit's JS/CSS beside your page, then adapt paths. -->
<!-- Put this in a custom HTML embed that permits module scripts. -->
<link rel="stylesheet" href="/airdesk/airdesk.css">
<section id="airdesk-reference" data-airdesk aria-label="Reference viewer">
<p class="airdesk-status" role="status">Page <span id="reference-page">1</span> of 3</p>
<div class="airdesk-actions">
<button type="button" data-airdesk-action="back" data-variant="secondary" disabled>Back</button>
<button type="button" data-airdesk-action="next">Next page</button>
</div>
</section>
<script type="module">
import { AIRDESK_EVENT, mountAirDesk } from "/airdesk/airdesk.js";
const root = document.querySelector("#airdesk-reference");
let page = 1;
root.addEventListener(AIRDESK_EVENT, ({ detail }) => {
if (detail.action === "next") page = Math.min(3, page + 1);
else if (detail.action === "back") page = Math.max(1, page - 1);
else return;
root.querySelector("#reference-page").textContent = String(page);
root.querySelector('[data-airdesk-action="back"]').disabled = page === 1;
root.querySelector('[data-airdesk-action="next"]').disabled = page === 3;
});
const dispose = mountAirDesk(root);
// On a normal page this cleans up when leaving. In an SPA, clean up on unmount.
window.addEventListener("pagehide", (event) => { if (!event.persisted) dispose(); });
</script>
The Windows runtime sends mouse and keyboard input. The kit does not expose hand landmarks, track a camera, identify the input device or add a second pause-to-click timer.
Keep a way back.
Provide a visible result and an easy undo where practical. Retain a physical mouse, and never use this prototype for machine start/stop, emergency functions or other safety controls.
A starter, not a certification.
Test the full workflow in its real lighting, camera position and display setup. The tracking engine stays private; the integration examples do not make your app medically or industrially certified.
To try hand control, use the experimental Windows preview . It is unsigned; do not disable Windows security protections to run it.