CometixCode
插件 / 代理非官方的 Claude Code 终端 UI 复刻:用 Rust 按 1:1 逐文件移植到 iocraft 这套 React 风格 TUI 框架上。
- terminal-ui
- rust
- reimplementation
- unofficial
把全部 15 个 Claude Code hook 事件接进 Clawd on Desk 桌面宠物,权限请求变成可等待的桌面卡片。
clawd-conduit 是套在 Clawd on Desk 桌面宠物外面的接线层,让 Claude Code 会话有一个看得见的「身体」。它把 14 个生命周期事件作为异步 command hook(5 秒超时、绝不阻塞会话)转发给 Clawd 自带的 clawd-hook.js,再把最要紧的一个事件——PermissionRequest——单独走阻塞式 HTTP hook 直连 Clawd 本地端口、等待 600 秒:权限请求以桌面卡片弹出,Cmd+Shift+Y 允许、Cmd+Shift+N 拒绝,卡片永不自动消失,「它三分钟前就停下来等我点允许」的空转就此归零。每个事件都映射到宠物状态(取自 Clawd 自己的 EVENT_TO_STATE 表):子代理并发时抛接球、上下文压缩时扫地、工具失败时冒烟。幂等的 install.sh 带时间戳备份 settings.json、按事件合并 hook 且保留你原有的、补全 node 与应用的绝对路径(hook 跑在非登录 shell 里,裸 node 会静默失败)、回写后校验 JSON,可重复执行——clawd-hook.js 的出现次数恒为 14。
跑长会话、人却离开终端的 macOS 用户:宠物一眼告诉你会话在干活、卡在等确认、还是出了错;权限卡片免去回终端点允许的往返。
# 1. 先装 Clawd on Desk 本体(不随本仓库分发):
# https://github.com/rullerzhou-afk/clawd-on-desk/releases
git clone https://github.com/ssssssanjiu/clawd-conduit.git
cd clawd-conduit && bash install.sh
# 2. 验证:
python3 -c "import json;h=json.load(open('$HOME/.claude/settings.json'))['hooks'];print(len([k for k,v in h.items() if 'clawd' in json.dumps(v).lower() or '23333' in json.dumps(v)]),'events')"
lsof -nP -iTCP:23333 -sTCP:LISTEN
# 3. 开一个新会话——hook 只在会话启动时加载仅限 macOS。依赖单独安装的 Clawd on Desk 应用——宠物和它在 23333 端口的本地服务就是全部显示层。异步 hook 的失败是静默的:宠物不动时,先手动跑一条 hook 看报错,再确认 Clawd 在运行(pgrep -f "Clawd on Desk"),然后开新会话——hook 永远不热加载。用 --dangerously-skip-permissions 或动作已在白名单时不会弹权限卡——这是 Claude Code 的行为,不是 bug。参数取舍(权限走阻塞通道、卡片不自动消失)来自作者三个月的日常使用。MIT。
收录日期
非官方的 Claude Code 终端 UI 复刻:用 Rust 按 1:1 逐文件移植到 iocraft 这套 React 风格 TUI 框架上。
把 AGENTS.md、CLAUDE.md 里的自然语言规则变成钩子级强制:每次编辑都被评审,违规当场修复。
用 Jev 评分式修剪取代有损压缩摘要的 Claude Code 插件:过期的工具调用被丢弃,保留下来的内容原样不动。