Skip to content

sheepbooy/Atoll

Repository files navigation

Atoll

Atoll

菜单栏 / 顶栏里的 AI 权限审批浮岛
Claude Code / Codex 发起权限请求时,不用切窗口,一眼批准或拒绝

Release MIT macOS | Windows 100% local

安装 · 接入 Agent · 视觉 · 开发 · 路线图


Atoll demo: 权限审批、置顶、归档

权限请求 → 展开审批 → 置顶 / 归档 → 自动收回


是什么

Atoll 是一个轻量桌面应用,住在屏幕顶栏(macOS 菜单栏 / Windows 工作区顶部):

  • 平时 — 紧凑胶囊,显示在线状态、活跃会话、待审批数量
  • 有请求时 — 自动展开,展示命令详情,一键 Approve / Deny / Always
  • 全程本地 — Hook 桥接 127.0.0.1:47777,数据不出本机

目前支持 Claude Code(CLI 与 Desktop)和 Codex CLI(macOS Apple Silicon 与 Windows x64)。


安装

macOS

推荐 — 一行命令:

curl -fsSL https://raw.githubusercontent.com/sheepbooy/Atoll/main/scripts/install.sh | bash

指定版本:ATOLL_VERSION=0.1.4 curl -fsSL .../install.sh | bash

其他 macOS 安装方式

Homebrew

brew tap sheepbooy/tap
brew install --cask --no-quarantine atoll

手动下载 — 从 Releases 下载 Atoll-aarch64.dmg,拖入 Applications 后执行:

sudo xattr -cr /Applications/Atoll.app

应用尚未公证。首次启动若被拦截,在 Applications 中右键 Open 一次即可。

Windows

推荐 — 一行安装(cmd、PowerShell、Windows 终端均可):

powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/sheepbooy/Atoll/main/scripts/install.ps1 | iex"

若在 命令提示符 (cmd) 中直接运行 irm ... | iex 会报错 'irm' 不是内部或外部命令——irm / iex 是 PowerShell 别名,cmd 无法识别。请使用上面的命令,或先打开 PowerShell 再安装。

已在 PowerShell 中时,可简写为:

irm https://raw.githubusercontent.com/sheepbooy/Atoll/main/scripts/install.ps1 | iex

指定版本:

set ATOLL_VERSION=0.1.11 && powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/sheepbooy/Atoll/main/scripts/install.ps1 | iex"
$env:ATOLL_VERSION = "0.1.11"; irm https://raw.githubusercontent.com/sheepbooy/Atoll/main/scripts/install.ps1 | iex

手动下载 — 从 Releases 下载 Atoll-x64.msi 并安装。

Windows 安装包(Atoll-x64.msi)从 v0.1.9 起随 Release 发布;v0.1.8 及更早版本仅含 macOS 产物。 首次运行若被 SmartScreen 拦截,选择「更多信息」→「仍要运行」。Hook 安装需要本机已安装 Node.js 且在 PATH 中。


接入 Agent

Atoll 通过应用内 一键安装 Hook,无需手动编辑配置文件。

首次安装 Hook 全流程

Agent 安装路径 额外步骤
Claude Code(CLI + Desktop) 菜单 → Settings → Agent hooks → Install Desktop:权限选 Ask permissions,安装后完全退出并重启 Claude Desktop,再在 Code 标签触发一次 Bash 权限验证
Codex 同上 → Install Codex 安装后在 Codex 运行 /hooks 并信任 Atoll hook

Hook 注册 PermissionRequestPostToolUseStop 等事件,写入 ~/.claude/settings.json(CLI 与 Desktop 共用)或 ~/.codex/hooks.json。安装时会写入 Node.js 的绝对路径,避免 Desktop 子进程找不到 node

卸载:Settings → Agent hooks → Uninstall(仅移除 Atoll 条目,保留你的其他 hooks)。

自定义端口:设置环境变量 ATOLL_HOOK_URL,或让 Atoll 写入 %LOCALAPPDATA%/Atoll/bridge.json(Hook 脚本会自动读取)。

快捷键

操作 按键
Approve Enter
Deny Delete
Always approve Shift + Enter

视觉

Atoll Logo 状态

菜单栏 Logo 反映 App 全局状态(与 Agent 无关):

Atoll Logo: 空闲 / 待审批 / 工作中 / 离线

状态 含义
空闲 在线监听,无 session、无 pending
待审批 有权限请求等待处理
工作中 有活跃 Agent 会话
离线 Hook 未就绪或 bridge 不可达

Agent 形象

每个 Agent 有独立的像素风 mascot;Gemini 复用 Clawd 造型并着色为绿色:

Claude / Codex / Gemini mascots

多 Session 与终端

多 session 菜单栏 + Claude Code 终端


开发

npm install          # 安装依赖
npm run tauri dev    # 启动桌面应用(需 Rust)
npm test             # 运行测试
npm run tauri build  # 打包

Windows 额外要求: Visual Studio Build Tools(C++ 工作负载)、WebView2 Runtime、Node.js(Hook 脚本)。

macOS 额外要求: Xcode Command Line Tools。

项目结构 & 文档素材
src/                          React 浮岛 UI
src-tauri/src/hook_bridge.rs  本地 HTTP 桥接(Claude + Codex)
src-tauri/src/transcript.rs   JSONL 会话 & Token 解析
scripts/atoll-*-hook.mjs      Hook shim(随应用分发)

重新生成 README 截图(macOS):

npm run capture:media    # 浮岛 UI 截图 + demo GIF
npm run export:brand     # Logo 状态 + Agent 形象

发布新版本(Git Bash / WSL / macOS):

./scripts/release.sh 0.1.11

推送 v* tag 后会并行构建 macOS DMG 与 Windows MSI,并上传到 GitHub Releases。


路线图

  • Apple 签名 & 公证、Intel Mac 构建
  • Windows 代码签名
  • Gemini / Cursor 等更多 Agent 适配
  • 新请求自动展开、通知中心提醒
  • 审批历史导出、会话搜索
  • Codex hook 适配

License

MIT

Built for developers who live in the terminal but refuse to context-switch for every y/n.

About

A floating approval island for local coding agents.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors