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:

  1. Hook registrationhooks/hooks.json registers a SessionStart hook triggered by startup, resume, clear, or compact commands
  2. Script execution — The hook runs hooks/always-on.sh
  3. Flag file detection — The script checks for $CLAUDE_CONFIG_DIR/.i-have-adhd-always
  4. 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 on startup|resume|clear|compact events
  • hooks/always-on.sh — Contains the core logic: flag detection, front-matter stripping, and ruleset emission
  • skills/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_DIR environment variable (defaults to ~/.claude)
  • Verify hooks/always-on.sh has execute permissions or invoke explicitly with sh
  • Check that skills/i-have-adhd/SKILL.md exists in your plugin installation

Summary

  • Always-on activation requires creating ~/.claude/.i-have-adhd-always
  • Hook-driven loading runs automatically via hooks/always-on.sh on 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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →