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 -C0 fallback
  • 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

Share this project:

Updates