Hearth 是一个面向开发者个人环境配置的技能,定位为「开发环境配置与 macOS 桌面自动化的工匠」。它用于生成和审计个人开发环境配置,并可通过 AppleScript/JXA 自动化 macOS 桌面应用。
一、用途 Hearth 适用于以下需求:shell 配置(zsh、fish、bash)的设置或优化;终端模拟器配置(ghostty 1.3+、alacritty、kitty、wezterm);编辑器配置(Neovim 0.12+、Vim、Zed),含插件、LSP/自动补全、vim.pack 插件管理与内置 :Undotree/:Diff;tmux 或 starship/powerlevel10k 配置;dotfile 管理策略(stow、chezmoi、yadm、bare Git);shell 启动时间优化(Standard 配置档目标 < 150ms);XDG Base Directory 合规迁移;开发环境审计与反模式检测;使用 Homebrew、mise 或 asdf 的包/版本管理;dotfile 安全审计(用 Gitleaks/TruffleHog 检测密钥);新机器引导自动化(目标从零开始 < 15 分钟);macOS 原生应用(Finder、Mail、Safari、Calendar、Notes、Reminders、Music、Keynote、Terminal、System Events)的编程驱动;多应用桌面工作流串联;osascript 接入 shell 管道、shebang 脚本、Python 或 Node,以及 AppleScript 与 JXA 互转;AppleScript/JXA 的 TCC 权限、安全与幂等性审查。
当任务主要属于以下方向时应转向其他技能:Web/浏览器自动化(Playwright/DevTools)、iOS 应用 UI 自动化(XCUITest)、macOS 原生应用开发(SwiftUI/AppKit)、调度/cron/launchd 时间设计、CI/CD 流水线或 Docker 配置、基础设施供应(Terraform、CloudFormation)、Claude Code hook 配置、仓库结构设计、CLI 工具开发、应用代码安全审计。
二、主要能力 Hearth 支持的工具与首选默认项包括:Shell(zsh 为默认,亦有 fish、bash);Shell 插件(zinit 为默认,亦有 antidote、sheldon),其中 zinit turbo 模式可显著降低启动耗时,不推荐为性能目的使用 oh-my-zsh;终端(ghostty 为默认,亦有 alacritty、kitty、wezterm);编辑器(neovim 为默认,亦有 vim、Zed);复用器/提示符(tmux + starship 为默认,亦有 powerlevel10k);dotfile 管理(单机推荐 stow,多机推荐 chezmoi,亦有 yadm、bare Git);包/版本/任务(mise 为默认,亦有 Homebrew、asdf);密钥扫描(gitleaks 为默认,亦有 trufflehog、detect-secrets);个人 Git 配置(diff 推荐 delta);字体(推荐 JetBrains Mono Nerd Font)。
配置档(Profiles)分为 Minimal、Standard、Power,默认使用 Standard。Shell 启动耗时目标为:Minimal < 50ms(超 100ms 升级)、Standard < 150ms(超 250ms 升级)、Power < 250ms(超 400ms 升级)。新机器引导目标为 < 15 分钟(超 30 分钟升级),幂等重跑应无错误或重复,跟踪文件中密钥暴露数为 0。
Hearth 提供多个 Recipes(子命令):zsh(默认)、tmux、neovim、ghostty、vscode、git、shellfn、audit、automate。每个 Recipe 对应一份参考文档,在初始步骤只加载对应「Read First」文件。若无子命令匹配,则走默认 Recipe(zsh)。
三、使用方式 Hearth 的工作流为 SCAN → PLAN → CRAFT → APPLY → VERIFY:SCAN 阶段检测操作系统、shell、工具可用性、配置位置、XDG 变量、现有 dotfile 管理器和基线启动时间;PLAN 阶段选择最小安全改动集、目标工具、配置档与合并策略;CRAFT 阶段按工具特异模式编写配置、保持模块小巧、添加理由注释并保留或改进 XDG 合规;APPLY 阶段先备份、写配置、设权限,仅在计划内接入符号链接或管理器;VERIFY 阶段运行语法/健康检查、在相关时做启动基准测试、测试功能路径并报告结果。
核心契约要求:shell 相关改动前后都要做启动基准测试,若偏差超过配置档目标 50% 需升级处理;务必先用 zprof 或 zsh -xv 分析再猜测;macOS 上避免在 shell 启动中直接运行 brew shellenv(会启动 Ruby 进程增加 50-100ms),应改为内联静态导出的输出;默认使用 Standard 配置档;绝不将密钥提交到 dotfile 仓库;引导脚本必须幂等;每次代码改动都应用 CODE_QUALITY(SLD/SEC/RDB/MNT/TST/PRF/SCL 七轴),SEC 风险阻断完成。
验证命令方面,例如 zsh 用 zsh -n ~/.zshrc 做语法检查、time zsh -i -c exit 配合 zprof 做功能检查;bash 用 bash -n ~/.bashrc;fish 用 fish -n ~/.config/fish/config.fish;neovim 用 nvim --headless +qa 2>&1 与 checkhealth;tmux 用 tmux source-file ~/.config/tmux/tmux.conf;starship 用 starship config 与 starship prompt;ghostty 用 ghostty +show-config。
输出要求:每份交付物必须包含环境扫描结果、所用配置档、所有被改动配置的备份路径、带说明注释的生成配置内容、每个改动配置的语法/健康检查结果、shell 相关改动的启动基准(前后对比)、敏感文件的权限验证结果,以及建议的后续步骤或后续技能。
四、适用场景 适用于个人开发机的环境搭建与优化:配置与优化 shell、终端、编辑器、tmux/提示符;迁移 XDG 规范;审计既有 dotfile 反模式;优化 shell 启动速度;用 gitleaks/trufflehog 扫描密钥;编写幂等的引导脚本;以及驱动 macOS 原生应用完成多应用工作流、UI 脚本与 AppleScript/JXA 脚本编写与审查。
五、限制
Hearth 每次会话默认只处理一个范围,除非用户明确要求多工具协同。涉及覆盖/大改现有配置、安装插件管理器或迁移到 vim.pack、更改 macOS 设置或默认 shell、安装大型框架或固执己见的发行版、首次设置 dotfile 管理器或删除/替换现有策略,都需要先询问。绝不无备份覆盖配置,绝不把密钥写入跟踪文件,未经确认不改默认 shell,未经确认不运行 sudo/root 操作,不把删除现有配置作为日常优化,不安装 oh-my-zsh(除非明确要求),不做无检测的硬编码路径,不跳过语法/健康检查,不使用 git config credential.helper store,不在 shell 初始化中多次调用 compinit,不在可通过静态导出实现时在启动中运行 brew shellenv。