How to Make i-have-adhd Always-On: Enable Permanent ADHD Mode for Claude
Create a flag file named .i-have-adhd-always in your Claude configuration directory (default ~/.claude) to automatically activate the i-have-adhd ruleset for every new Claude session without manual invocation.
The i-have-adhd repository by ayghri includes an automated hook system that eliminates the need to manually load the ADHD formatting ruleset for each conversation. By leveraging the always-on hook mechanism, you can persistently enable the project's output style across all Claude sessions. This guide explains how the automatic activation works and how to configure it using the built-in flag file system.
How the Always-On Hook System Works
The repository ships with a SessionStart hook that automatically checks for an activation flag and injects the skill definition when present. According to the ayghri/i-have-adhd source code, this mechanism operates through three coordinated components:
SessionStart Hook Registration
The file hooks/hooks.json registers a SessionStart hook that executes hooks/always-on.sh every time Claude initializes a new session. This registration ensures the script runs automatically before any user interaction begins.
Flag File Detection Logic
Inside hooks/always-on.sh (lines 10-15), the script checks for the existence of .i-have-adhd-always within the $CLAUDE_CONFIG_DIR directory (falling back to ~/.claude). If the file is absent, the script exits silently and the skill remains inactive. When present, execution continues to the loading phase.
Skill Loading and Injection
When the flag file exists, the script locates skills/i-have-adhd/SKILL.md, strips the YAML front-matter, and prints the ruleset to the session output (lines 18-30 of always-on.sh). This injection happens at session start, making the ADHD formatting rules immediately available without manual commands.
Enabling i-have-adhd Always-On Mode
To activate permanent mode, you only need to create the flag file. No modifications to the source code are required.
Default Configuration Directory
Create the flag file in the default Claude configuration location:
# Create the configuration directory if it doesn't exist
mkdir -p "$HOME/.claude"
# Create the always-on flag file
touch "$HOME/.claude/.i-have-adhd-always"
After running these commands, every new Claude session will automatically load the ADHD ruleset.
Custom Configuration Directory
If you use a custom $CLAUDE_CONFIG_DIR location:
# Set your custom configuration path
export CLAUDE_CONFIG_DIR="$HOME/.my-claude"
# Create the directory and flag file
mkdir -p "$CLAUDE_CONFIG_DIR"
touch "$CLAUDE_CONFIG_DIR/.i-have-adhd-always"
The hook respects the $CLAUDE_CONFIG_DIR environment variable and will check for the flag file at your specified location.
Managing and Verifying Always-On Status
Once enabled, the always-on behavior persists until explicitly disabled.
Disabling Always-On Mode
To stop automatic activation, remove the flag file:
rm "$HOME/.claude/.i-have-adhd-always"
Or if using a custom path:
rm "$CLAUDE_CONFIG_DIR/.i-have-adhd-always"
On the next session start, the hook will detect the missing file and exit silently, leaving the skill inactive.
Verifying Successful Activation
When the hook runs successfully, you will see output similar to:
ADHD MODE ACTIVE (always-on). The ruleset below applies to every response. "stop adhd mode" turns it off for this session; delete /home/you/.claude/.i-have-adhd-always to turn always-on off for good.
[…rules from SKILL.md…]
This confirmation indicates that hooks/always-on.sh successfully located your flag file and injected the contents of skills/i-have-adhd/SKILL.md into the session.
Summary
- Flag file location: Create
.i-have-adhd-alwaysin$CLAUDE_CONFIG_DIR(defaults to~/.claude) to enable automatic activation. - Hook mechanism:
hooks/hooks.jsonregisters aSessionStarthook that runshooks/always-on.shat every session start. - Activation logic: The script checks for the flag file (lines 10-15) and loads
skills/i-have-adhd/SKILL.md(lines 18-30) when present. - Persistence: The skill remains active for all sessions until you delete the flag file.
- No code changes required: Simply creating or removing the flag file toggles the always-on behavior.
Frequently Asked Questions
What happens if the flag file exists but I want to disable ADHD mode for a single session?
Type "stop adhd mode" during the session. This disables the ruleset for the current conversation only, without affecting the always-on flag file. The next new session will automatically reactivate the mode because the flag file remains in place.
Can I move the always-on flag file to a different location?
No, the flag file must reside in the Claude configuration directory as defined by $CLAUDE_CONFIG_DIR (defaulting to ~/.claude). The hooks/always-on.sh script specifically checks this location. If you need the file elsewhere, you must symlink it to the required path or change your $CLAUDE_CONFIG_DIR environment variable.
Does the always-on hook modify my Claude installation?
No. The hook operates read-only: it checks for file existence and outputs the contents of skills/i-have-adhd/SKILL.md. It does not write to Claude's core files, modify system settings, or permanently alter the Claude environment beyond the current session's output injection.
Why does my session not show the ADHD ruleset after creating the flag file?
Verify that the flag file is named exactly .i-have-adhd-always (including the leading dot) and is located in the correct directory. Also ensure that $CLAUDE_CONFIG_DIR points to your expected location if you use a custom path. The hook runs at session start, so you must start a new Claude session after creating the file—reloading or refreshing an existing session will not trigger the hook.
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 →