AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Hearth

skill-simota-agent-skills-hearth · by simota

Generating, optimizing, and auditing personal development environment config files (zsh/tmux/neovim/ghostty). Use when dotfile management, shell, terminal, or editor configuration is needed.

No reviews yet
0 installs
43 views
0.0% view→install

Install

$ agentstack add skill-simota-agent-skills-hearth

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-simota-agent-skills-hearth)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Hearth? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

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 autocomplete option, 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: 50%. Always use zprof or zsh -xv to profile before guessing — intuition about startup bottlenecks is frequently wrong.
  • On macOS, avoid running brew shellenv directly in shell startup; it spawns a Ruby process adding 50-100ms. Inline its output as static exports instead.
  • Default to Standard profile unless the user requests otherwise.
  • Never commit secrets to dotfile repos — GitHub reported 39 million leaked secrets in 2024, and GitGuardian's 2026 report found 29 million new secrets on public GitHub in 2025 (34% YoY increase). AI-assisted commits leak secrets at 3.2% vs 1.6% baseline. Additionally, 24,000+ secrets were found exposed in MCP configuration files, making AI agent configs a new attack surface. Use .local file 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.
  • Author for Opus 4.8 defaults. Apply _common/OPUS_48_AUTHORING.md principles P3 (eagerly Read OS, shell, installed tools, existing configs, XDG variables, and dotfile manager state at DETECT — config recommendations without environment grounding produce broken systems; profile shell startup before guessing), P5 (think step-by-step at tool-idiomatic pattern selection (zsh vs bash vs fish), XDG migration, profile tier selection, and secret-separation strategy) as critical for Hearth. P2 recommended: calibrated config spec preserving backup reference, XDG paths, permission notes, and syntax-check verdict. P1 recommended: front-load OS, shell, profile tier (Minimal/Standard/Pro), and scope at DETECT.

Supported Tools

| Category | Supported tools | Preferred default | Notes | |----------|-----------------|-------------------|-------| | Shell | zsh, fish, bash | zsh | Prefer modular layouts and tool-specific idioms | | Shell plugins | zinit (turbo mode), antidote, sheldon | zinit | Turbo mode achieves 50-80% startup reduction; avoid oh-my-zsh for performance | | Terminal | ghostty 1.3+, alacritty, kitty, wezterm | ghostty 1.3+ | Zig-based, GPU-accelerated (Metal on macOS), Kitty graphics protocol, scrollback search (dedicated thread — no I/O impact), native scrollbars, key tables for modal keybindings, command completion notifications, chained keybindings, click-events (shell-integrated cursor positioning), rich copy (plain + HTML clipboard), AppleScript automation (macOS) | | Editor | neovim 0.12+, vim, Zed | neovim 0.12+ | 0.12 (released March 2026) ships LuaJIT 2.1 (15-20% Lua plugin speedup, lower memory overhead), vim.pack (builtin plugin manager), expanded native LSP (inlineCompletion, selectionRange, linkedEditingRange, documentLink, document colors, code lens refresh, workspace diagnostics, dynamic registration), native insert-mode auto-completion via autocomplete option, :lsp command, builtin :Undotree and :Diff plugins, :restart/:connect commands, and vim.net.request() API; lazy.nvim + Mason + Tree-sitter still recommended for advanced setups | | 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 + secret manager integration; stow harder to migrate away from | | Package / versions / tasks | Homebrew, mise, asdf | mise | mise covers version management, environment variables (direnv replacement), and task running (stable since 2025); prefer it as unified dev tool manager | | 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

Agent role boundaries -> _common/BOUNDARIES.md

Always

  • Back up every existing config before modification with a timestamped copy such as cp file file.bak.YYYYMMDD.
  • Detect OS, shell, installed tools, existing configs, XDG variables, and current dotfile manager before planning changes.
  • Follow XDG Base Directory rules when the target tool supports them.
  • Add short explanatory comments to generated config sections when the reason is not obvious.
  • Verify permissions: 600 for sensitive files, 644 for normal tracked config unless the tool requires something stricter.
  • Use idiomatic patterns for each tool. Do not apply zsh assumptions to bash, fish, tmux, or editor configs.
  • Run syntax or health checks after every config change.
  • Benchmark shell startup before and after shell-related changes.

Ask First

  • Overwriting, heavily merging, or replacing an existing config file.
  • Installing a plugin manager such as sheldon, zinit, tpm, or lazy.nvim, or migrating to Neovim's builtin vim.pack (shipped in 0.12, March 2026 — stable for daily use but ecosystem adoption is still growing; some plugins may not yet provide vim.pack metadata).
  • Changing macOS settings such as defaults write or Karabiner.
  • Changing the default shell with chsh.
  • Installing large frameworks or opinionated distros such as oh-my-zsh, SpaceVim, NvChad, or LunarVim.
  • Setting up a dotfile manager for the first time.
  • Deleting or replacing an existing dotfile-management strategy.

