umputun/agterm

A genuinely good terminal

agterm – 具有完整控制 API 的极简 macOS 终端

是什么

  • 基于 Ghostty 渲染引擎的原生 macOS 终端应用。它提供了专注于 工作区(命名会话组)的极简 UI 和可编程控制界面。

主要功能

  • 工作区和会话 – 每个工作区包含多个命名 shell 会话,即使切换到另一个会话也能继续运行。
  • 控制 API(agtermctl) – 命令行工具通过本地 Unix 套接字与正在运行的 agterm 通信。脚本(或 AI 代理)可以创建会话、向其中输入内容、拆分窗格、运行叠加程序、读回终端文本、设置状态图标、显示原生选择器等。
  • 拆分、临时窗格和叠加层 – 水平或垂直拆分会话,打开临时“临时”终端,或在不妨碍底层 shell 的情况下运行全屏/浮动叠加层。
  • 恢复模式 – 重启时可以获得全新 shell、重新运行之前活动的命令,或使用 zmx 守护进程保持原始进程存活(实时模式)。
  • 代理集成 – 可选 技能 插件教 Claude Code、Codex 或其他代理学习 agtermctl 命令,让 AI 代理自行安排布局、运行叠加层并直接在侧边栏报告其状态(活动、阻塞、完成)。
  • 可扩展性 – 键绑定在 keymap.conf 中定义;任何命令都可以绑定到按键组合,将一行代码变成强大的 UI 操作。

如何使用

# 创建工作区和会话
ws=$(agtermctl workspace new demo)
sid=$(agtermctl session new --workspace "$ws" --cwd "$PWD" --no-select)

# 垂直拆分会话
agtermctl session split on --axis horizontal --target "$sid"

# 在隐藏会话中输入命令
agtermctl session type $'pwd\n' --target "$sid"

# 读取其输出的最后 10 行
agtermctl session text --target "$sid" --lines 10

该 API 涵盖窗口、窗格、叠加层、通知、选择器,甚至整个模型的 JSON 转储。

安装

  • 作为签名 .dmg 分发,适用于 Apple 芯片 Mac(macOS 14+)。
  • 也可通过 Homebrew Cask 安装:brew install --cask umputun/apps/agterm(包含 agtermctl 二进制文件)。
  • 可选代理技能插件可通过终端的 帮助 菜单或 Claude/Codex 插件命令安装。

适用人群

  • 运行多个长期运行的编码代理或后台进程并需要清晰视觉概览的开发者。
  • 喜欢脚本化终端布局并自动化窗口管理的高级用户。
  • 希望使用可由程序驱动而非手动操作的轻量级 macOS 终端的任何人。

相关项目

  • agterm-linux – Linux 的 GTK4 移植版。
  • agwinterm – Windows 重新实现。
  • 各种将代理状态推送到远程 tmux 会话等的配套工具。

许可证 – MIT。


所有细节均直接取自仓库的 README;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目