Repository navigation
Conversation
0xdhrv
marked this pull request as ready for review
November 8, 2026 18:44
Owner
|
Thanks but I ended up going with a simpler version. TinyHand now has
There's also |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TinyHand's current shortcuts let launchers toggle the pointer, but they cannot reliably read its state, select a pointer, or update live preferences. This adds a versioned
--ctlJSON interface that sends requests to the running app and returns its acknowledged native state. It is intended to support a Raycast integration and other local automation clients.The bridge reuses the existing overlay, preferences, settings window, and custom-hand creator. It supports status/style discovery, idempotent on/off, toggle, clear, pointer/laser selection, toolbar pins, sound controls, and validated settings batches. All settings in a batch are validated before writing and refreshed through one native preferences notification.
The transport is a private Unix domain socket with same-user peer checks, directory/socket permissions, an exclusive server lock, allowlisted operations, size limits, and short deadlines. It opens no network port and does not require Accessibility permission for the client. TinyHand still requires its own Accessibility permission. The bundled CLI does not auto-launch the app or replay failed mutations.
Included:
TinyHandControlVersionbundle marker and documented protocol, including startup, errors, and uncertain timeout outcomes.Validation:
bash scripts/test-control.sh— 27 checks passed.swift build -c release --arch arm64 --arch x86_64(with an isolated scratch directory) — passed.git diff --cached --check— passed before commit.This is a draft for feedback on the proposed external-control surface and IPC approach. Live Accessibility/input interception, rendering, multiple displays, full-screen apps, and the supported macOS runtime matrix still need manual validation. No Raycast extension files or generated binaries are included.