How to Make the i-Have-ADHD Skill Always-On for Claude Code
Create the flag file ~/.claude/.i-have-adhd-always to automatically activate the ADHD response-shaping rules for every Claude Code session.
The i-have-adhd skill from ayghri/i-have-adhd injects persistent formatting guidelines into Claude Code interactions. Making it always-on requires understanding how the SessionStart hook system detects and loads the skill on every launch.
How the Always-On Mechanism Works
The always-on feature relies on a lightweight POSIX shell hook that runs before any user input. According to the source code in ayghri/i-have-adhd, the activation chain has four stages:
- Hook registration —
hooks/hooks.jsonregisters a SessionStart hook triggered bystartup,resume,clear, orcompactcommands - Script execution — The hook runs
hooks/always-on.sh - Flag file detection — The script checks for
$CLAUDE_CONFIG_DIR/.i-have-adhd-always - Rule injection — If present, the script loads
skills/i-have-adhd/SKILL.md, strips YAML front-matter, and prints the ruleset
The design intentionally avoids blocking: any error exits with status 0, ensuring Claude Code launches normally even if the skill fails to load.
Enable Always-On Mode
Run this once to create the flag file:
mkdir -p "$HOME/.claude"
touch "$HOME/.claude/.i-have-adhd-always"
The default CLAUDE_CONFIG_DIR is ~/.claude. The script at hooks/always-on.sh checks this exact path.
Verify the Hook Is Working
Test the activation manually without restarting Claude Code:
sh "$HOME/.claude/plugins/i-have-adhd/hooks/always-on.sh"
You should see the i-have-adhd rules banner with session control instructions.
Disable Always-On Mode
Permanent Disable
Remove the flag file to stop automatic activation:
rm -f "$HOME/.claude/.i-have-adhd-always"
Next session will start without the skill loaded.
Temporary Disable (Current Session Only)
Type stop adhd mode in any Claude Code conversation. The skill ceases applying rules immediately but will reactivate on the next session start if the flag file remains.
Key Files in the Repository
Understanding these source files helps debug always-on issues:
hooks/hooks.json— Declares the SessionStart hook binding that triggers onstartup|resume|clear|compacteventshooks/always-on.sh— Contains the core logic: flag detection, front-matter stripping, and ruleset emissionskills/i-have-adhd/SKILL.md— The complete rule corpus injected when always-on is active
The always-on.sh script specifically handles YAML front-matter removal from SKILL.md before outputting rules, ensuring clean injection into the prompt context.
Troubleshooting Always-On Failures
If the skill does not activate automatically:
- Confirm the flag file path matches your
CLAUDE_CONFIG_DIRenvironment variable (defaults to~/.claude) - Verify
hooks/always-on.shhas execute permissions or invoke explicitly withsh - Check that
skills/i-have-adhd/SKILL.mdexists in your plugin installation
Summary
- Always-on activation requires creating
~/.claude/.i-have-adhd-always - Hook-driven loading runs automatically via
hooks/always-on.shon every SessionStart event - Session-level disable uses the phrase
stop adhd mode - Permanent disable deletes the flag file
- Zero blocking design ensures Claude Code launches regardless of skill errors
Frequently Asked Questions
What triggers the always-on check in Claude Code?
The check runs on SessionStart events: startup, resume, clear, and compact commands. These events are defined in hooks/hooks.json and mapped to execute hooks/always-on.sh before user interaction begins.
Can I use a custom directory for the flag file?
Yes. Set the CLAUDE_CONFIG_DIR environment variable before launching Claude Code. The script references this variable directly; if unset, it defaults to ~/.claude.
Does always-on mode slow down Claude Code startup?
No. The always-on.sh script is a lightweight POSIX shell script with no Node.js runtime dependency. It exits immediately if the flag file is absent and exits with status 0 on any error, deliberately designed to never block session initialization.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →