← Back to Product Feed

GitHub Open Source wxtsky/CodeIsland

No tagline provided.

1,064
Traction Score
125
Forks
Apr 6, 2026
Launch Date
View Origin Link

Product Positioning & Context

Related Ecosystem & Alternatives

Discover adjacent products, open-source repositories, and developer tools sharing similar technical architecture.

Deep-Dive FAQs

What is wxtsky/CodeIsland?
wxtsky/CodeIsland is a digital product or tool described as:
Where did wxtsky/CodeIsland originate?
Data for wxtsky/CodeIsland was aggregated directly from the GitHub Open Source community ecosystem, representing raw developer and early-adopter sentiment.
When was wxtsky/CodeIsland publicly launched?
The initial public indexing or launch date for wxtsky/CodeIsland within our tracked developer communities was recorded on April 6, 2026.
How popular is wxtsky/CodeIsland?
wxtsky/CodeIsland has achieved measurable traction, logging over 1,064 traction score and facilitating 125 recorded discussions or engagements.
Are there active development issues for wxtsky/CodeIsland?
Yes, we are currently tracking open architectural debates and bug reports for this project on GitHub. There are currently 5 active high-priority issues logged recently.

Active Developer Issues (GitHub)

open CodeIsland和Claude Code v2.0.73有以下兼容性报错
Logged: Apr 19, 2026
open Claude settings installer destructively reformats ~/.claude/settings.json (keys reordered, slashes escaped)
Logged: Apr 17, 2026
open opencode.json installer destructively reformats user config (comments stripped, keys reordered, slashes escaped)
Logged: Apr 17, 2026
open 弹窗闪烁
Logged: Apr 16, 2026
open Compatibility with antigravity needs to be increased
Logged: Apr 16, 2026

Community Voice & Feedback

wxtsky • Apr 29, 2026
Closing as needs-info — 同 #117 同模式,主端这边加了 hook event ring buffer + diagnostics export(commit `0972e8b`)。

复现 "multi-model 时不显示 antigravity 或 model" 现象时:

1. Settings → Export Diagnostics 导出 zip
2. 看 zip 里 `state/hook-events.json` 的 `source` 字段:
- 如果 antigravity terminal 里跑 Claude Code 时 source 标成 `claude` 而不是 `antigravity` → bridge ancestry inference 没穿透 antigravity.app
- 如果切到 Gemini / 其他 antigravity 内置 model 完全没 `source="antigravity"` 条目 → antigravity 内嵌 model 不走 hooks(直连 Google API),是 ecosystem 限制
3. 同时一张 island 当时的截图

等具体复现数据时重开。下个 release 生效。
wxtsky • Apr 25, 2026
update:钻了 antigravity 在代码层的所有处理路径,现状是:

- Antigravity 是 **VS Code fork**,用户在它的 embedded terminal 里跑 Claude Code,hook 由 Claude Code 触发
- `Sources/CodeIslandBridge/main.swift` 的 `CLIProcessResolver.inferSource` 会走 process ancestry,看到路径含 `/antigravity` 就把 `_source` 改写为 antigravity
- `Sources/CodeIsland/AppState.swift:342` 还有专门的 antigravity 进程探测路径 (`/antigravity.app/contents/`)

"multi-model 时不显示 antigravity 或 model" 的最大可能:

1. **当用户在 antigravity 切到 Gemini(antigravity 内置)时根本没 hook 触发** —— Antigravity 的 Gemini 集成通过 Google API 直连,不走 Claude Code 的 hooks server。CodeIsland 看不到这种 session 是 ecosystem 层面的限制,不是 codeisland 这边能单方面修的
2. **当切 Claude 时**,应该正常显示 antigravity;如果你看到 hook 触发但 source 仍标 "claude" 而不是 "antigravity",说明 antigravity 启动 Claude Code 的方式让 ancestry 没穿透——可以贴一下 island 上看到的 source 名 + 你的 antigravity 版本 + 是否在 embedded terminal 里跑的

短期内这个 issue 留 open 等 reproduce data 而不是硬上猜测式修。
wxtsky • Apr 25, 2026
update:已在 main 修复(下个 release 生效,commit `ed7cb7e`)。

在 `activateGhostty` 现有 4 种 AppleScript 策略 + 末尾 `activate` 之后,追加了 System Events Accessibility fallback:

```applescript
try
tell application "System Events"
tell process "Ghostty"
set frontmost to true
repeat with w in windows
try
if value of attribute "AXMinimized" of w is true then
set value of attribute "AXMinimized" of w to false
end if
end try
end repeat
end tell
end tell
end try
```

Ghostty 自己的 AppleScript 字典靠不住时,System Events 走 macOS Accessibility API 强制 raise + 把所有 minimized window 还原。`try` 包裹保证用户没给 Accessibility 权限时静默 no-op,不退化。
wxtsky • Apr 25, 2026
代码层面已确认 antigravity 是支持 source(`SessionSnapshot.supportedSources` line 27、`ConfigInstaller.swift:267` 用 `.claude` format、ESP32 mascot slot 12 都有)。

