startup-hook-skill

Generate and validate SessionStart hooks that install dependencies for Claude Code web sessions.

Updated Jan 11, 2026
One-click install
npx skills add https://github.com/ehoyos007/SKILL.md --skill startup-hook-skill-ehoyos007
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: startup-hook-skill
Source: https://github.com/ehoyos007/SKILL.md/tree/main/session-start-hook
Command: npx skills add https://github.com/ehoyos007/SKILL.md --skill startup-hook-skill-ehoyos007

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The startup hook skill automates the creation and validation of SessionStart hooks so Claude Code on the web sessions always start with dependencies installed, tests available, and linters configured.

Core Features & Use Cases

  • Generates a deterministic startup script at .claude/hooks/session-start.sh that installs dependencies and configures the environment.
  • Registers the hook in .claude/settings.json under the SessionStart workflow, enabling seamless startup across projects.
  • Validates dependencies installation and linter/test readiness in a simulated session to prevent race conditions during session launch.

Quick Start

Create a .claude/hooks/session-start.sh with a deterministic install script and register it in .claude/settings.json under the SessionStart hook.

Frequently Asked Questions about startup-hook-skill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate dependency installation for Claude Code web sessions on startup?

You can automate dependency installation by creating a deterministic startup script at .claude/hooks/session-start.sh and registering it under the SessionStart hook in .claude/settings.json. This ensures dependencies are installed reliably every time.

What is a SessionStart hook and how does it work for repository setups?

A SessionStart hook is a workflow registered in .claude/settings.json that executes a script when a session launches. It runs deterministic, non-interactive scripts to install dependencies and configure environments before the session begins.

How do I prevent race conditions when running tests and linters during session startup?

You can prevent race conditions by validating dependency installation and linter readiness in a simulated session. The startup hook generates idempotent scripts and provides validation steps to ensure tests run reliably.

Can I configure non-interactive startup workflows using environment variables and standard CLI patterns?

Yes, the startup hook supports remote-friendly configuration using environment variables and standard CLI patterns. It generates deterministic, non-interactive startup workflows that install dependencies without requiring manual input.

Does the startup hook script need to be idempotent for Claude Code projects?

Yes, the generated startup script must be idempotent to ensure reliable startup across projects. Running the script multiple times produces the same result without side effects, preventing duplicate installations or broken configurations.

What is the best way to register a startup hook in .claude/settings.json?

The best way to register a startup hook is to add the hook configuration under the SessionStart workflow in .claude/settings.json, pointing to a deterministic script at .claude/hooks/session-start.sh that handles environment setup.