Skip to content

文件浏览器、编辑与预览

详情面板的 Files 页以当前工作目录为根。双击 Markdown、reStructuredText、HTML、SVG 或普通源码会在右侧以可编辑 Source 打开;图片、PDF、富文档、diff、Agent transcript 和二进制保持只读预览。目录用箭头或双击在树内展开。右键菜单包含:

  • Open:使用 macOS 默认应用;可执行文件或 .app 会再次确认。
  • Open in Aster:可选 Current Pane、New Tab、New Window、Split Right/Left/Top/Bottom。
  • New File… / New Folder…:文件选中时创建在其父目录,目录选中时创建在目录内部;不会覆盖同名项。新文件会在右侧以可编辑 Source 打开。
  • Rename… / Move to Trash:重命名后已打开 Pane 会继续跟踪新路径;删除进入系统废纸篓,可以恢复。
  • Copy Path / Copy Relative Path / Reveal in Finder:相对路径以当前 Files 根目录为准且不带 ./

File Pane 顶部左侧提供模式胶囊、发送到 Chat 和共享;中间显示文件名与更多菜单;右侧显示 ✓ SavedEdited、磁盘冲突或错误,并提供保存和关闭。Markdown、reStructuredText、HTML 与 SVG 使用 code/eye 在可编辑 Source 和 Preview 间切换;普通源码使用 code/lock 就地锁定或解锁。切换会保留源码选区、滚动位置和撤销记录;⌘S 原子保存,不会自动保存。存在未保存内容时关闭仍会询问保存、放弃或取消。外部程序修改文件时,未编辑的 Pane 自动重载;本地已有修改时显示 Modified on Disk,可从 … → Reload from Disk 明确放弃本地内容。

Preview 支持 Markdown(含 GFM 表格、任务列表等)、reStructuredText、HTML、SVG、常见图片/GIF、PDF、diff、Office/媒体/字体 Quick Look、二进制 hex 和 Aster 已识别的 Agent transcript。HTML/SVG/Markdown 预览禁用 JavaScript 与网络请求;Agent transcript 以会话视图渲染(角色区分、Markdown、工具折叠),可 Resume 或 Fork。二进制 hex 只按可见行绘制,超大文本和二进制只读取有界内容,避免单个 Pane 占满内存。远程 SSH 路径暂不支持 File Pane。

普通 UTF-8 文件可从 File Pane 点气泡图标“发送到 Chat”;文件必须是非符号链接且不超过 64 KiB,内容会先移除控制字符并遮盖常见 secret。无法读取或保存时,Pane 会显示明确错误,未保存内容不会被清除。

把 Finder 文件或目录拖到 Pane 边缘,可按高亮方向创建预览、文件浏览器或继承目录的新终端;把纯文本拖到终端会经过与粘贴相同的危险内容确认。HTTP/HTTPS URL 会在对应方向创建 Web Pane。一次最多处理 32 个 URL,符号链接和特殊文件不会被读取。

打开终端中的文件与链接

按住 点击终端中的目标即可用系统默认应用打开。Aster 能解析绝对路径、~/、基于当前 OSC 7 目录的相对路径、path:line:column、普通 URL,以及程序发出的 OSC 8 显式链接。

“设置 → 控制 → 链接协议”可识别全部合法协议,或把普通文字 URL 限制为 httphttpsfilemailto 加自定义 scheme;选择“自定义”后会显示协议列表配置按钮。OSC 8 显式链接不受列表限制,但不会绕过安全检查。“显示链接预览”控制按住 Command 悬停时左下角的完整目标提示;本地相对路径会按当前可信目录展开为绝对路径。提示使用固定半透明圆角底:浅色外观为黑底白字,深色外观反转为白底黑字,不会被当前终端主题染色。可点击链接会使用连续实线下划线并把鼠标变成手形。

“设置 → 控制 → 打开方式”分别选择链接、文件和文件夹的目的地。本地普通文件与文件夹可直接在 Aster 的 Editor / File Browser Pane 中打开,也可交给系统默认应用或 Finder;HTTP/HTTPS 网页可在只允许网页导航、不开放本地文件和自定义协议的 Web Pane 中打开。默认 Git 客户端和“自定义打开方式”都按 bundle ID 保存,应用移动或升级后仍由 macOS 重新查找。

