wxtsky/CodeIsland
53.5
Adequate · 1 October 2026
72.5k
lines of production code
Swift
with C#
2
measurements over time
What this system is
CodeIsland is a cross-platform AI coding agent companion application that monitors and manages sessions across various tools like Claude, Codex, and Cursor. It provides a unified interface for tracking task progress, handling permission approvals, and rendering agent responses, while supporting macOS, Windows, iOS, and Wear OS. The system integrates with a custom ESP32 hardware peripheral to display real-time agent status animations via Bluetooth.
Features
Automated macOS build, signing, and Sparkle-based auto-update pipeline
The scripts directory now includes a comprehensive build and release workflow for macOS. The new build-dmg.sh script assembles universal or arm64 app bundles, embeds the Sparkle framework for in-app updates, and handles Developer ID code signing and notarization. Supporting scripts manage the update process (update-appcast.sh generates signed appcast entries using EdDSA keys), while dev-hot-restart.sh provides a watch-and-restart loop for local development. Additionally, a suite of smoke and regression test scripts (smoke-companion.sh, check-companion-ui-regressions.sh, etc.) validates the companion app UI and protocol across iOS and watchOS simulators, and extract-changelog.sh automates release note extraction.
scripts · high confidence
Initial Windows port of CodeIsland core logic and tool hooks
This change introduces the foundational C\#/.NET 8 implementation for the Windows version of CodeIsland. It adds the core domain models (AgentEvent, SessionStateMachine) and a protocol serializer to manage AI agent sessions and events. It also includes the \codeisland-bridge.exe\ IPC service (using Windows Named Pipes) and a comprehensive hook management system that detects, installs, and uninstalls event hooks for supported AI coding tools like Claude, Codex, Gemini, and Cursor. Additionally, it provides the initial Bluetooth protocol definitions for ESP32 Buddy hardware integration.
(repo-wide) · high confidence
Introduce Wear OS companion app for Buddy Watch approval previews and alerts
The android-watch/app module adds a Wear OS companion application that mirrors the CodeIsland Buddy protocol via BLE, enabling users to view mascot status, agent activity, tool names, brightness, and orientation on their watch. It introduces specific UI and interaction capabilities for handling agent requests: users can now approve, deny, or skip current permissions and questions directly from the watch interface, with corresponding visual alerts and animations in the mascot view. The app also supports message previews, demo mode toggling, and adapts to both square and round watch screens.
android-watch, app · high confidence
New OpenClaw integration plugin for CodeIsland
A new plugin pack has been added to enable integration with OpenClaw. This includes a TypeScript plugin implementation that bridges OpenClaw agent lifecycle and tool events into the CodeIsland macOS notch panel via a Unix socket and a local bridge binary, along with a plugin manifest defining the integration.
Sources/CodeIsland/Resources/codeisland-openclaw · high confidence
New core modules for agent task tracking, AI companion payloads, and configuration resolution
This update introduces several new foundational components in CodeIslandCore. AgentTaskList and AgentTaskParsing provide a unified system for tracking and parsing agent task checklists (e.g., from Claude, Codex, and Cursor), handling status updates, merges, and snapshots. AiWorkWatchClient adds support for connecting to the Agentix daemon to monitor AiWork GUI/TUI sessions. AntigravityHookContract defines the logic for handling Google Antigravity's PreToolUse hooks. AppDistribution adds logic for handling app distribution, including release notes links and detecting read-only installation locations. AppleCompanionPayload defines the data structures for communicating with the Apple Companion app. ChatMessageTextFormatter improves markdown rendering, specifically handling fenced code blocks and inline spans. ClaudeConfigPaths provides a robust, memoized resolution chain for finding the Claude Code configuration directory, honoring environment variables, user preferences, and XDG-style paths. ClaudeQuota introduces structures and parsing logic for displaying Anthropic's usage quotas and limits.
Sources/CodeIslandCore · high confidence
New hardware companion device for displaying AI agent status animations
This change introduces the 'Buddy' hardware peripheral, an ESP32-C6-based desk pet that receives real-time AI Coding Agent status updates (idle, processing, waiting for approval/question) from the CodeIsland macOS application via Bluetooth Low Energy (BLE). The device features a 1.47-inch TFT screen that displays animated pixel mascots corresponding to the agent's state, with specific animations for sleep, work, alert, and question modes. The firmware includes a pairing protocol, demo mode for cycling through 16 different mascot designs, and remote control capabilities for screen brightness and orientation. Documentation is provided for hardware setup, Arduino IDE configuration, and rendering optimizations using off-screen double buffering to prevent screen tearing.
hardware · high confidence
New integration extensions for OpenCode, Pi, and OMP
Added new resource files that serve as integration extensions for the OpenCode, Pi, and Oh My Pi (OMP) coding agents. These extensions bridge the agents' lifecycle events and permission requests to the CodeIsland macOS app via Unix sockets, enabling users to manage agent sessions, approve dangerous commands, and answer questions directly from the CodeIsland interface.
Sources/CodeIsland/Resources · high confidence
New task progress tracking and expanded AI agent integrations
Users can now see real-time agent task checklists on session cards, including a segmented progress bar, completion counts, and the current activity label, with an expandable list of individual items. This feature is supported by a new background transcript scan that backfills task history when a session attaches, ensuring progress is visible even for long-running sessions. Additionally, the app adds support for new AI sources: AiWork (Agentix) sessions are now discovered and monitored via a dedicated watcher, and the Codex Desktop app-server integration is enhanced with robust reconnection logic and session preservation to handle app restarts gracefully.
Sources/CodeIsland · high confidence
Behavioural changes
CodeIsland v1.0.35 release notes and auto-update configuration
The changelog now documents the v1.0.35 release, introducing session task progress bars, session recaps, Markdown rendering for replies, push notifications to services like Slack and Telegram, follow-up reminders, Claude Desktop Cowork support, multi-account configuration, and refined sound and focus behaviors. The app's Info.plist has been updated to version 1.0.35 and configured for Sparkle-based auto-updates with ed25519 signature verification, while the appcast.xml has been populated with release entries from v1.0.22 through v1.0.35.
(repo-wide) · high confidence
Improved process ancestry detection and robust hook payload normalization
The bridge now traces parent processes to infer the source of hook events when the --source argument is missing, ensuring accurate attribution for tools like Cursor and Grok. It also normalizes inconsistent JSON field names (e.g., camelCase vs. snake\_case) and environment variables from third-party CLIs like Google Antigravity and Grok, making session and event data reliable across different integrations. Additionally, socket connections now support configurable timeouts, and logging can be redirected via an environment variable to prevent test artifacts from polluting production logs.
Sources/CodeIslandBridge · high confidence
iOS companion app adds Bluetooth support and foreground reconnection
The iOS companion app now supports connecting to the Mac via Bluetooth in addition to Multipeer Connectivity, enabling a more reliable connection path. It also fixes a bug where the app would get stuck showing "disconnected" after returning to the foreground from the background by automatically reconnecting the Multipeer session when the app becomes active again.
ios · high confidence
Test coverage
Added test coverage for OMP Ask race settlement, AiWork daemon interactions, and session answer routing; Expanded test coverage for CodeIslandCore.
Dependencies
Initial release of CodeIsland v1.0 with multi-platform support
This entry marks the initial release of CodeIsland v1.0, establishing the foundational build structure and dependencies for the application. The diff introduces Swift Package Manager dependencies for Sparkle (v2.9.1) to enable auto-update capabilities with ed25519 signature verification, and Yams (v5.4.0) for YAML processing. It also adds a Node.js bridge plugin for OpenClaw integration and sets up the Android Watch companion app (BuddyWatch) with Android SDK 34 and Kotlin 1.9.24. Furthermore, it defines the Windows desktop application structure using .NET 8.0, including core libraries, IPC, Bluetooth, and WPF/WinForms UI components.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 63 → 53 (-9.6)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 74 → 53 (-21.1)
- Architecture 98 → 98 (+0.1)
- Maturity 62 → 61 (-0.6)
- Readiness 58 → 44 (-13.7)
- Security 69 → 80 (+11.1)
- Performance 66 → 66 (+0.0)
Resolved (47)
- AppState.findActiveClaudeSessions (cognitive 30) (Sources/CodeIsland/AppState.swift)
- AppState.findActiveClaudeSessions (cyclomatic 18) (Sources/CodeIsland/AppState.swift)
- AppState.findActiveGrokSessions (cognitive 16) (Sources/CodeIsland/AppState.swift)
- AppState.grokSessionCandidates (cognitive 20) (Sources/CodeIsland/AppState.swift)
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (16 lines × 2) (Sources/CodeIsland/AppState.swift)
- Duplicated block (2–7 lines × 13) (Sources/CodeIsland/BuddyView.swift)
- Duplicated block (3–8 lines × 12) (Sources/CodeIsland/BuddyView.swift)
- Duplicated block (3–8 lines × 9) (Sources/CodeIsland/ClineView.swift)
- Duplicated block (5 lines × 11) (Sources/CodeIsland/BuddyView.swift)
- Duplicated block (5 lines × 18) (Sources/CodeIsland/AntiGravityView.swift)
- Duplicated block (5 lines × 20) (Sources/CodeIsland/AntiGravityView.swift)
- Duplicated block (5 lines × 5) (Sources/CodeIsland/BuddyView.swift)
- Duplicated block (5 lines × 5) (Sources/CodeIsland/ClineView.swift)
- Duplicated block (6 lines × 12) (Sources/CodeIsland/BuddyView.swift)
- Duplicated block (6 lines × 18) (Sources/CodeIsland/AntiGravityView.swift)
- Duplicated block (6 lines × 5) (Sources/CodeIsland/BuddyView.swift)
- Duplicated block (7 lines × 12) (Sources/CodeIsland/BuddyView.swift)
- …and 27 more
New (264)
- AgentTaskList.apply (cognitive 26) (Sources/CodeIslandCore/AgentTaskList.swift)
- AgentTaskList.apply (cyclomatic 27) (Sources/CodeIslandCore/AgentTaskList.swift)
- AgentTaskList.applyCreated (cognitive 17) (Sources/CodeIslandCore/AgentTaskList.swift)
- AgentTaskTool.callEvents (cognitive 17) (Sources/CodeIslandCore/AgentTaskParsing.swift)
- AgentTaskTool.resultEvents (cognitive 18) (Sources/CodeIslandCore/AgentTaskParsing.swift)
- AgentTaskTranscript.claudeResultEvents (cognitive 23) (Sources/CodeIslandCore/AgentTaskParsing.swift)
- AgentTaskTranscript.claudeResultEvents (cyclomatic 16) (Sources/CodeIslandCore/AgentTaskParsing.swift)
- AgentTaskTranscript.claudeUserEvents (cognitive 16) (Sources/CodeIslandCore/AgentTaskParsing.swift)
- AiWorkStatusMapper.toolDescription (cognitive 20) (Sources/CodeIslandCore/AiWorkWatchClient.swift)
- AiWorkStatusMapper.toolName (cognitive 20) (Sources/CodeIslandCore/AiWorkWatchClient.swift)
- AiWorkStatusMapper.toolName (cyclomatic 17) (Sources/CodeIslandCore/AiWorkWatchClient.swift)
- AppDelegate.applicationDidFinishLaunching (cognitive 19) (Sources/CodeIsland/AppDelegate.swift)
- AppDelegate.applicationDidFinishLaunching (cyclomatic 16) (Sources/CodeIsland/AppDelegate.swift)
- AppState.applyAiWorkListBackfill (cognitive 19) (Sources/CodeIsland/AppState.swift)
- AppState.applyAiWorkListEntry (cognitive 16) (Sources/CodeIsland/AppState.swift)
- AppState.applyAiWorkListEntry (cyclomatic 16) (Sources/CodeIsland/AppState.swift)
- AppState.applyAiWorkSessionMetadata (cyclomatic 16) (Sources/CodeIsland/AppState.swift)
- AppState.applyAiWorkStatsBackfill (cognitive 23) (Sources/CodeIsland/AppState.swift)
- AppState.applyAiWorkStatsBackfill (cyclomatic 16) (Sources/CodeIsland/AppState.swift)
- AppState.applyAiWorkStreamEvent (cognitive 29) (Sources/CodeIsland/AppState.swift)
- …and 244 more
Changes since last survey
- 127 commits — 53 feature/other, 74 fixes
By area
- Sources/CodeIsland — 90 commits
- Sources/CodeIslandCore — 24 commits
- Tests/CodeIslandTests — 7 commits
- (root) — 3 commits
- docs/images — 2 commits
- Sources/CodeIslandBridge — 1 commit
Notable commits
- fix: fix(activator): run jump scripts in osascript, not NSAppleScript
- fix: fix(antigravity): observe PreToolUse instead of holding it for an island card (#339)
- fix: fix(config-dirs): compare config paths by realpath identity and memoize root lists
- fix: fix(config-dirs): never install or remove hooks through a file the primary owns
- fix: fix(config-dirs): refuse the home folder and folders that hold the primary
- fix: fix(config-dirs): replace a symlink whose target cannot be written, as before
- fix: fix(config-dirs): skip paused dirs in discovery and place unknown processes in one root
- fix: fix(config-dirs): write hook configs through symlinks instead of over them
- fix: fix(cowork): don't count bookkeeping audit lines as a live turn
- fix: fix(cowork): end a Cowork turn or wait with the Claude Desktop that ran it
- fix: fix(cowork): keep Cowork cards out of sessions.json
- fix: fix(cowork): keep a wait settled at launch from coming back on a metadata save
- fix: fix(cowork): let Claude Desktop's configured model only seed the label
- fix: fix(cowork): settle Cowork cards on their own silence clock
- fix: fix(cowork): treat Stop in Claude Desktop as an interruption, not a failure
- fix: fix(grok): read Grok's session search index next to session dirs (#331)
- fix: fix(grok): retire the session a Grok TUI switched away from (#318)
- fix: fix(island): cap the collapsed bar's title so the tool stays in view
- fix: fix(island): fit the completion card's reply to the room the card leaves
- fix: fix(island): keep the folder name out of the collapsed recap tooltip
- …and 107 more
Architecture
- Containers 0 added · 0 removed · contexts 1 added · 1 removed · edges 0 added · 0 removed
Added bounded contexts (1)
- app
Removed bounded contexts (1)
- android-watch
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
wxtsky/CodeIsland was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b444ae28551e607dd7c66953343b9bb50c78b63d — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.