How to Make i-have-adhd Always-On in Claude Code
Create the flag file ~/.claude/.i-have-adhd-always to enable persistent ADHD mode across all Claude Code sessions.
The i-have-adhd skill for Claude Code provides structured support for users with ADHD, but manually invoking it each session can be tedious. This guide explains how to configure always-on mode using the repository's SessionStart hook system, as implemented in ayghri/i-have-adhd.
How Always-On Mode Works
Claude Code automatically executes SessionStart hooks defined in [hooks/hooks.json](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json) every time a new session begins. The i-have-adhd repository registers [hooks/always-on.sh](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) to run at startup.
The script performs three operations:
- Checks for the flag file at
$HOME/.claude/.i-have-adhd-always(or$CLAUDE_CONFIG_DIR/.i-have-adhd-alwaysif the environment variable is set) - Loads the ruleset from [
skills/i-have-adhd/SKILL.md](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md), stripping YAML front-matter - Prints the activation banner and injects the rules into the session context
If the flag file is absent, the script exits silently without modifying the session.
Enabling Always-On Mode
Step 1: Create the Flag File
Run this command once per user account:
touch ~/.claude/.i-have-adhd-always
The path respects the CLAUDE_CONFIG_DIR environment variable if you use a custom Claude configuration directory.
Step 2: Verify Activation
Start a new Claude Code session:
claude code
You will see an activation banner 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/youruser/.claude/.i-have-adhd-always to turn always-on off for good.
<rules from SKILL.md>
This confirms the [always-on.sh](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) hook successfully detected your flag file and loaded the complete skill ruleset.
Managing Always-On Mode
Disable Temporarily for One Session
Type this command in any active session:
stop adhd mode
This suppresses ADHD mode for the current session only. The next session will reactivate automatically.
Disable Permanently
Remove the flag file to stop automatic activation:
rm ~/.claude/.i-have-adhd-always
Future sessions will start without ADHD mode unless you manually invoke /i-have-adhd.
Key Implementation Files
| File | Purpose |
|---|---|
[hooks/hooks.json](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json) |
Registers always-on.sh as a SessionStart hook |
[hooks/always-on.sh](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) |
Shell script that checks the flag and loads rules |
[skills/i-have-adhd/SKILL.md](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) |
Complete ruleset injected when always-on is active |
[README.md](https://github.com/ayghri/i-have-adhd/blob/main/README.md) |
Documents the touch shortcut for users |
The flag file approach—documented in the repository's README as "Want it on every session? touch ~/.claude/.i-have-adhd-always"—provides a stateless, portable mechanism that requires no code changes to the skill itself.
Summary
- Create
~/.claude/.i-have-adhd-alwaysto enable always-on mode permanently - Start Claude Code normally—no additional commands needed
- Type
stop adhd modeto disable for a single session - Delete the flag file to remove always-on mode entirely
This configuration leverages Claude Code's native hook system to automate skill activation without modifying core functionality.
Frequently Asked Questions
What happens if I delete the flag file during an active session?
Deleting ~/.claude/.i-have-adhd-always mid-session does not affect the current session. The [always-on.sh](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) hook runs only at SessionStart. Changes take effect on your next Claude Code launch.
Can I use a custom config directory instead of ~/.claude?
Yes. Set the CLAUDE_CONFIG_DIR environment variable before launching Claude Code. The script checks $CLAUDE_CONFIG_DIR/.i-have-adhd-always first, falling back to $HOME/.claude/ only if the variable is unset.
Why does the banner appear even when I haven't typed a command?
The SessionStart hook executes automatically when Claude Code initializes, before you see the prompt. This design ensures ADHD mode rules are present in the system prompt from the first interaction, not after a manual trigger.
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 →