Alas 智能编程工作区
在一个原生 Mac 窗口中运行、审查并合并多个工作树里的智能体任务。
按维度查看评分与理由
最小权限方面,夜间发布明确禁用持久化凭据,并把写令牌、签名证书、缓存写入和公开发布限制在 main 构建;但产品本身可操作 SSH、Git、浏览器、MCP、远程助手及手机控制,源码摘录没有完整说明运行时权限边界,因此为 2。用户确认有内联权限请求及手机端应答,但合并、远程引导、工作树创建和浏览器自动化是否逐项确认并不明确,因此为 2。README 说明了 SSH、HTTP/WebSocket、手机配对、外部 MCP、gh/glab 认证等主要数据路径,但没有数据保留、监听范围或遥测说明,因此透明度为 2。CI 对令牌、证书、钥匙串和凭据助手的隔离较细致,但应用如何保存或传输 SSH、会话及配对数据未给出,因此敏感数据处理为 2。依赖版本、子模块修订、锁文件、工具链和缓存指纹均有具体控制,且缓存会重新验证,足以给依赖安全 3。外部副作用被清楚列出,但其确认和授权策略不完整,因此为 2。工作树、stash、Git 历史、合并编辑器及 workspace-edit undo 提供恢复基础,但未见对合并、远程操作和代理动作的统一回滚承诺,因此为 2。MIT 文件明确标注作者,依赖也被具名链接;不过发布者企业身份未验证,且没有更完整的组织归属或安全联系,因此来源归属为 2。
README、构建脚本测试和 CI 大体一致,并展示了失败不启动应用、缓存失效及缺失产物重建等处理;但 Rust CI 命令写成了“cargo tes”,且 README 所列 CLI/helper Rust 版本与工作流矩阵的 1.98.1 不一致,所以自洽性为 2。依赖被锁定并有递归子模块、缓存和冷构建说明,但首次构建依赖网络及 Homebrew/Xcode/rustup,且仅支持较新的 macOS/Xcode,因此可用性为 2。工作流设置超时、非交互环境和退出码传播,测试也检查构建失败不会继续启动;但几乎没有用户界面错误消息或恢复指引证据,因此失败消息为 2。
目标受众和场景覆盖本地及 SSH 开发、并行工作树、终端与原生聊天、审查、手机接管和多种代理,证据具体,故为 3。macOS 15+、Xcode 26、ACP/LSP、gh/glab 以及外部代理认证等边界有说明,但网络、账号、远端平台及功能降级边界未系统化,因此能力边界为 2。代理检测、hooks、ACP 注入、权限提示及工作流触发被描述,但自动检测或自动注入的精确条件、误触发防护和禁用方式不足,因此触发精度为 2。环境要求、构建顺序、工具链、架构、远端 Linux helper 和 CI 平台说明充分,环境适配为 3。
README 以安装、价值、功能、开发、技术栈和许可证组织,并用表格映射依赖角色,信息架构为 3。Homebrew、DMG、从源码构建、子模块和先构建 Ghostty 的要求都很具体,安装说明为 3。Alas、CLI、helper、构建目录和环境变量命名在材料中一致,命名稳定性为 3。存在命令示例和大量功能说明,但没有完整的用户操作示例或 FAQ,因此为 2。材料披露了平台限制、首次构建成本、CI 跳过的测试套件和 headless 挂起问题,但未汇总产品级已知限制,因此为 2。完整 MIT 文本与 README 链接一致,许可证为 3。夜间发布记录 SHA 和变更,但未见正式版本策略或独立 changelog,因此为 1。许可证给出个人作者,工作流提供持续构建和发布路径,但无维护政策、安全报告渠道或明确团队职责,因此维护责任为 2。
输出集中在可直接审查和操作的工作区,包括持久终端、差异、评论、编辑器、CI 证据、合并和移动端控制,输出可用性证据充分,故为 3。将代理执行、工作树、审查、反馈和交付集中在同一界面,相对独立终端与 Git 工具具有清晰增量价值,故为 3。缓存、并行工作树和会话持久化降低重复成本,但冷构建耗时、依赖规模、远程/移动服务成本及 AI 调用成本未量化,因此成本收益为 2。
多数技术声明可追溯到具体依赖版本、构建命令、工作流步骤和测试脚本,声明可追溯性为 3。README 的构建、缓存、CLI/helper 和测试主张得到工作流及脚本测试交叉支持,故交叉印证为 3。材料会明确标注观察到的 CI 挂起和跳过项,但大量产品功能仍是 README 描述,未由所给代码或测试逐项支持,因此事实与推断分离为 2。
- 所给 Rust CI 步骤使用“cargo tes”而非“cargo test”;在修正前,不应把该工作流视为成功执行 Rust 测试的证据。
- README 与 CI 对 CLI/helper Rust 工具链版本的记录不一致,应确认实际权威版本。
- 部分 Git 服务和工作树测试在 CI 中被明确跳过,README 中相应 Git 功能不应据此视为已由 CI 全面验证。
- 应用可跨 SSH、手机 WebSocket、浏览器自动化和 MCP 操作工作区;部署前应核实监听范围、配对认证、密钥存储、数据保留及逐项确认策略。
- 本评估仅基于给定静态文件,未执行构建、测试、签名验证或网络行为检查。
这个 Agent 能做什么,适合哪些场景?
Alas 是面向 macOS 15 及以上版本的原生开发工作区,把代码智能体、Git 工作树、终端、文件、差异审查和合并流程集中在一个窗口中。智能体既可在基于 libghostty 的持久终端中运行,也可通过 ACP 在原生聊天面板中工作;已明确支持 Claude Code、Codex、Cursor、Gemini、OpenCode、Pi、OMP 和 Copilot。每个工作树会保留自己的终端会话、标签页和滚动位置,用户可以查看分支、提交或范围差异,并将行内评论交给智能体回复和解决。应用还提供文件编辑与搜索、Git 暂存和冲突处理、LSP 代码导航、Tree-sitter 高亮、Markdown/Mermaid 渲染以及可由智能体操作的网页预览。它可以通过 SSH 操作远程 macOS 或 Linux 主机,并由桌面端内置的 HTTP/WebSocket 服务向配对的手机网页客户端提供实时会话控制。核心桌面应用采用 SwiftUI 与 AppKit,另含 Rust 编写的 alas CLI、MCP 服务和远程 SSH helper;许可证为 MIT。
用户为任务创建或切换 Git 工作树,然后在该工作树内启动 Ghostty 终端会话,或通过 Agent Client Protocol(ACP)打开原生智能体聊天。Alas 将工具调用、计划和权限提示显示在聊天中,并允许排队、编辑、重排或定时发送后续提示;还可附加 issue 上下文、使用听写,并按项目配置外部 MCP 服务。它读取工作区文件和 Git 状态,提供模糊文件搜索、内容搜索、LSP 定义跳转与补全、Tree-sitter 语法高亮,并生成可操作的文件或 hunk 级暂存、行内差异、stash、历史记录和三方冲突编辑视图。审查者可从 ⇧⌘R 面板打开分支、提交或范围审查,在任意位置留下行内评论;智能体通过内置审查工具读取、回复和解决这些评论。对于检测到的 GitHub PR 或 GitLab MR,它能生成标题和描述草稿、汇集 CI 日志与检查结果,并在应用内完成合并或进入合并队列。独立的 alas CLI 能打开文件、创建或切换工作树并启动审查,同时会作为 MCP 服务器自动注入 ACP 会话,使智能体能够导航文件、通知用户、启动委派会话和处理审查意见。SSH helper 在远程 macOS 或 Linux 主机上执行终端、智能体、文件、搜索和 Git 操作;手机网页客户端则可查看会话、发送或停止一次运行、响应权限请求及管理工作树和提示队列。
- 同时处理多个功能或缺陷的 Mac 开发者,可让每项任务占用独立 Git 工作树,并在同一窗口保留各自的终端、智能体对话和差异。
- 使用 Codex、Claude Code 或其他已支持编程工具的工程师,可在终端模式与 ACP 原生聊天模式之间选择,并查看内联工具调用、计划及权限请求。
- 需要反复审查智能体改动的维护者,可直接在分支、提交或范围差异中留下行内评论,让智能体读取、回复、修改并解决反馈。
- 通过 SSH 使用远程开发机的团队成员,可从 Alas 操作远程终端、文件、搜索、Git 和智能体任务,并在断开桌面连接后让远程运行继续。
- 需要暂时离开电脑的开发者,可用配对的手机网页客户端监看会话、回复权限请求、发送提示或停止运行。
- 负责交付 GitHub PR 或 GitLab MR 的开发者,可在差异旁检查 CI 证据、起草标题和描述,并在应用内合并,包括使用合并队列。
这个 Agent 有哪些优点和局限?
- 把多个仓库和工作树的终端、智能体对话、文件与差异绑定在同一原生窗口中,并按工作树保留会话、标签页和滚动位置。
- 同时支持基于 Ghostty 的长期终端和基于 ACP 的原生聊天,且明确覆盖多种编程智能体,而非绑定单一模型供应商。
- 审查意见可由智能体直接读取、回复和解决,减少从差异工具复制反馈到聊天窗口的操作。
- 内置从 Git 暂存、冲突编辑和 CI 证据检查到 GitHub/GitLab 合并的完整交付路径。
- SSH helper 和手机网页客户端覆盖远程机器、断线后持续运行及离开桌面后的权限响应场景。
- 桌面应用要求 macOS 15 或更高版本,因此 Windows 和 Linux 不能作为主控桌面直接运行;Linux 仅被说明为远程 helper 的运行目标。
- 用户仍需分别安装并认证所选编程智能体;GitHub 和 GitLab 功能还依赖已认证的 gh 或 glab CLI。
- 源码构建链较重,需要完整 Xcode 26、XcodeGen、特定 patched Zig 0.15、rustup、多个固定 Rust 工具链以及递归子模块。
- 手机端由桌面应用内置服务器提供,资料未说明独立托管的手机服务或无需 Mac 桌面端的部署方式。
- 不同智能体在终端模式、ACP 功能、内联权限和会话恢复方面是否完全等价,来源没有逐项给出兼容矩阵。
如何安装或部署这个 Agent?
运行环境要求为 macOS 15 Sequoia 或更高版本。使用 Homebrew 安装签名版应用:
brew install --cask mrmans0n/tap/alas也可以从 GitHub Releases 下载已签名的 DMG。随后另行安装并认证准备使用的编程智能体。GitHub 功能依赖已完成认证的 gh CLI,GitLab 功能依赖已完成认证的 glab CLI。
从源码构建需要 Xcode 26 或更高版本,并将完整 Xcode 设为当前开发者目录;还需安装 XcodeGen、Homebrew 的 patched Zig 0.15 和 rustup:
brew install xcodegen [email protected] rustup
git clone --recurse-submodules https://github.com/mrmans0n/alas.git
cd alas
./scripts/build-ghostty.shxcodegen
xcodebuild -project Alas.xcodeproj -scheme Alas -destination 'platform=macOS' build
xcodebuild -project Alas.xcodeproj -scheme Alas -destination 'platform=macOS' test已有检出应先运行 git submodule update --init --recursive。必须在调用 Xcode 前构建 Ghostty。
如何使用这个 Agent?
打开 Alas 后添加代码仓库,并为不同任务选择或创建关联工作树。为当前工作树打开长期运行的 Ghostty 终端,或选择支持 ACP 的原生聊天会话并启动已经安装、认证的编程智能体。任务运行期间可以编辑或排队后续提示,也可查看文件、搜索结果、工具调用和权限请求。完成改动后,通过 ⇧⌘R 面板选择分支、提交或范围进行审查,在差异中留下行内评论,再让智能体通过内置审查工具处理这些意见;随后进行暂存、提交并合并检测到的 GitHub PR 或 GitLab MR。若要使用远程主机,可添加 SSH 项目;连接助手会读取 ~/.ssh/config 并在远端引导 helper。手机访问则通过二维码与桌面端配对。README 没有给出 alas CLI 的完整命令语法,因此不能据此提供可靠的首条 CLI 调用命令。