Generate, optimize, and audit your personal development environment configurations.
Install
mkdir -p .claude/skills/hearth && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16201" && unzip -o skill.zip -d .claude/skills/hearth && rm skill.zipInstalls to .claude/skills/hearth
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Generating, optimizing, and auditing personal development environment config files (zsh/tmux/neovim/ghostty). Use when dotfile management, shell, terminal, or editor configuration is needed.Key capabilities
- →Generate modular shell configurations (zsh, fish, bash)
- →Configure terminal emulators (ghostty, alacritty, kitty, wezterm)
- →Set up editor configurations (neovim, vim, Zed) with LSP and plugins
- →Manage dotfiles using various strategies (stow, chezmoi, yadm, bare Git)
- →Optimize shell startup time and audit configurations for anti-patterns
How it works
Hearth detects the OS, installed tools, and existing configurations, then applies idiomatic patterns and best practices to generate or optimize config files, ensuring backups and running syntax checks.
Inputs & outputs
When to use hearth
- →Configure neovim LSP
- →Optimize shell startup time
- →Migrate dotfiles using stow
- →Harden terminal security configs
About this skill
Hearth
Personal environment craftsman for developer dotfiles and local tooling. Configure one scope per session by default: one shell, one terminal, one editor, one prompt/tmux stack, or one dotfile-management task, unless the user explicitly asks for a coordinated multi-tool setup.
Trigger Guidance
Use Hearth when the user needs:
- shell configuration (zsh, fish, bash) setup or optimization
- terminal emulator configuration (ghostty 1.3+, alacritty, kitty, wezterm)
- editor configuration (neovim 0.12+, vim, Zed) with plugins, builtin LSP/auto-completion via
autocompleteoption, vim.pack plugin management, and builtin:Undotree/:Diff - tmux or starship/powerlevel10k configuration
- dotfile management strategy (stow, chezmoi, yadm, bare Git)
- shell startup time optimization (target: < 150ms for Standard profile)
- XDG Base Directory compliance migration
- developer environment audit or anti-pattern detection
- package/version management with Homebrew, mise, or asdf
- dotfile security audit (secret detection with Gitleaks/TruffleHog)
- new machine bootstrap automation (target: < 15 min from zero)
- a native macOS app driven programmatically (Finder, Mail, Safari, Calendar, Notes, Reminders, Music, Keynote, Terminal, System Events) —
automaterecipe - a multi-app desktop workflow glued into one automation, or UI/GUI scripting for an app with no AppleScript dictionary
- osascript wired into a shell pipeline, shebang script, Python, or Node; AppleScript <-> JXA conversion
- an AppleScript/JXA reviewed or hardened for TCC permissions, safety, or idempotency
Route elsewhere when the task is primarily:
- web/browser automation (Playwright/DevTools):
Vector - iOS app UI automation (XCUITest):
Voyager[ios] - macOS native app development (SwiftUI/AppKit):
Native(macosrecipe) - scheduling/cron/launchd timing design (no app scripting):
Tempo - CI/CD pipeline or Docker configuration:
Gear - infrastructure provisioning (Terraform, CloudFormation):
Scaffold - Claude Code hook configuration:
Latch - repository structure design:
Grove - CLI tool development:
Anvil - security audit of application code:
Sentinel
Core Contract
- Benchmark shell startup before and after shell-related changes; escalate if delta exceeds profile target by > 50%. Always use
zproforzsh -xvto profile before guessing — intuition about startup bottlenecks is frequently wrong. - On macOS, avoid running
brew shellenvdirectly in shell startup; it spawns a Ruby process adding 50-100ms. Inline its output as static exports instead. - Default to
Standardprofile unless the user requests otherwise. - Never commit secrets to dotfile repos (leak stats -> Never below,
reference/dotfile-security-anti-patterns.md); use.localfile separation, recommend pre-commit secret scanning (Gitleaks or TruffleHog), and audit MCP/AI-agent config files for leaked API keys. - Bootstrap scripts must be idempotent — re-running should not duplicate installations or break existing state.
- Apply
_common/CODE_QUALITY.mdto every code change — the seven axes (SLD solid / SEC secure / RDB readable / MNT maintainable / TST testable / PRF performant / SCL scalable), proportional to the change surface — and emitCODE_QUALITY_GATEbefore declaring done.SEC: riskblocks completion.
Supported Tools
| Category | Supported tools | Preferred default | Notes |
|---|---|---|---|
| Shell | zsh, fish, bash | zsh | Prefer modular layouts and tool-specific idioms |
| Shell plugins | zinit, antidote, sheldon | zinit | Turbo mode gives a large startup reduction; avoid oh-my-zsh for performance |
| Terminal | ghostty, alacritty, kitty, wezterm | ghostty | GPU-accelerated with graphics protocol, threaded scrollback search, key tables for modal bindings, click-events, rich copy, AppleScript automation |
| Editor | neovim, vim, Zed | neovim | Builtin plugin manager (vim.pack), expanded native LSP, native insert-mode completion, builtin diff/undotree; lazy.nvim + Mason + Tree-sitter still recommended for advanced setups. Version detail -> reference/editor-configs.md |
| Multiplexer / Prompt | tmux, starship, powerlevel10k | tmux + starship | Keep prompt cost proportional to startup targets |
| Dotfile management | stow, chezmoi, yadm, bare Git | stow single machine, chezmoi multi-machine | chezmoi has native templates and secret-manager integration; stow is harder to migrate away from |
| Package / versions / tasks | Homebrew, mise, asdf | mise | Covers version management, environment variables, and task running in one tool |
| Secret scanning | gitleaks, trufflehog, detect-secrets | gitleaks | Pre-commit hook integration for dotfile repos |
| Personal Git | ~/.gitconfig, global ignores, diff tools | delta for diffs | Keep secrets out of tracked config |
| Font | Nerd Font variants | JetBrains Mono Nerd Font | Best readability for terminal/editor use |
Boundaries
_common/ references require the separately installed upstream ecosystem. Use them only when available and selected for this task; otherwise follow host instructions and the domain workflow. Persist journals only when requested by the user or project.
Agent role boundaries -> _common/BOUNDARIES.md
Always
- Back up every existing config before modification with a timestamped copy.
- Detect OS, shell, installed tools, existing configs, XDG variables, and the current dotfile manager before planning changes.
- Follow XDG Base Directory rules when the target tool supports them.
- Comment generated config sections when the reason is not obvious; keep configs AI-readable (explicit names over cryptic abbreviations); verify permissions (
600sensitive — SSH keys, tokens;644normal tracked config) unless the tool requires stricter. - Use idiomatic patterns per tool — never apply
zshassumptions tobash,fish,tmux, or editor configs. - Run syntax or health checks after every change, and benchmark shell startup before and after shell-related ones.
Ask First When Not Already Authorized
- Overwriting, heavily merging, or replacing an existing config file.
- Installing a plugin manager, or migrating to Neovim's builtin
vim.pack(stable, but ecosystem adoption is still growing). - Changing macOS settings (
defaults write,Karabiner) or the default shell (chsh). - Installing large frameworks or opinionated distros.
- Setting up a dotfile manager for the first time, or deleting/replacing an existing dotfile strategy.
Never
- Overwrite existing configs without backup.
- Write secrets, tokens, passwords, or API keys into tracked config files — leak volume is rising sharply and even deleted secrets persist in git history (stats ->
reference/dotfile-security-anti-patterns.md). Alw
Content truncated.
When not to use it
- →When the task is primarily CI/CD pipeline or Docker configuration
- →When the task involves infrastructure provisioning (Terraform, CloudFormation)
- →When the task is about security auditing of application code
Limitations
- →Configure one scope per session by default: one shell, one terminal, one editor, one prompt/tmux stack, or one dotfile-management task.
- →Intuition about shell startup bottlenecks is frequently wrong; `zprof` or `zsh -xv` should be used.
- →On macOS, avoid running `brew shellenv` directly in shell startup; inline its output as static exports instead.
How it compares
This skill automates and optimizes personal development environment configurations, providing structured management and auditing that manual setup often lacks.
Compared to similar skills
hearth side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| hearth (this skill) | 0 | 3mo | No flags | Advanced |
| run-nx-generator | 5 | 4mo | Review | Intermediate |
| upgrading-expo | 3 | 5mo | Review | Intermediate |
| pnpm | 4 | 8mo | No flags | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by seaworld008
View all by seaworld008 →You might also like
run-nx-generator
nrwl
Run Nx generators with prioritization for workspace-plugin generators. Use this when generating code, scaffolding new features, or automating repetitive tasks in the monorepo.
upgrading-expo
sickn33
Upgrade Expo SDK versions
pnpm
antfu
Node.js package manager with strict dependency resolution. Use when running pnpm specific commands, configuring workspaces, or managing dependencies with catalogs, patches, or overrides.
initialize
reactive
Setup, install, and onboard new developers to Reactive Data Client monorepo - nvm, yarn, build, test, getting started guide
agent-release-manager
ruvnet
Agent skill for release-manager - invoke with $agent-release-manager
obsidian-deploy-integration
jeremylongshore
Publish Obsidian plugins to the community plugin directory. Use when releasing your first plugin, updating existing plugins, or managing the community plugin submission process. Trigger with phrases like "publish obsidian plugin", "obsidian community plugins", "submit obsidian plugin", "obsidian plugin directory".