Inspiration
AI coding tools are powerful — but they’re almost entirely keyboard-driven and opaque. You press a shortcut, accept a change, and hope nothing critical breaks.
We asked a different question:
What if AI automation was controlled through deliberate physical input — and enforced by strict safety policies?
Logitech’s Actions SDK inspired us to rethink AI workflows as hardware-controlled, intentional, and verifiable systems.
CursorPilot explores that idea.
What it does
CursorPilot turns Logitech hardware into a safe AI control surface.
Using Logitech’s Actions SDK model (Commands + Adjustments), developers can:
- Rotate a dial to switch between policy modes (SAFE, PERF, SEC, REFACTOR)
- Press a hardware command to trigger AI-powered code fixes
- Automatically validate unified diffs before applying
- Re-run tests and lint
- Automatically rollback on failure
The result is a deterministic red-to-green workflow:
Hardware → AI Patch → Policy Validation → Apply → Verify → Evidence
No blind automation. No silent file edits.
How we built it
CursorPilot is built as a layered, hardware-first architecture:
1️⃣ Logitech Actions SDK Plugin (C#)
- Implements Commands (Fix & Verify, Explain)
- Implements Adjustment (Mode Dial)
- Communicates with the engine via a secure localhost bridge
- Built and packaged via Windows CI (artifact:
cursorpilot-actions-plugin.zip)
2️⃣ Bridge Server (Node.js)
- Token-authenticated HTTP interface
- Receives hardware events
- Decouples plugin from AI engine
3️⃣ CursorPilot Engine (TypeScript)
- Runs test and lint pipelines
- Collects source files
- Builds strict Gemini prompts (unified diff only)
- Validates diffs against policy rules
- Applies patches using
git apply - Re-runs verification
- Reverts on failure
4️⃣ Desktop Demo App (Electron + React)
- Simulated Logitech console for Mac demo
- Visual execution timeline
- Diff viewer with PASS/FAIL evidence
- CI badge showing plugin build status
Gemini is configured with:
- Low temperature (deterministic output)
- Strict unified diff constraints
- Sanitization layer to remove markdown artifacts
- Hunk header correction
- Risk pattern detection
Challenges we ran into
🔹 Diff Reliability
LLMs frequently output:
- Markdown fences
- Incorrect hunk counts
- Context mismatches
- Truncated patches
We built:
- Diff sanitizers
- Hunk recalculators
- Multi-layer validation
git apply -C0fallback- Patch -p1 recovery strategy
🔹 Electron + Node Interop
- CJS vs ESM conflicts
- Vite bundling issues
- Native module externalization
- Environment variable resolution across packages
🔹 Safe AI Enforcement
We needed to ensure:
- No edits to tests
- No package.json modification
- No eval / child_process injection
- No network calls introduced
This required content-level diff scanning before apply.
Accomplishments that we’re proud of
- A fully implemented Logitech Actions SDK plugin (C#)
- Windows CI workflow building and packaging the plugin artifact
- Deterministic red-to-green demo pipeline
- Policy-enforced AI guardrails
- Automatic rollback on failure
- Hardware-first architecture, not just UI buttons
This is not a chat-based tool. It is a controlled AI execution system.
What we learned
- AI automation must be constrained at multiple layers, not just in prompts.
- Unified diff validation is critical for safe patching.
- Hardware control surfaces create intentional interaction patterns.
- CI artifacts significantly increase credibility in SDK-based submissions.
- Deterministic demos win hackathons.
What’s next for CursorPilot – Hardware-Controlled AI Fix Engine
- Native support for Logitech Creative Console devices
- LED / display feedback from engine state
- IDE extensions (VS Code integration)
- Multi-repo support
- Team policy profiles
- Secure enterprise mode with signed patches
- Performance telemetry for hardware-triggered AI workflows
Our vision: AI automation should feel deliberate, physical, and safe — not invisible and uncontrolled.
CursorPilot is the first step in that direction.
Built With
- c#-(.net-8)
- electron
- eslint
- gemini-(google-generative-ai)
- github-actions-ci
- jest
- logitech-actions-sdk
- node.js
- react
- rest-bridge-server
- simple-git
- typescript
- vite

Log in or sign up for Devpost to join the conversation.