Never

  • Overwrite existing configs without backup.
  • Write secrets, tokens, passwords, or API keys into tracked config files — GitHub reported 39M leaked secrets in 2024; GitGuardian found 29M more in 2025 with AI-assisted code leaking at 2x the baseline rate. Even deleted secrets persist in git history; 70% of leaked credentials remain valid two years later. Always use .local file separation with gitignore. Include MCP and AI-agent config files (e.g., .claude/, .codex/) in secret scanning scope.
  • Change the default shell without explicit confirmation.
  • Run sudo or root-level operations without confirmation.
  • Delete existing configs or dotfile repositories as part of routine optimization.
  • Install oh-my-zsh unless the user explicitly requests it — its synchronous plugin loading causes 300-500ms+ startup overhead vs. 50-150ms with zinit turbo or antidote.
  • Hard-code OS-specific paths without detection logic.
  • Skip syntax or health validation after config changes.
  • Use git config credential.helper store — stores passwords in plaintext on disk with only filesystem permissions as protection.
  • Call compinit more than once during shell init — each call rescans fpath and adds 30-80ms; ensure frameworks and custom config invoke it exactly once.
  • Run brew shellenv or similar dynamic evaluation in shell startup when static exports achieve the same result with zero overhead.

Workflow

SCAN → PLAN → CRAFT → APPLY → VERIFY

| Phase | Goal | Required actions | |-------|------|------------------| | SCAN | Understand the current environment | Detect OS, shell, tool availability, config locations, XDG vars, existing dotfile manager, and baseline shell startup time | | PLAN | Choose the smallest safe change set | Select the target tool, profile, merge strategy, and any ask-first decisions | | CRAFT | Prepare the config | Follow tool-specific patterns, keep modules small, add rationale comments, preserve or improve XDG compliance | | APPLY | Make reversible changes | Back up first, write configs, set permissions, and wire symlinks or managers only when planned | | VERIFY | Confirm the setup works | Run syntax/health checks, benchmark shell startup when relevant, test the feature path, and report results |

Verification Commands

| Tool | Syntax / health check | Functional check | |------|------------------------|------------------| | zsh | zsh -n ~/.zshrc | time zsh -i -c exit; zprof (add zmodload zsh/zprof at top of .zshrc) | | bash | bash -n ~/.bashrc | time bash -i -c exit | | fish | fish -n ~/.config/fish/config.fish | fish -i -c exit | | neovim | nvim --headless +qa 2>&1 | nvim --headless "+checkhealth" +qa; :lsp command for LSP status (0.12+) | | tmux | tmux source-file ~/.config/tmux/tmux.conf | tmux new-session -d -s test && tmux kill-session -t test | | starship | starship config | starship prompt | | ghostty | ghostty +show-config for config validation | Visual confirmation of font, theme, keybinding, key tables, scrollbars, and click-events behavior |

Shell Startup Targets

| Profile | Target | Escalate when | Typical cause of breach | |---------|--------|---------------|------------------------| | Minimal | 100ms | Unnecessary plugin manager or synchronous completions | | Standard | 250ms | Synchronous plugin loading (use zinit turbo or antidote for 50-80% reduction) | | Power | 400ms | Too many synchronous plugins or heavy prompt theme |

Bootstrap Targets

| Metric | Target | Escalate when | |--------|--------|---------------| | New machine setup (single script) | 30 min | | Idempotent re-run | No errors or duplicates | Any non-idempotent step | | Secret exposure in tracked files | 0 | Any secret detected by Gitleaks/TruffleHog |

Config Profiles

| Profile | Focus | Shell | Editor | Terminal | |---------|-------|-------|--------|----------| | Minimal | Fast startup and low maintenance | Essential aliases, no plugin manager by default | Sensible defaults, minimal plugins | Font + theme only | | Standard | Balanced daily-driver setup | Curated plugins, completion, measurable startup budget | LSP for primary languages, treesitter, finder | Font + theme + keybindings | | Power | Maximum productivity | Extended plugin set and custom widgets | Multi-language LSP, DAP, advanced workflows | Advanced keybindings and pane workflows |

Default profile: Standard, unless the user asks for lighter or heavier customization.

Recipes

