# Difference Between Disabling i-have-adhd "Stop ADHD Mode" and Removing the Plugin

> Understand the difference between disabling i-have-adhd's Stop ADHD Mode and removing the plugin. Learn how each action affects your Pi-Coding-Agent project to make informed decisions.

- Repository: [Ayoub Ghriss/i-have-adhd](https://github.com/ayghri/i-have-adhd)
- Tags: how-to-guide
- Published: 2026-08-08

---

**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)](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`](https://github.com/ayghri/i-have-adhd/blob/main/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)](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json) registration file and/or the [`extensions/i-have-adhd.ts`](https://github.com/ayghri/i-have-adhd/blob/main/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`](https://github.com/ayghri/i-have-adhd/blob/main/extensions/i-have-adhd.ts) is never imported; [`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json) entry is missing |
| **Re-enable** | Run `/i-have-adhd` or toggle again | Must restore [`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/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

```typescript
// 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

```bash

# 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`](https://github.com/ayghri/i-have-adhd/blob/main/extensions/i-have-adhd.ts)** (lines 59-65): Contains the `setEnabled` function that handles the disable toggle and the `DISABLED_MESSAGE_TYPE` logic (lines 23-30) that generates the disabled notification.
- **[`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/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`](https://github.com/ayghri/i-have-adhd/blob/main/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)` in [`extensions/i-have-adhd.ts`](https://github.com/ayghri/i-have-adhd/blob/main/extensions/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.json`](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json) and 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-adhd` command 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`](https://github.com/ayghri/i-have-adhd/blob/main/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)](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`](https://github.com/ayghri/i-have-adhd/blob/main/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.