How to Disable I-Have-ADHD Mode: 3 Methods to Turn Off the Pi Extension
To disable I-Have-ADHD mode, remove the always-on flag file, use the /i-have-adhd off command, or type "stop adhd mode" in chat.
The I-Have-ADHD skill is a Pi extension developed by ayghri/i-have-adhd that injects a ruleset of 10 ADHD-friendly output rules into your conversations. This guide covers the three ways to turn it off based on the actual source code implementation in extensions/i-have-adhd.ts and the companion hook scripts.
Understanding How I-Have-ADHD Mode Works
The extension uses three mechanisms to control whether the ADHD rules are active:
- Runtime flag (
--adhdorpi.getFlag("adhd")) — enables the mode at launch - Always-on flag file (
$CLAUDE_CONFIG_DIR/.i-have-adhd-always) — permanently enables the mode for every session - In-session commands and stop phrases — lets you toggle the mode during a conversation
All disable methods ultimately call setEnabled(false, ctx) in the core extension, which removes the ruleset message, clears the UI status badge, and updates the internal state.
Method 1: Remove the Always-On Flag File (Permanent Disable)
The most reliable way to completely disable I-Have-ADHD mode is to delete the persistent flag file. This stops the SessionStart hook from automatically injecting the rules in new sessions.
The hook script at hooks/always-on.mjs (or always-on.sh) checks for this file on lines 17-24. If found, it triggers the mode before any user interaction.
rm "$HOME/.claude/.i-have-adhd-always"
If your Claude config directory is in a non-standard location, use this expanded path:
rm "$(dirname $(readlink -f ~/.claude))/.i-have-adhd-always"
After deletion, launch a new Pi session. The extension will not load the ADHD rules automatically.
Method 2: Use the Built-In Toggle Command (Session-Only)
For temporary control without affecting future sessions, use the /i-have-adhd slash command registered in extensions/i-have-adhd.ts at lines 87-109.
| Command | Effect |
|---|---|
/i-have-adhd off |
Disables mode for current session |
/i-have-adhd stop |
Same as off — disables mode |
/i-have-adhd |
Toggles current state (on → off, or off → on) |
Example to turn off I-Have-ADHD mode immediately:
/i-have-adhd off
The extension confirms the change and removes the visual status indicator from your session.
Method 3: Type a Stop Phrase (Natural Language)
The extension monitors chat input for specific trigger phrases at lines 121-133 of extensions/i-have-adhd.ts. This allows natural language disabling without remembering slash commands.
Type either exact phrase in your message:
stop adhd mode
Or:
normal mode
The extension detects these strings, calls the disable routine, and responds with: "ADHD mode disabled."
This works even mid-conversation and requires no command syntax.
How the Disable Mechanism Works Internally
When any disable pathway triggers, the extension at extensions/i-have-adhd.ts executes:
- Sets internal enabled state to
false - Removes the
i-have-adhd-disabledmessage ruleset - Clears the UI status badge indicating active mode
- Sends confirmation to the user
The setEnabled(false, ctx) function handles all state cleanup consistently across methods.
Key Source Files Reference
| File | Purpose |
|---|---|
extensions/i-have-adhd.ts |
Core extension with flag handling, command registration, and input monitoring |
hooks/always-on.mjs / always-on.sh |
Session start hook that auto-enables mode when flag file exists |
skills/i-have-adhd/SKILL.md |
Documentation of the 10 ADHD-friendly rules and stop triggers |
tests/test_always_on_hooks.py |
Verification suite for enable/disable logic |
Summary
- Delete
$HOME/.claude/.i-have-adhd-alwaysto permanently disable I-Have-ADHD mode across all future sessions - Type
/i-have-adhd offor/i-have-adhd stopto disable for the current session only - Say "stop adhd mode" or "normal mode" in chat for natural language disabling
- All methods route through
setEnabled(false, ctx)inextensions/i-have-adhd.tsfor consistent state management
Frequently Asked Questions
What happens if I delete the flag file while a session is running?
Deleting the always-on flag file only affects new sessions. Your current session retains whatever state it had. To disable mid-session, use the /i-have-adhd off command or a stop phrase.
Do the stop phrases require exact capitalization?
No. The input listener in extensions/i-have-adhd.ts processes the phrases case-insensitively as of the current implementation. "Stop ADHD Mode", "STOP ADHD MODE", and "stop adhd mode" all trigger the disable action.
Can I re-enable I-Have-ADHD mode after disabling it?
Yes. Use /i-have-adhd on to enable for the current session, or recreate the always-on flag file with touch "$HOME/.claude/.i-have-adhd-always" for persistent activation on future launches.
Where is the official documentation for the 10 ADHD rules?
The human-readable rules are documented in skills/i-have-adhd/SKILL.md within the repository. This file also specifies the "stop adhd mode" trigger phrase as the canonical way to exit the mode.
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 →