跳到正文

Working with Agents ​

Aster 支持 Claude Code、Codex、OpenCode、Cursor CLI、Kimi Code、Pi、omp 和 Grok Build。在“设置 → 智能体”中,每个 provider 会显示图标与检测到的 CLI 绝对路径;从 Finder 或 Dock 启动 Aster 时,也会识别 ~/.local/bin、Homebrew 及常见 Node 版本管理器里的安装。右侧“已安装 / 关闭”和开关专指 Aster 受管 lifecycle 集成,与 CLI 路径是独立状态;展开一行后可另行控制它是否出现在快速启动入口,并为 wrapper、环境配置或自定义可执行文件设置结构化启动命令。安装和卸载只改动带 Aster 标识的 hook/plugin;用户自己的配置保持不变,变更后应重启对应 Agent。Grok Build 的用户级 hook 写在 ~/.grok/config.toml(Grok 原生 [[hooks.Event]] 格式),与 Claude Code 的配置互不影响;需要 Grok ≥ 1.0.25,旧版本不读取 config.toml 里的 hooks。用户级 config.toml 的 hook 不需要 /hooks-trust(那只针对项目目录 .grok/hooks/)。Grok 会话暂时不会出现在 Agent 历史浮层或 Open Quickly。

  • lifecycle hook 把 processing / idle / awaiting-input 归一到所属 PTY,驱动标签徽章、完成/等待通知和“处理期间阻止睡眠”。不会读取或保存 prompt 正文。hook 先尝试写 /dev/tty;Claude Code 2.1.x 启动 hook 时没有控制终端,此时会沿父进程链找到 Pane 的终端设备再写入,因此无需改动 Claude 配置。
  • “Shell”菜单对齐 Otty 的完整结构:顶部是“重命名标签页…”“设置标签页前缀…”(共用同一原生对话框,后者预选动态前缀模式)与“清屏”(⌘K);随后是围绕当前工作目录的“拷贝路径”“在访达中显示”“打开方式”(无可靠 CWD 时置灰);中段保留 Vi/Mark/Hint、只读模式与 Composer;底部是“Git”子菜单(图形客户端入口 + Commit/Push/Pull/Fetch/Merge…/Rebase…,全部只预填命令到终端,由你回车执行)与“通知与权限…”(跳到设置的 Shell 分类)。“打开方式”与“Git”和窗口标题胶囊弹层显示完全相同的条目。
  • 打开“Shell”菜单时,Aster 会根据当前聚焦 Pane 显示 Codex、Claude 等对应的 Agent 子菜单;切换分屏后菜单随焦点更新,不会操作同一标签里的其它 Agent。菜单展开后,Fork 动作会固定作用于当时的工作区,不会因设置页或其它窗口切换到前台而失效或落到别处。在“设置 → 智能体”安装对应 lifecycle 集成并重启 Agent 后,会话会自动关联,可拷贝会话 ID、查看会话历史,或 Fork 到上下左右分屏、新标签页、新窗口。Agent 子菜单的“查看会话历史”只显示当前项目的会话(优先按已关联会话的项目归属判定,尚未关联时按该 Pane 的工作目录);要浏览全部项目的历史,请使用命令面板(⇧⌘P)里的“Agent 历史”。Codex 首次加载新 hook 时还需运行 /hooks 审核并信任 Aster 条目;安装器会迁移旧版 Aster 遗留的非法顶层 hooks 布尔配置。尚未收到可信会话 ID 时,复制与 Fork 会保持禁用。
  • Agent 历史浮层(Agent 子菜单“查看会话历史”按当前项目打开;命令面板“Agent 历史”显示全部)与 Open Quickly 可搜索已知 provider 的本机会话记录,并使用 provider 原生命令 Resume 或 Fork;不支持 Fork 的 provider 会明确拒绝。在 Agent 历史里按 ↩ 或点“打开”,会像 Otty 一样把该会话作为新标签打开:左侧 TABS 增加一项(标签名即会话标题),右侧只读渲染完整 transcript:你的消息显示为浅色卡片、Agent 回复按 Markdown 渲染,连续的工具调用折叠成一行摘要(如「Claude · 30×Bash, 26×Edit」,点击展开);页头显示标题、会话文件与项目归属,并提供 Resume / Fork。超长会话按单条与总量上限截断并明确标注;同一会话重复打开只会选中已有标签。
  • 状态栏 AI 用量(默认关闭):在“设置 → 智能体 → 状态栏 AI 用量”打开,或直接用菜单“显示 → 显示 AI 用量”/命令面板“显示 AI 用量”(会顺手打开这个开关)。打开后 macOS 顶部状态栏多一个图标,旁边是 Claude、Codex 的 5 小时已用百分比(没有 5 小时窗口就显示每周),到 80% 变警示色、95% 变红;有 Agent 在等你输入时图标上亮一个红点。点图标从图标正下方展开一个浮动窗(有展开动画),可拖动、可缩放,会记住你调过的大小;每次都回到图标下方,因此换屏幕或换 Space 都跟着当前那块屏走,展开后切到别的应用也留在最前。点图标打开后把鼠标移开(不管有没有进过浮动窗),或鼠标进过浮动窗之后再移开,它会等约半秒自动收起(手滑划出去马上回来不会收;正在拖大小时也不收);用菜单或命令面板打开、鼠标还没碰过它时不会自动收起,点图标或点窗口左上角的关闭按钮收起。浮动窗有三页:配额——每个账号一张卡,账号名旁边是订阅档位(如 Max 20x;Codex 的 Pro 会标出 Pro 100 / Pro 200 / Pro 500 是哪一档),下面列出 5 小时、每周和模型周窗口的进度条与“多久后重置”;Claude 的数据全应用共用一份、共用一条请求时间线(只开着状态栏图标时每 300 秒拉一次,有 Claude 在跑时提高到 90 秒),Codex 每 300 秒起一次 codex app-server 问官方额度(本机 rollout 文件只记录某个会话最后一次响应时的数字,别处用掉的看不到,所以只在 codex 命令找不到或版本太旧时才拿它兜底);Cursor 读它自己的登录凭据问官方用量接口,显示本计费周期的已用比例;Antigravity 的配额没有本地缓存,只能在 Antigravity 应用正在运行时读到它的本地服务(agy 命令行从 1.2.2 起不再对外提供这个数据)——这条尚未在真机上验证过,可能始终不出卡片。Cursor 与 Antigravity 用的都是各家未公开的接口,版本一变就可能读不到——读不到时那张卡片直接消失,不会弹窗报错。其它 Agent 没有把订阅配额存在本机,所以没有卡片。Token——按今天 / 7 天 / 30 天 / 全部汇总本机用掉的 token,分输入、缓存写入、缓存读取、输出四列,可按 Agent 和按项目看排行,点某个项目展开它过去一年的活动热力图;统计覆盖 Claude Code、Codex、Pi、Grok Build、Gemini CLI、droid、OpenCode、Hermes 和 Antigravity CLI(agy)(droid 的记录没有工作目录,归到“其他”;Antigravity 只统计 agy 命令行的会话,不含 Antigravity 应用里的;Cursor、Copilot、Qwen 等在本机不留 token 数据,无法统计),只读各家的本地会话记录里的数字、时间和工作目录,不读对话正文、不联网、不换算金额;同一个仓库的 git worktree 会并到主仓库名下。第一次打开要把历史记录全部读一遍,几 GB 的记录可能要一两分钟,有进度显示,中途关窗下次接着读,之后只读新增的部分。会话——所有窗口里正在跑的 Agent 一人一张卡,显示等待输入 / 运行中 / 已完成 / 空闲,以及该 Pane 整棵进程树的 CPU、内存和进程数;等待输入的排在最前,点卡片跳回那个 Pane。窗口开着时卡片不会因为状态变化而换位置,重新打开才重排。这个功能不影响终端:开关关着什么都不跑;浮动窗关着只剩每 300 秒一次的 Claude 配额请求;token 统计和进程占用只在对应那一页开着时才工作。
  • Composer 支持多行草稿、普通文件附件、固定/浮动与取消;发送时使用 bracketed paste,仍服从只读和粘贴保护。Prompt Queue 只按 lifecycle hook 的 idle 自动派发,processing 与 awaiting-input 都只排队;未安装 hook 时不自动发送,每一项都由你点击左侧发送图标提交。
  • 让 Agent 自己操作 Aster(skill):Aster 附带一份 skill 文档(aster --skill 可打印),教 Claude Code / Codex 用 aster 命令读旁边 pane 的输出、启动或等待另一个 Agent、发送按键与通知。在“设置 → 智能体”点“安装 Aster skill”会把它复制到 ~/.claude/skills/aster 或 ~/.codex/skills/aster,并写入版本标记;Aster 升级后设置页会提示“需要更新”。只会接管带 Aster 标记的目录:你自己写的同名 skill 或符号链接不会被覆盖,卸载也只删 Aster 装的那份。skill 里的写入动作(提交 prompt、发送文本、聚焦)同样需要“设置 → 控制 → IPC 允许发送输入”,没开时 Agent 会收到 write_not_allowed 并转而请你手动操作。skill 只在 Aster 的终端里生效(ASTER_ENV=1),Agent 在别的终端里不会误用它。
  • Send to Chat 可接收终端选区、当前可见 transcript 或文件上下文。上下文被包在 untrusted-context 中,移除终端控制字符、遮盖常见密钥并执行 128 KiB 总预算;Aster 不声称能识别所有业务敏感信息,发送前仍应复核。终端发送面板会以普通键入预填目标 Agent 输入框,最终提交始终由你决定。

MIT License · 崩溃报告与 CLI Agent 记忆提炼默认关闭