"multi-model 时不显示 antigravity 或 model" 的可能定位:

1. **source 字段**:antigravity 在 multi-model 切换时是否仍然把 hook 的 `_source` 填成 "antigravity"——业界 antigravity hook 协议在不同 model 下可能用 metadata 字段表达 model 而不是 source
2. **model 显示**:island 上的 "model" 名称来自 hook event 的特定字段(通常是 `model` 顶层 key),antigravity multi-model 下这个字段可能不一致

短期内 antigravity 这条线缺少明确复现路径,列入 multi-source bug 批量处理清单。
wxtsky • Apr 25, 2026
代码层面:`TerminalActivator.activateGhostty` (`Sources/CodeIsland/TerminalActivator.swift:197`) 用 4 种 AppleScript 策略匹配 Ghostty terminal(tmux key / TTY / CWD / title)+ 最后一行兜底 `activate`。

Ghostty 的 AppleScript 字典支持比传统 terminal 弱:
- `tty` property 不存在(代码 line 331 注释已说明)
- `working directory` 在 tmux 下经常拿不到真实 cwd
- 不同 Ghostty 版本对 `focus` 命令行为不一致

4 种 strategy 全失败时,最后一行 `activate` 只 raise Ghostty app 不 raise specific window——表现就是「点击灵动岛无反应」。其它终端正常是因为它们 AppleScript 字典更完整(iTerm2 走 sessionId 精确匹配,Terminal.app 有 `tty`/`custom title` 都能命中)。

