Add native terminal support for input and window focusing#53
Open
pablotp wants to merge 1 commit into
Open
Conversation
Enables sending messages to Claude Code sessions and focusing terminal windows without requiring tmux. Uses AppleScript for terminal-specific integration and NSRunningApplication for cross-Space window activation. - Add NativeTerminalInputHandler actor with per-terminal AppleScript - iTerm2: find session by TTY, use native write text command - Terminal.app: find tab by TTY, select and use do script - Other terminals: System Events keystroke fallback - Focus terminal windows across virtual desktops via NSRunningApplication - Update ChatView to enable messaging for all sessions with a TTY - Update ClaudeInstancesView: single-tap focuses terminal, eye button for all sessions
ee69dcb to
f3b41a3
Compare
This was referenced Feb 25, 2026
Author
|
@farouqaldori JFYI I have been testing #53 #52 #51 and #48 together on my machine (Mac Tahoe 26.3) for the last 2 days and are working without issues. Thanks for creating this amazing project! |
Kel-Antony
added a commit
to Kel-Antony/claude-island
that referenced
this pull request
Apr 10, 2026
Phase 3 features: - farouqaldori#35/farouqaldori#53: Terminal focus without Yabai. Walks the process tree to find the parent terminal (Ghostty/iTerm2/Warp/Terminal.app/Alacritty) and activates via NSWorkspace. Adds non-tmux message send via AppleScript and System Events. - farouqaldori#40: Session state dots in the collapsed island. Shows colored dots (blue=approval, orange=processing, green=waiting for input) when multiple sessions are active. Rendered in both notch and pill modes. - farouqaldori#45: External display pill mode. Uniform rounded PillShape for displays without a physical notch, with a compact "X running / Y idle" status row. Phase 4 fixes from upstream: - farouqaldori#78: security/correctness/perf bugs - socket 0o600, stable SHA256 IDs in MessageBlock (replaces randomized hashValue), GenericResult equality with rawData, Bool-before-NSNumber in MCPToolFormatter, cached ISO8601DateFormatter, generate-keys key pair bug + chmod, create-release in-place sed, build.sh set -eo pipefail with error reporting. - farouqaldori#51: Local.xcconfig support in build.sh plus .gitignore entry. - farouqaldori#39: Sound suppression picker (Never / When Focused / When Visible). - farouqaldori#34: Periodic 3s session recheck in SessionStore detects dead processes and re-syncs active ones. - farouqaldori#61: Quit/menu hover fix - moves .contentShape onto the Button. UX polish: - Hover-to-open delay reduced from 1.0s to 0.1s; auto-close on mouse leave after 0.15s for hover-opened panels (chat mode stays sticky). - Opened-panel hit rect now uses full menu height so tall menus with expanded pickers stay hoverable all the way down to Quit. - Right-click anywhere on the pill shows a "Quit Claude Island" context menu via a global rightMouseDown event monitor.
rosuH
pushed a commit
to rosuH/claude-island
that referenced
this pull request
Apr 14, 2026
…ori#53) * Fix sessions disappearing from UI shortly after hooks fire (farouqaldori#43) Sessions were incorrectly transitioning to idle phase and being filtered out of the display. This fix addresses two root causes: 1. HookEvent.determinePhase() now correctly maps idle_prompt notifications to waitingForInput instead of idle, and handles notification status explicitly as processing state. 2. UI filters in NotchView and NotchHeaderView no longer exclude idle sessions, allowing running Claude processes to remain visible with a dimmed indicator. * Align sessionPhase with determinePhase() for notification handling Ensures notification events trigger processing-related behavior like starting the InterruptWatcherManager. Previously, sessionPhase fell through to .idle for notification events while determinePhase() correctly returned .processing.
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.
Summary
Changes
Terminal support matrix