首次打开外部网站、非标准 scheme(如 codex://)、可执行文件或 .app 时,Aster 会询问打开一次、始终允许或取消;可在同一设置区域点击“重置安全提示”清除全部例外,按钮会短暂显示“已重置”。可执行授权绑定当前文件身份,文件被替换或修改后会重新确认。导入设置不会导入另一台机器的安全授权。为避免阻塞或访问系统设备,FIFO、socket 和设备文件始终拒绝打开。

复制与粘贴

  • ⌘C、使用“编辑 → 复制”或终端右键菜单复制选区;按 ⌘V 粘贴。设置中可开启“选中即复制”“复制时去除行尾空格”和“复制后清除选区”,三项默认均关闭。启用“选中即复制”时会保留高亮以便继续扩展选区,不执行复制后的清除设置。
  • 粘贴保护默认开启。内容包含多行、末尾换行、sudo/su 或不可见控制字符时,Aster 会显示有界预览并要求选择“仍然粘贴”或“取消”。全屏 TUI 或可信 bracketed paste 可跳过普通多行告警,但不可见控制字符始终要求确认;内嵌的 bracketed 结束标记会被转换成可见文本,不能提前执行后续命令。
  • “编辑 → 粘贴为”当前保留括号粘贴和“粘贴并在 Composer 中继续”。依赖旧引擎私有输入状态的粘贴选区、Base64 文件和 Shell 参数转义入口暂时置灰。
  • “粘贴并在 Composer 中继续”会在 Agent Composer 可用时交接剪贴板文本;未打开 Composer 能力时该右键项置灰。
  • “编辑 → Prompt 队列…”在当前终端 Pane 中可用,不会因 Claude Code 或 Codex 的识别状态变化而置灰。它在 Pane 底部打开输入条;按 Return 或右下角上箭头把内容加入上方列表。已在设置里安装 lifecycle hook 的 Claude Code / Codex,队列会自动发送:Agent 空闲(等你输入下一条)时立刻发出队首,正在执行时先排队、等这一轮结束再发,并且一次只发一条。等待权限确认(awaiting-input)时不会自动发送 —— 那时屏幕上是确认选择器,替你回车等于批准了一次工具调用。没有安装 hook 的普通 CLI 保持全手动。
  • 任何时候都可以点击某项左侧的 ↳ 图标立即插队提交,右侧垃圾桶可移除尚未发送的项。关闭输入条不会取消队列,展开按钮可输入多行,队列仍受只读和终端输入模式限制。
  • “编辑 → 发送到聊天…”以及终端右键“发送选区到 Chat”会打开确认面板。可同时选择当前选区与当前终端 transcript,并从当前工作区所有运行中的 Claude Code/Codex Pane 选择接收端;点击 Send 会以普通键入预填 Comment 和清理、脱敏后的上下文,不会自动回车。

终端程序可用 OSC 52 请求访问系统剪贴板。“设置 → 控制 → 复制与粘贴”分别提供“允许 / 每次询问 / 拒绝”:写入默认允许,读取默认每次询问。每次询问只授权当前请求,不会记住;连续请求在提示后有 5 秒安全冷却。导入配置不能把读取权限静默改成“允许”;拒绝或超限请求不会读取剪贴板。

选择终端文本

  • 拖动选择字符,双击选择单词,三击选择整行;按住 Shift 点击可从现有锚点扩展。按住 Option 拖动会选择矩形列。
  • Vi / Mark Mode 可用键盘移动和扩展选区;鼠标选择与 Option 矩形选择由 Ghostty 处理。
  • vim、tmux 等程序开启鼠标报告时,Shift 是否保留为本地选择由 Ghostty 与前台程序协商。
  • “设置 → 控制 → 选择”的选中即复制、输入时清除、复制后清除和行尾空格处理会实时应用;旧引擎专属的 Shift 方向键与退格删除开关暂不生效。

滚动终端历史

  • 滚轮或触控板浏览 normal buffer;平滑滚动开启时按像素移动,并在手势结束时对齐字符行。向终端输入会回到最新内容;新输出只在视口已位于底部时跟随——上滚查看历史时,正在运行的命令或 TUI 的持续输出不会把画面拉回底部。
  • Shift+Page Up / Page Down 向上或向下翻页,Shift+Home / End 跳到最早或最新内容;Command+Page Up / Page Down 按 Shell 命令跳转。相同命令也位于“显示 → 终端滚动”。
  • “设置 → 控制 → 滚动”可关闭平滑滚动,并选择滚过末尾或开头时,把最后内容行、光标行或第一内容行停在视口顶部、中部或底部。全屏 TUI 的 alternate screen 始终禁用越界空白。

渲染与持续输出

Aster 使用 Ghostty 的 Metal renderer。PTY 读取、VT 状态、scrollback 和绘制由同一终端 内核管理,Aster 只响应最终渲染请求;持续大量输出不再经过旧的 AppKit 字节批次与 Core Graphics 网格路径。

输入与安全键盘

  • 键盘、IME、修饰键和 Kitty 键盘协议由 Ghostty 编码;Aster 不再额外猜测普通 Shell 的行编辑序列。
  • “编辑 → 插入”可选择一个或多个文件/文件夹路径,或调用系统交互式截屏;结果会以安全转义后的路径预填到当前前台程序的输入框(包括 Codex/Claude 等 TUI),但不会自动执行。“编辑 → Insert from iPhone”会显示附近可用的 iPhone/iPad 拍照或扫描入口,完成后通过同一入口把私有临时文件路径插入当前输入框。手机导入只接受常见图片或 PDF,单项最大 32 MiB。
  • “编辑 → 编辑器”(⇧⌘E)会在当前 Pane 底部打开 Composer 输入区,可直接输入、发送或加入 Prompt 队列;不会弹出文件选择器。需要编辑本地文件时,请从“文件”、文件树或路径入口打开。“Prompt 队列…”(⇧⌘M)和“发送到聊天…”分别打开当前终端的队列输入条与发送确认面板。
  • 新安装默认关闭“Option 作为 Meta”,因此 Option 可继续输入重音和特殊字符;需要 Emacs/Vim 风格 Esc 前缀时可在“设置 → 控制 → 键盘”选择左右两侧、仅左侧或仅右侧。VT100 数字键盘模式默认允许,关闭后即使前台程序请求 DECKPAM,小键盘也保持输入数字。
  • “设置 → 控制 → 鼠标”可配置右键为菜单、复制、粘贴、按选区自动选择或忽略;无论怎样设置,Control + 右键 始终打开菜单。还可选择 TUI 鼠标上报的绕过修饰键、输入时隐藏指针、悬停聚焦 Pane,以及在可靠 Shell 提示符行单击移动光标。
  • “自动安全输入”默认开启。当前聚焦终端进入 canonical 隐藏输入(例如密码提示)时,Aster 会在输出到达及首个按键发送前启用 macOS Secure Event Input;Vim、less 等 raw-mode TUI 不会误占用。恢复回显、失焦、进程结束或切到其它应用后自动释放。也可从“编辑 → 安全键盘输入”手动开启或关闭;系统保护真实生效后,主工作区标题栏右侧显示蓝色 SECURE INPUT 胶囊。手动状态在 Aster 失活时暂停,切回后恢复。
  • Codex、Claude 和普通 Shell 输入框保留 Ctrl+ACtrl+ECtrl+KCtrl+UCtrl+W 等常用行编辑控制键;Aster 的 ⌘←⌥← 等原生菜单快捷键不会占用这些组合。

字号与全屏

  • 在“显示”菜单选择“增大字号”“减小字号”或“重置字号”,也可使用 ⌘=⌘-⌘0。字号范围为 9–32pt,重置值为 13pt,并会同步应用到所有已打开终端。
  • 选择“显示 → 进入全屏幕”或按 Fn+F 切换当前工作区窗口;进入后同一菜单项会显示为“退出全屏幕”。

只读模式

  • Aster Vi / Mark / Hint Mode 使用 Ghostty retained buffer 的稳定坐标;输出或窗口 reflow 使旧锚点失效时会安全退出当前模式。
  • “Shell → 只读模式”或 ⌘K 命令面板按 Pane 切换只读。锁定后键盘、IME、粘贴和 TUI 鼠标报告不会到达程序;输出、滚动、选择、复制和查找仍可用。编辑器 Pane 也会停止接受修改。关闭并恢复工作区后只读锁不会保留。

Autocomplete 与 Inline Suggestion

Autocomplete 使用 Ghostty 的原始 PTY observer,继续显示 inline suggestion 和候选面板; inline suggestion 会使用当前终端字体并与输入文字保持同一行、同一基线,不覆盖 prompt 或已经 回显的命令。接受候选、隐私过滤、本机学习与目录上下文规则保持不变。

输入行为空时不会出现任何候选:没有输入就没有意图,把整个命令库和全部历史列出来只是噪音, 而且面板一旦弹出就会吃掉回车。至少敲一个字符后才会出现 ghost 和候选面板。

Tab(或设置中的其他接受键)只接受屏幕上正在显示的 Aster inline suggestion;suggestion 未显示时按键原样交给 Shell。如果你在 Shell 里启用了 zsh-autosuggestions、fish autosuggestion 等插件,输入行尾的灰色建议由 Shell 绘制,Aster 的 inline suggestion 会自动保持隐藏避免重叠; 此时接受灰色建议请使用插件自己的按键(zsh-autosuggestions 默认是 End),Tab 仍执行 Shell 自身的补全。想改用 Aster 的候选体系,可在 Shell 配置中停用对应插件。

候选来自内置命令/子命令/选项、当前目录文件和文件夹、Shell alias、本机历史、固定命令、README shell code block 和失败纠错。文件名会自动按 Shell 规则转义。Aster 不会自动扫描 package.json、Makefile 或 justfile;需要固定项目命令时,先在“设置 → Shell → Aster CLI”安装 CLI,然后在目标目录运行:

bash
aster learn 'npm run deploy'

“本机学习”默认开启。学习库只保存脱敏后的命令、目录和计数,不保存输出;--password--token--api-key 等值会被移除,退出码 127、明显错误的长选项和“历史忽略模式”匹配项不会保留。没有详细内置结构的命令只会以 --help-hhelp 固定参数在禁网且禁止写入文件的沙箱中探测,并限制为 2.5 秒和 128 KiB;远程会话不会读取本机项目文件或运行本机 help 探测。关闭本机学习后,历史、固定命令、README、纠错与 help 探测全部停用,内置规格和文件补全仍可用。

Fig 命令清单不会后台更新。控制页会显示当前规格数量和版本;需要刷新时,在同一设置区域点击“立即更新”,本地 help 规格不会被覆盖。“清除…”可分别删除命令历史、固定命令和目录频率数据,不删除内置、手动更新或 help 规格。

Unicode、双向文本与终端图片

  • Aster 支持组合字符、CJK 双宽字符、emoji ZWJ/肤色/旗帜序列、text/emoji variation selector,以及 24-bit truecolor、256 色和完整 SGR 样式。圈字母数字默认按两列显示;可在“设置 → 高级 → 加宽 East-Asian-Ambiguous Block”选择其它 block。该宽度策略只影响新建标签和之后写入的字符。
  • “设置 → 外观 → 文本”可选择关闭、标准或 discretionary 连字,并设置粗体、斜体与 blink 的渲染策略。blink 默认稳定显示;选择动画后才会闪烁。
  • 双向文本默认开启。希伯来文、阿拉伯文和混合方向行按阅读顺序显示,但复制、查找和粘贴仍使用程序写入的逻辑顺序;左右键与鼠标命中跟随视觉位置。遇到自行排版 RTL 的全屏 TUI,可在设置中关闭。程序进入 ECMA-48 mode 8 时 Aster 会自动暂停隐式重排。
  • 终端程序可以显示 iTerm2、Kitty 和 Sixel 图片。Aster 会限制输入、分片、解压、像素尺寸与缓存;损坏、取消或超限图片会被丢弃,不影响之后的正常终端输出。
  • 应用包原样内置 Otty 1.3.1 使用的 JetBrains Mono、Office Code Pro 和 Symbols Nerd Font Mono,同时保留 Aster Nerd Symbols fallback;无需另行安装这些字体。即使选择的基础字体没有 Powerline 或 Nerd Font 图标,终端仍能解析 BMP 与补充平面符号。

任务进度、徽章与通知

终端程序可通过 OSC 9;4 报告百分比、不定进度、错误和完成状态;支持 Shell Integration 时,Aster 也会为“设置 → 高级 → 自动进度命令”列表中的常见慢命令自动显示运行状态。列表按空白分词前缀匹配,例如 git push 会匹配 git push origin main,但不会匹配 git pushd;清空列表即可关闭自动匹配。

标签会在名称右侧显示运行、刚完成、未读完成、错误和等待输入状态;Agent 在处理、请求确认、恢复处理和完成之间切换时,图标会就地变化,不会重建终端或打断输入。未安装 lifecycle hook 时,Claude Code / Codex 启动后连续约 5 秒没有输入或输出,标签会停止旋转;再次输入或收到输出会恢复运行状态。已安装 hook 时始终以 Agent 的精确 lifecycle 为准,不会因静默推理而提前停止。等待输入只在 password、[y/n]、yes/no 或 Press Enter 提示停留约 1.5 秒后出现,输入任意内容即清除;Agent 完成后的未读圆点也会在用户继续输入后清除。外观设置可开启 Dock 运行动画;错误标红默认开启,点击 Dock 图标会跳到失败标签并清除当前提示。

安装 aster CLI 后,可以包装一次性任务或直接设置当前标签徽章:

bash
aster watch make deploy
aster watch -q cargo test
aster tab badge --kind awaiting-input
aster tab badge --clear

watch 保留被包装命令的原退出码;-q 只关闭本次完成通知,不关闭进度和徽章。

终端应用可使用 OSC 9、OSC 777 或 OSC 99 发送 macOS 通知。OSC 99 支持独立标题/正文、紧急级别、base64、分片和同 ID 替换。Shell 设置可分别控制:成功、错误与 watch 完成通知,Shell Controlled,总在前台/仅未聚焦标签/关闭的前台策略,Dock 弹跳,错误退出 beep、BEL,以及错误/完成/应用通知是否附带声音。系统权限行显示 macOS 当前状态并可打开系统设置。

标题权限位于“设置 → 高级”:Shell Controlled 控制 OSC 0/1/2 是否能修改标题;“标题报告”控制程序能否读取标题,默认关闭。OSC 52 剪贴板权限与安全键盘输入仍分别位于“控制”。

MIT License · 不含遥测,不上传数据