业界对照:[open-vibe-island#314](https://github.com/Octane0411/open-vibe-island/issues/314) 也是 Ghostty 跳转无反应未修。

候选修复方向:4 种 strategy 全失败时,加一个 NSWorkspace `activate(options: .activateAllWindows)` 或者 Accessibility API 强制 raise 第一个 visible window 的 fallback。这个会列入后续优化清单。
wxtsky • Apr 23, 2026
@Walter-Hou 已经定位到根因,本地修掉了。

**根因**:approval card 的 transition 用了 `.compositingGroup() + .blur + .opacity` 这组合。macOS 26 的 SwiftUI 合成器对 compositingGroup + blur filter 的处理有回归——即使 blur radius 是 0(稳态),compositingGroup 里的 offscreen 渲染依然会把子视图"洗"成异常的透明/半透明状态,直到某个鼠标事件触发 invalidation → 重新合成才恢复。这也解释了你观察到的"移向刘海 → 消失、移回按钮 → 重现":鼠标位置变化触发 SwiftUI 重绘,每次合成"有时正确、有时错误",所以看起来像在抽。

**修复**:去掉 identity 态的 `compositingGroup()`,SwiftUI 对 blur radius 0 就是真正 no-op,合成器不再介入。过渡插值期间保留 blur + opacity,视觉效果跟以前基本一致。

这个 patch 会在下一个版本 **v1.0.22** 里发出来(很快),发了之后麻烦帮忙再试一下。如果还有残留问题,我会在 Settings 里加一个「简化过渡动画」开关作为兜底,直接禁用 blur。感谢你提供的对比视频,非常关键。
wxtsky • Apr 23, 2026
Bro,这个 issue 开了一段时间一直没收到具体需求,先关闭整理一下。

#115 已经在推进"hook 事件转发到钉钉/飞书/企微 webhook"的单向通知方向(用户明确只要钉钉机器人提醒),建议你到 #115 跟进。如果你需要的是 IM 里**双向回复**(在 IM 里回一条消息 → 转发给终端里的 agent),这个复杂度更高,跟 #54(岛上直接回复)同源,需要 tmux/ghostty send-keys 那类能力,可以去 #54 看讨论。

如果有新需求或明确场景,随时开新 issue 或在 #115/#54 留言,我会继续跟进。谢谢~
Walter-Hou • Apr 23, 2026
在我打开“降低透明度(Reduce transparency)”之后,部分窗口(例如 Ghostty)能正常显示授权弹窗,但是大部分其他情况( 例如 我正在使用Desktop)依旧还是这样


具体效果如下:


实拍视频如下:
https://github.com/user-attachments/assets/416082f0-69c3-4db9-8804-df2f8a0ae43f

另外我发现,在鼠标指针从授权弹窗内容区域移向刘海区域时,授权窗消失,当鼠标再次移回到授权按钮大致位置附近时弹窗再次出现
cynicalight • Apr 23, 2026
有一个比较小的事情也提一下,使用 tmux 不能跳转到对应的 windows,但是感觉 tmux 的支持可能实际实现起来会比较复杂,我可以看一下这部分。
wxtsky • Apr 22, 2026
谢谢信息!macOS 26.4.1 + M3 Pro 是个关键线索——approval card 的 transition 用了 `compositingGroup + blur + opacity` 的组合,在 macOS 26 这个版本的 SwiftUI 合成里可能有渲染差异(hover 触发 invalidation 就重绘正常了,符合你观察到的现象)。

本地没有 macOS 26 环境稳定复现,在彻底定位之前有两件事能帮上忙:

1. **验证方向**:打开 **系统设置 → 辅助功能 → 显示 → 降低透明度**(Reduce transparency)打开,再触发一次权限弹窗。如果这样就不透明了,基本能确认是 blur filter 层面的问题。
2. **workaround**:下个版本我加一个"禁用 approval 过渡动画"的设置开关,给遇到这个渲染 bug 的用户兜底。

辛苦帮忙试一下 1 ~
wxtsky • Apr 22, 2026
@lushengyin 代码里对 ghostty 有专门的 `activateGhostty` 实现(tmux 前缀匹配 → CWD → title),但本地一直没法稳定复现。帮忙收集一些信息好定位:

1. **ghostty 版本**(菜单栏 Ghostty → About Ghostty)
2. 打开 **Script Editor** 粘贴下面这段跑一下,贴出返回值或报错:
```applescript
tell application "Ghostty"
set allTerms to terminals
return count of allTerms
end tell
```
3. CodeIsland 跳转失败时,**Console.app** 搜 "osascript" 或 "Ghostty",有没有 AppleScript 相关的错误日志?
4. ghostty 启动方式(直接打开 ghostty → 在里面跑 claude?还是从别的 terminal 起的 claude 然后在 ghostty 显示?)

谢谢!
wxtsky • Apr 22, 2026
已修(commit 53b018d),和 #106 / #119 同一批修复。

简短版:新引入的 `JSONMinimalEditor` 做最小 diff 写回——只替换 `plugin` 键的 value range,其它字节(包括 `//` 注释、key 顺序、斜杠格式、trailing newline)完全保持原样。OpenCode 的 `mergeOpencodePluginRef` / `removeOpencodePluginRef` 已经切换过去。

详细修复思路见 #106 的评论。感谢你把问题拆得这么清楚,`jsonc-parser.modify()` 的思路是对的,只是实现用 Swift 原生写了一份(项目保持零依赖)。
wxtsky • Apr 22, 2026
已修(commit 53b018d)。

**根因**:installer 每次都走 `JSONSerialization.data(..., [.prettyPrinted, .sortedKeys])` 把整份 `settings.json` 重新序列化——这就一并带来了你列出的所有副作用(key 重排、`/` 转义、冒号前加空格、trailing newline 丢失、JSONC 注释被剥离)。`installClaudeHooks` 还有一条比 #105 更严重的路径:当 parse 失败时会 fallback 到空 dict 然后覆盖——这也是 #119 "ANTHROPIC_API_KEY 被吞" 的根因。

**修复**:新增 `JSONMinimalEditor`,做真正的最小 diff:
- 扫描原文件定位目标 key 的 value range
- 只替换那一段,其它字节完全保持原样
- 注释、key 顺序、斜杠格式、trailing newline 全部保留
- 当原文件无法解析时拒绝覆盖(#89 的守护从 opencode 扩展到了 Claude)
- 所有 5 条 JSON 写回路径(Claude / Claude forks / OpenCode / uninstall)全部切换过去

**测试**:新增 17 条断言,覆盖:
- JSONC 注释保留、key 顺序保留、斜杠不转义、trailing newline
- 幂等性(同一值写两次收敛)
- malformed JSON / 顶层不是对象时的 refuse-to-overwrite
- 具体的 ANTHROPIC_API_KEY 保留场景(#119)

下个版本发布后,Reinstall 一次即可。之前因为格式被重写产生的噪音 diff 也会消失。
wxtsky • Apr 22, 2026
已修(commit 53b018d)。根因是 1.0.21 的 hook 列表错误地包含了 `PermissionDenied`,但 Claude Code v2.0.73 的合法事件白名单里只有 `PermissionRequest`。现已从 Claude 的 events 中移除。

下个版本发布后,在设置里 **Reinstall** 一次即可自动清理掉 settings.json 里残留的错误 hook 条目。

感谢反馈!
Walter-Hou • Apr 20, 2026
1. CodeIsland 版本: 1.0.20
2. MacOS 版本: 26.4.1 (25E253)
3. 机型: Macbook Pro M3 Pro / 有外接新显示器(内置和外接显示器上表现一致)
4. 复现时机:每次都是,只要弹出授权确认窗就这样,没有任何前置操作。
5. 见下图(不方便录屏,见截图)
6. 没有这些额外的系统设置

remark: 截图工具是 CleanShotX

Discovery Source

GitHub Open Source GitHub Open Source

Aggregated via automated community intelligence tracking.

Tech Stack Dependencies

No direct open-source NPM package mentions detected in the product documentation.

Media Tractions & Mentions

No mainstream media stories specifically mentioning this product name have been intercepted yet.

Deep Research & Science

No direct peer-reviewed scientific literature matched with this product's architecture.