Difference Between Disabling i-have-adhd "Stop ADHD Mode" and Removing the Plugin
Disabling i-have-adhd using "stop adhd mode" temporarily toggles a session flag that stops ADHD-specific rules from being injected while keeping the extension loaded, whereas removing the plugin permanently deletes the extension code and registration from your Pi-Coding-Agent project.
The ayghri/i-have-adhd repository implements a Pi-Coding-Agent extension that modifies conversation output for ADHD-friendly formatting. Understanding the distinction between disabling the mode and completely removing the plugin ensures you choose the right approach for your workflow without unintended side effects.
How "Stop ADHD Mode" Works
The Session Toggle Mechanism
When you type the stop phrases stop adhd mode or normal mode, the extension invokes the setEnabled(false, ctx) function located in [extensions/i-have-adhd.ts](https://github.com/ayghri/i-have-adhd/blob/main/extensions/i-have-adhd.ts#L59-L65). This function appends an entry to i-have-adhd-state in the session manager and dispatches a DISABLED_MESSAGE_TYPE notification (defined at lines 23-30), which displays the DISABLED_NOTICE constant (lines 26-27) to confirm the change.
The extension itself remains imported and active in memory. It simply stops injecting the custom ruleset defined in skills/i-have-adhd/SKILL.md into the conversation context.
Re-enabling After Disabling
Because the disable operation only flips a runtime flag, you can immediately re-enable ADHD mode by issuing the /i-have-adhd command or toggling the state again. The session-wide persistence survives conversation tree events but resets when the agent restarts with a fresh session.
Consequences of Removing the i-have-adhd Plugin
Permanent Code Removal
Removing the plugin involves deleting the [plugin.json](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json) registration file and/or the extensions/i-have-adhd.ts source file from your repository. Once these files are gone, the Pi-Coding-Agent no longer imports the extension during startup, meaning the setEnabled function and command handlers never load into memory.
Complete Loss of Functionality
Without the extension code present, the stop phrases stop adhd mode and commands like /i-have-adhd have no effect—the agent interprets them as plain text. Unlike disabling, this change is repository-wide and survives indefinitely until you restore the deleted files.
Key Differences Comparison
| Aspect | Disabling ("Stop ADHD Mode") | Removing the Plugin |
|---|---|---|
| Scope | Session-wide, temporary | Repository-wide, permanent |
| Implementation | Calls setEnabled(false, ctx) which updates i-have-adhd-state and sends DISABLED_MESSAGE_TYPE |
Extension code in extensions/i-have-adhd.ts is never imported; plugin.json entry is missing |
| Re-enable | Run /i-have-adhd or toggle again |
Must restore plugin.json and source files or reinstall |
| Persistence | Survives session-tree events but not fresh starts | Permanent absence of functionality |
Practical Code Examples
Disabling at Runtime
// User input in conversation
stop adhd mode
// Internal execution in extensions/i-have-adhd.ts:
setEnabled(false, ctx)
// → Updates i-have-adhd-state
// → Sends DISABLED_MESSAGE_TYPE with DISABLED_NOTICE
Removing the Plugin Permanently
# Navigate to repository root
cd your-pi-coding-agent-project
# Remove the plugin registration
rm plugin.json
# Remove the extension source (if installed as separate files)
rm -rf extensions/i-have-adhd.ts
# Commit the changes
git add -A
git commit -m "Remove i-have-adhd plugin"
Critical Source Files
Understanding these files clarifies the distinction between runtime disabling and permanent removal:
extensions/i-have-adhd.ts(lines 59-65): Contains thesetEnabledfunction that handles the disable toggle and theDISABLED_MESSAGE_TYPElogic (lines 23-30) that generates the disabled notification.plugin.json: Registers the extension with the Pi-Coding-Agent loader; deleting this file prevents the extension from loading entirely.skills/i-have-adhd/SKILL.md: Defines the ADHD-specific output rules that get injected when the mode is enabled; disabling stops this injection, while removing the plugin eliminates access to these rules.
Summary
- Disabling via "stop adhd mode" triggers
setEnabled(false, ctx)inextensions/i-have-adhd.ts, setting a temporary session flag that stops rule injection while keeping the extension ready for reactivation. - Removing the plugin requires deleting
plugin.jsonand the extension source, permanently eliminating the feature and all associated commands from your project. - Disabling persists only for the current session tree, whereas removal persists until you manually restore the files.
- The stop phrases and
/i-have-adhdcommand depend entirely on the extension being loaded; removal renders these inputs inert.
Frequently Asked Questions
Can I re-enable i-have-adhd after typing "stop adhd mode"?
Yes. Disabling is a reversible toggle. You can re-enable the mode immediately by running the /i-have-adhd command or using the toggle command again, which calls setEnabled(true, ctx) and resumes injection of the ADHD-specific ruleset.
Does disabling the mode remove the custom ruleset from my conversation history?
No. Disabling only stops future injection of the rules defined in skills/i-have-adhd/SKILL.md. It does not alter or remove historical messages in your conversation tree that were already processed with the ADHD formatting applied.
What file do I need to delete to completely remove the i-have-adhd feature?
To permanently remove the feature, delete [plugin.json](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json) from your repository root. This file registers the extension with the Pi-Coding-Agent; without it, the loader never imports extensions/i-have-adhd.ts, effectively eliminating all functionality.
Will the "stop adhd mode" command persist across agent restarts?
No. The disabled state is stored in the session manager via the i-have-adhd-state entry, which survives conversation tree navigation but clears when you start a fresh agent session. If you need the feature permanently off, you must remove the plugin files rather than relying on the stop command.
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 →