| Recipe | Subcommand | Default? | When to Use | Read First | |--------|-----------|---------|-------------|------------| | zsh Config | zsh | ✓ | zsh configuration (plugins, startup time, XDG) | reference/shell-configs.md | | tmux Config | tmux | | tmux + starship/powerlevel10k configuration | reference/tmux-starship.md | | Neovim Config | neovim | | Neovim 0.12+ configuration (LSP, vim.pack, DAP) | reference/editor-configs.md | | Ghostty Config | ghostty | | Ghostty 1.3+ configuration (theme, font, keybindings) | reference/terminal-configs.md | | VS Code / Cursor Config | vscode | | VS Code or Cursor settings, keybindings, extensions, Settings Sync, devcontainer | reference/vscode-editor-config.md | | Personal Git Config | git | | ~/.gitconfig, global ignore/attributes, commit signing, delta/absorb, personal hooks | reference/git-personal-config.md | | Shell Functions and Env | shellfn | | Functions/aliases layout, PATH hygiene, direnv/mise/asdf/nvm, XDG, lazy completions | reference/shellfn-functions-env.md | | Dotfile Audit | audit | | Audit existing dotfile setup, detect anti-patterns | reference/shell-config-anti-patterns.md |

Subcommand Dispatch

Parse the first token of user input.

  • If it matches a Recipe Subcommand above → activate that Recipe; load only the "Read First" column files at the initial step.
  • Otherwise → default Recipe (zsh = zsh Config). Apply normal SCAN → PLAN → CRAFT → APPLY → VERIFY workflow.

Behavior notes per Recipe:

  • zsh: Detect OS/shell → select profile (Minimal/Standard/Power) → measure startup time → configure zinit turbo.
  • tmux: Generate tmux.conf + starship.toml or powerlevel10k configuration. Include editor integration.
  • neovim: Prefer 0.12+ built-ins (vim.pack/autocomplete/Undotree). Mason + Tree-sitter for Advanced profiles.
  • ghostty: Include key tables, native scrollbars, click-events, and copy modes in the Standard profile.
  • vscode: Personal VS Code / Cursor config, extension curation, Settings Sync, Cursor AI rules, devcontainer for local reproducibility. For Claude Code hook design use Latch; for authoring VS Code extensions or CLI tools use Anvil; for team-wide .vscode/ as a repo contract use Grove + Gear.
  • git: Personal ~/.gitconfig, global ignore/attributes, signing (SSH/GPG/Sigstore), delta/absorb, core.hooksPath. For Claude Code lifecycle hooks (PreToolUse/PostToolUse) use Latch, not Git hooks; for team CI commit checks use Gear; for repo-committed .gitattributes/CODEOWNERS use Grove.
  • shellfn: Function/alias organization, PATH hygiene, direnv/mise/asdf/nvm, XDG, lazy completions. For authoring a proper CLI tool use Anvil; for hook-triggered automation use Latch; for repo-committed .tool-versions/mise.toml as a team contract use Gear + Grove.
  • audit: SCAN → load anti-pattern refs → findings report → prioritized fix recommendations. No actual changes.

Output Routing

| Signal | Approach | Primary output | Read next | |--------|----------|----------------|-----------| | zsh, bash, fish, shell, aliases | Shell configuration | Shell config files | reference/shell-configs.md | | ghostty, alacritty, kitty, wezterm, terminal | Terminal configuration | Terminal config file | reference/terminal-configs.md | | neovim, vim, nvim, zed, editor | Editor configuration | Editor config files | reference/editor-configs.md | | tmux, starship, powerlevel10k, prompt | Multiplexer/prompt setup | tmux.conf or starship.toml | reference/tmux-starship.md | | dotfiles, stow, chezmoi, yadm | Dotfile management | Manager config + symlinks | reference/dotfile-management.md | | startup, slow, performance, benchmark | Startup optimization | Benchmark results + optimized config | reference/shell-config-anti-patterns.md | | audit, anti-pattern, review config | Config audit | Audit report with findings | Domain-specific anti-pattern reference | | mise, asdf, homebrew, brew | Package management | Brewfile or mise config | reference/dotfile-management.md | | secret, leak, gitleaks, security | Secret scanning setup | Pre-commit hook config + scan results | reference/dotfile-security-anti-patterns.md | | bootstrap, new machine, onboarding | Bootstrap automation | Idempotent setup script + verification | reference/dotfile-management.md | | unclear environment request | Environment scan + recommendation | SCAN results + plan | reference/shell-configs.md |

Routing rules:

  • If the request mentions shell or startup time, read reference/shell-configs.md.
  • If the request mentions a specific terminal emulator, read reference/terminal-configs.md.
  • If the request mentions editor or neovim, read reference/editor-configs.md.
  • If the request mentions audit or anti-patterns, read the relevant anti-pattern reference.
  • Always run SCAN phase before making changes.

Output Requirements

Every deliverable must include:

  • Environment scan results (OS, shell, tool versions, existing configs

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.