用 Mac 做开发几年了,工具换过不少轮。2026 年稳定下来的这套,是真正每天都在用、离不开的。不搞“百大应用推荐”,就这十三个:有的负责写代码,有的让两台电脑不在同一个局域网时也能互相连接,还有一个把背后的账号和项目密钥管好。每个都有留下来的理由。
Ghostty — 终端
Ghostty↗︎ 是 Mitchell Hashimoto(HashiCorp 创始人)用 Zig 写的终端模拟器。快,是真的快 —— GPU 加速渲染,冷启动几乎无感。配置极简,一个 ~/.config/ghostty/config 文件搞定一切,不需要 YAML/TOML/JSON 之争。
我从 iTerm2 切过来之后就没回去过。iTerm2 功能多但启动慢、配置繁杂;Ghostty 做减法,只留终端该有的东西,但每一项都做到极致。原生 macOS 渲染、字体 fallback 完美、分屏也够用。
对我来说终端就该是这样:打开就能用,不挡路。
Zed — 代码编辑器
Zed↗︎ 是 Atom 原班团队用 Rust 重写的编辑器。启动秒开,大文件不卡,这两件事就已经赢了。
我把大部分轻量编辑都交给了 Zed:快速改配置、看日志、写 Markdown。VS Code 我还留着,主要用它的插件生态(Remote SSH、特定语言的 debugger)。但日常"打开一个文件改几行"这种事,Zed 比 VS Code 快太多了。
多人实时协作编辑是 Zed 的核心功能之一,不过我还没怎么用到。AI 集成做得也不错。内置终端、文件树、搜索都够用。说白了就是一个不臃肿的现代编辑器,该有的都有,不该有的不塞。
Warp — AI 终端
等一下,已经有 Ghostty 了为什么还要 Warp↗︎?
因为它们解决的问题不一样。Ghostty 是纯粹的终端模拟器,快且稳;Warp 是"终端 + IDE"的混合体。Warp 的输入框是真正的编辑器,支持光标自由移动、多行编辑、命令历史搜索。每条命令的输出是独立的 block,可以折叠、复制、滚动,不会和上下文混在一起。
我用 Ghostty 跑长期进程(dev server、docker compose),用 Warp 做交互式操作(git、调试、临时脚本)。两个并行用,各取所长。
Warp 还有 AI 命令解释和生成功能。虽然我不常用(Claude Code 已经够了),但偶尔忘了某个 ffmpeg 参数的时候确实方便。
Typeless — 给编程 Agent 的语音输入
Typeless↗︎ 是一个全局可用的 AI 语音输入工具。我可以按平时说话的方式表达,中间有停顿、改口也没关系,它会去掉口头禅和重复,把结果整理成干净的文字,直接放进当前应用的输入框。
它对我帮助最大的场景是 agentic coding。给 Codex 或 Claude Code 的好任务,通常不是一句“帮我修这个 bug”,而是要把目标、现状、限制条件和验收标准讲清楚。这样的上下文用说的比用键盘敲更自然,特别适合一轮任务的开场、看完 diff 后给 review 意见,或者读完 agent 的计划再补充要求。
代码、Shell 命令、文件路径和凭据我还是会手打。语音负责表达意图,键盘负责精确语法。边界清楚之后,Typeless 才真正进入了我的开发流程,而不只是一个新鲜的输入方式。
DataGrip — 数据库 IDE
DataGrip↗︎ 是 JetBrains 出的数据库 IDE。工作中要连 SQL Server 2025,个人项目用 Supabase (PostgreSQL),DataGrip 一个工具全搞定。
SQL 自动补全、表结构可视化、查询结果导出、多数据源同时连接 —— 这些功能听起来平平无奇,但 DataGrip 的补全质量是我用过所有数据库工具里最好的。它真的理解你的 schema,不是简单的关键字匹配。
唯一缺点是 JetBrains 系一贯的问题:吃内存。但对于数据库工作来说,没有更好的替代品了。DBeaver 免费但体验差不少。
Typora — Markdown 编辑器
Typora↗︎ 是所见即所得的 Markdown 编辑器,一直是我写长文的首选。
很多人觉得"VS Code / Zed 也能写 Markdown",确实可以,但体验完全不同。Typora 的实时预览不是分屏,而是直接在你打字的地方渲染。写作时不会被语法符号打断思路。
我用 Typora 写博客草稿、项目文档、会议记录。最后再拷到 MDX 文件里。也许有点"多此一举",但写作这件事,工具的手感比效率更重要。Typora 的手感是最好的。
图片直接拖入、表格编辑、主题自定义、导出 PDF —— 该有的都有,而且一直稳定,几乎不出 bug。
PDF Expert — PDF 阅读与标注
PDF Expert↗︎ 是 macOS 上最好的 PDF 工具,没有之一。
Preview.app 能应付简单查看,但一旦需要标注、签名、编辑文字、合并文件,就完全不够用了。PDF Expert 启动快、渲染准确、标注工具齐全。我每天用它看技术文档和论文,高亮 + 批注的工作流非常顺畅。
表单填写、签名也是高频场景。比 Adobe Acrobat 轻量得多,价格也合理(买断制)。
Docker Desktop — 容器
Docker Desktop↗︎ 不需要过多介绍。本地开发需要跑数据库、消息队列、各种服务的时候,Docker Compose 一键搞定。
我主要用它来:
- 本地跑 PostgreSQL、Redis
- 测试多服务架构
- 复现生产环境问题
macOS 上 Docker Desktop 的性能一直被诟病(因为要跑 Linux VM),但最近几个版本改善了不少。VirtioFS 文件系统让 bind mount 的速度可以接受了。
OrbStack 是一个更轻量的替代品,但 Docker Desktop 对我来说够用了,而且和 VS Code Dev Containers 的集成更成熟。
Tailscale — 两台电脑之间的私人网络
Tailscale↗︎ 解决的是一个很具体的问题:我的两台笔记本不在同一个局域网时,怎么继续安全地互相访问。每台设备都有稳定的私有地址和 MagicDNS 名称,所以一台留在家里,另一台在公司或外面,也不需要配置路由器端口转发,更不用把服务直接暴露到公网。
我会通过这条私人连接用 SSH、访问开发服务器和内部 dashboard,偶尔也传文件。目标电脑上仍然要先运行对应的服务——Tailscale 提供的是网络通道,不会凭空变出 SSH 或 Web 服务——但两台电脑加入同一个 tailnet 之后,换 Wi-Fi 不再改变我的连接方式。
网络条件允许时,两台设备会直接连接;直连不通时则自动走中继。对我来说这部分是透明的,同一个私有主机名始终能用。
1Password — 账号与项目密钥
1Password↗︎ 先管好我个人 AI 工作流的入口:ChatGPT 和 Claude 的登录信息、passkey、恢复码以及相关账号资料。它们不会散落在浏览器备注、Shell 历史或某个迟早会被复制错地方的文本文件里。
现在它也是这个项目的凭据来源。仓库里可以提交一个不包含真实值的引用:
LLM_API_KEY=op://.../LLM_API_KEY
真正的值留在 1Password。本地开发时,op run 解析引用,只把凭据交给当前启动的子进程;生产环境也在部署前走同样的思路,让运行时拿到需要的值,同时避免把 GitHub 或代码仓库变成密钥的最终来源。
Codex 和 Claude Code 能替我执行命令之后,这条边界更重要。我不会给 agent 整个保险库的读取权限,而是只给当前命令需要的环境变量。1Password 不只是“保存密码的地方”,它隔开了“agent 能完成工作”和“agent 能看到我所有凭据”这两件事。
Raycast — Spotlight 替代品
Raycast↗︎ 是我装完 Mac 第一个配置的应用。装完之后,Spotlight 就再也没打开过。
为什么替代 Spotlight
Spotlight 的问题不是不能用,而是太慢、太笨。搜索应用时经常排序不对,搜文件更是一言难尽。Raycast 的模糊匹配又快又准,打两三个字母就能定位到想要的应用。而且 Raycast ���只是启动器 —— 它是一个可编程的命令面板,装上插件之后能取代一堆独立小工具。
我把 Raycast 绑定到 Cmd+Space,完全替代系统 Spotlight。
Snippets —— 最高频的功能
Snippets 是我在 Raycast 里用得最多的功能。原理很简单:定义一个关键词,输入时自动展开成完整内容。
我的常用 Snippets:
| 关键词 | 展开内容 | 场景 |
|---|
;phone | 我的手机号 | 填表、注册账号 |
;email | 常用邮箱地址 | 各种登录、联系表单 |
;addr | 家庭地址 | 快递、外卖、注册 |
;waddr | 公司地址 | 工作相关表单 |
;card | 银行卡尾号(不存完整卡号) | 提醒自己用哪张卡 |
;sig | 邮件签名 | 写邮件 |
;zoom | Zoom 会议链接 | 约会议 |
这些信息每天都要输入好几次。没有 Snippets 之前,要么手动打,要么从备忘录里复制粘贴。现在打 ;phone 瞬间展开,在任何应用里都能用。
你也可以用它做代码模板(比如 ;log 展开成 console.log()),但我个人代码补全交给编辑器和 Claude Code,Snippets 主要存个人信息和常用文本。
Clipboard History —— 不再丢失复制的内容
macOS 原生剪贴板只保留最后一条。复制了一段代码,再复制一个链接,代码就没了。
Raycast 的 Clipboard History 解决了这个痛点:
- 无限历史:所有复制过的内容都保留,文字、图片、文件都支持
- 搜索:
Cmd+Shift+V 打开历史面板,直接搜索关键词定位
- 置顶:常用的内容可以 pin 住,随时粘贴
这个功能听起来简单,但用过就回不去了。特别是开发时经常需要在多段代码之间复制粘贴,有历史记录不用来回切窗口了。
其他好用的功能
- 窗口管理:快捷键把窗口移到左半/右半/全屏,不需要额外装 Magnet 或 Rectangle
- 计算器:直接在搜索框算,支持单位换算和汇率
- 插件生态:Jira、GitHub、Linear、Notion 都有高质量的社区插件
免费版已经覆盖了 90% 的使用场景。Pro 版的 AI 功能不错但不是必需。
Shottr — 截图
Shottr↗︎ 是一个轻量级截图工具。
macOS 自带的截图(Cmd+Shift+4)够用,但 Shottr 多了几个关键功能:
- 滚动截图:长网页、长对话一键截全
- 标注:箭头、方框、文字、马赛克,截完直接标注
- OCR:截图后直接识别文字,复制出来
- 测量:量像素间距、颜色取值,做 UI 开发很方便
- 钉图:把截图钉在屏幕最上层,方便对照
免费、轻量、原生 macOS 体验。CleanShot X 功能更多但要付费,Shottr 对我来说刚好够用。
Bob — 翻译
Bob↗︎ 是 macOS 上的翻译工具,支持划词翻译、截图翻译和输入翻译。
作为一个需要在中英文之间频繁切换的开发者,Bob 对我来说是刚需。看英文文档遇到不确定的词,划一下就出翻译结果,不用切到浏览器开 Google Translate。
Bob 的强大在于它支持多翻译源:可以同时显示 DeepL、OpenAI、Google Translate 的结果,对比着看哪个翻译更准确。我现在主要用 DeepL + OpenAI 的组合。
截图翻译也很实用 —— 遇到图片里的文字(比如 UI 截图、PDF 扫描件),直接截图就能翻译,不用手动打字。
总结
这十三个应用覆盖了我日常开发里那些“工具选得对不对,体验真的会不一样”的场景:
| 场景 | 工具 |
|---|
| 终端 | Ghostty(纯终端)+ Warp(交互式) |
| 代码编辑 | Zed(轻量)+ VS Code(重型) |
| 数据库 | DataGrip |
| 写作 | Typora |
| PDF | PDF Expert |
| 容器 | Docker Desktop |
| 启动器 | Raycast |
| 截图 | Shottr |
| 翻译 | Bob |
| 语音输入 | Typeless |
| 远程连接 | Tailscale |
| 密码与项目密钥 | 1Password |
选工具我的原则还是:解决一个问题,解决得彻底。我不在意它是不是功能最多、是不是刚好最流行;真正会留下来的,是那些我会反复打开,而且能用一句话说清楚为什么需要它的工具。这十三个现在刚好组成了我 Mac 工作流外面那一层:表达意图、让 agent 工作、连接设备、保护凭据,再把写代码之外的事情处理好。