# MacroDeck (CLI prototype)
Runs a command automatically when files change in a watched folder — the
automation primitive behind rules like "when a screenshot lands in
Downloads, move it to Documents/Screenshots". Working prototype of the
automation engine — see ../plan.md for the full product plan (text
expansion, clipboard variables, and global mouse/keyboard macros are OS
UI-automation features and are still on the roadmap; this build is the
folder-watch trigger engine only).
## Build from source
Requires Go 1.24+, no external dependencies.
go build -o macrodeck .
Cross-compile for another platform:
GOOS=windows GOARCH=amd64 go build -o macrodeck.exe .
GOOS=darwin GOARCH=arm64 go build -o macrodeck .
## Usage
macrodeck watch
--run "" [--ext .png,.jpg] [--interval 2s] [--run-existing] [--once]
Polls and runs --run (with {file} substituted for the triggered
file's path) whenever a file is added or changed. Polling is deliberate:
it keeps this one static binary dependency-free and identical in behavior
on every OS, at the cost of latency bounded by --interval rather than
being instant. --once does a single pass over existing files and exits —
useful for testing a rule, or for running MacroDeck from cron / Task
Scheduler instead of as a background daemon.
## Prebuilt binaries
See ../downloads/ for prebuilt binaries (Windows/macOS/Linux) and
CHECKSUMS.txt for their SHA-256 hashes. These are unsigned indie builds —
Windows SmartScreen and macOS Gatekeeper will warn on first run, which is
expected until a code-signing certificate is in place (see the build
plan's risk section).