# Development

## Requirements

- Go version from go.mod.
- Node.js 22 or newer for dashboard validation.
- macOS is required for real HID output today.
- Optional media tools for specific renderers: ffmpeg and yt-dlp.

## Validation

~~~bash
make validate
~~~

Equivalent commands:

~~~bash
go test ./...
npm run typecheck
npm run build:web
~~~

## Run the daemon

~~~bash
go run ./cmd/keychron-daemon -report-spacing=1ms
open http://127.0.0.1:8787/
~~~

The daemon binds to 127.0.0.1:8787 by default. Keep it local unless you add an authentication layer and understand the device-write risk.
