# How to Configure i-have-adhd Plugin Settings: Complete Setup Guide

> Learn to configure i-have-adhd plugin settings. This guide covers manifest registration, skill discovery, and enabling always-on mode for seamless integration.

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

---

**To configure the i-have-adhd plugin settings, register the plugin in your runtime's manifest file, ensure the skills directory is properly discovered, and toggle always-on mode using filesystem flag files.**

The i-have-adhd plugin is a multi-runtime skill designed for OpenCode, Claude Code, Codex, Pi, and OMP that modifies AI responses to be ADHD-friendly. Configuring this plugin requires three coordinated steps: plugin registration, skills path injection, and always-on flag management. This guide walks through the exact configuration process using the actual source implementation from the ayghri/i-have-adhd repository.

## Registering the Plugin in Your Runtime Manifest

The first step to configure i-have-adhd plugin settings is registering the plugin entry point in your runtime's configuration file. This tells the runtime where to find the skill implementation.

### OpenCode Configuration

For OpenCode users, add the plugin to your global configuration file at `~/.config/opencode/opencode.json`:

```json
{
  "plugin": ["./.opencode/plugins/i-have-adhd.mjs"]
}

```

Save this entry in your [`opencode.json`](https://github.com/ayghri/i-have-adhd/blob/main/opencode.json) file and restart OpenCode. The runtime will load the plugin on the next startup from the path specified. According to the repository's installation documentation, this registration step is mandatory for the plugin to initialize properly.

### Other Runtimes

While OpenCode uses [`opencode.json`](https://github.com/ayghri/i-have-adhd/blob/main/opencode.json), Claude Code and other supported runtimes scan for the plugin files in their respective plugin directories. The always-on functionality is implemented separately for Claude Code in `hooks/always-on.mjs`, which reads the same flag files but hooks into the Claude Code runtime differently.

## Enabling Skill Directory Discovery

Once registered, the plugin must ensure the runtime can locate the [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) file containing the ADHD-friendly ruleset. This happens automatically through the plugin's `config` hook.

In `.opencode/plugins/i-have-adhd.mjs`, lines 49-53 implement the directory injection:

```javascript
config.skills = config.skills || {};
config.skills.paths = config.skills.paths || [];
if (!config.skills.paths.includes(skillsDir)) config.skills.paths.push(skillsDir);

```

This code ensures the `skills` directory (containing [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)) is added to the runtime's searchable paths. Without this configuration hook, the `/i-have-adhd` command would fail to locate the ruleset file. The skill becomes searchable by the tool-chain only after this path injection completes during plugin initialization.

## Configuring Always-On Mode

The plugin supports two activation modes: **on-demand** (per-session) and **always-on** (persistent). Always-on mode automatically prepends the ADHD-friendly ruleset to every model response without manual triggering.

### Enabling Always-On Mode

Create an empty flag file in your runtime's configuration directory:

```bash

# For OpenCode

touch ~/.config/opencode/.i-have-adhd-always

# For Claude Code

touch ~/.claude/.i-have-adhd-always

```

The presence of this file activates the always-on hook. According to the source code in `.opencode/plugins/i-have-adhd.mjs` (lines 27-33), the plugin checks for this file's existence during the `experimental.chat.system.transform` hook execution.

### How the Always-On Hook Works

When the flag file is present, the plugin loads the rule body from [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) and prepends a header explaining how to exit the mode. Lines 59-78 of the plugin implementation handle this injection, automatically transforming every system prompt to include the ADHD-friendly formatting rules. The Claude Code implementation in `hooks/always-on.mjs` (lines 36-40) provides identical functionality by reading the same flag file format.

### Disabling Always-On Mode

You can disable the mode either temporarily or permanently:

**Temporary (Current Session):** Type "stop adhd mode" or "normal mode" in chat. The skill's persistence rules honor this command and cease injection for the remainder of the session.

**Permanent:** Delete the flag file:

```bash

# For OpenCode

rm ~/.config/opencode/.i-have-adhd-always

# For Claude Code

rm ~/.claude/.i-have-adhd-always

```

## Using On-Demand Activation

If you prefer not to enable always-on mode, activate the skill manually per session using the command interface. Once the plugin is registered, execute:

```bash
/i-have-adhd

```

This command, defined in [`.opencode/command/i-have-adhd.md`](https://github.com/ayghri/i-have-adhd/blob/main/.opencode/command/i-have-adhd.md), loads the skill for the current session only without creating the persistent flag file. This approach is ideal when you need ADHD-friendly responses for a single interaction or specific task without altering your default runtime behavior.

## Summary

- **Register the plugin** by adding `"./.opencode/plugins/i-have-adhd.mjs"` to your [`opencode.json`](https://github.com/ayghri/i-have-adhd/blob/main/opencode.json) plugins array.
- **Skill discovery** happens automatically via the `config` hook in lines 49-53 of the plugin, which injects the skills directory into `config.skills.paths`.
- **Always-on mode** is controlled by empty flag files at `~/.config/opencode/.i-have-adhd-always` (OpenCode) or `~/.claude/.i-have-adhd-always` (Claude Code).
- **On-demand usage** requires running the `/i-have-adhd` command for per-session activation without persistence.
- **Disable temporarily** by saying "stop adhd mode" in chat, or **permanently** by removing the flag file.

## Frequently Asked Questions

### Where do I place the plugin registration for OpenCode?

Place the plugin entry in `~/.config/opencode/opencode.json` inside a `plugin` array that points to `"./.opencode/plugins/i-have-adhd.mjs"`. The runtime loads this file on startup to initialize the skill.

### What happens if I delete the .i-have-adhd-always flag file?

Deleting the flag file immediately disables always-on mode. The plugin's `experimental.chat.system.transform` hook checks for this file's existence (lines 27-33 of the plugin source), and without it, the ADHD ruleset stops being prepended to model responses.

### Can I use this plugin with Claude Code instead of OpenCode?

Yes, the repository includes a separate implementation for Claude Code in `hooks/always-on.mjs` that reads the flag file from `~/.claude/.i-have-adhd-always`. The configuration process is similar but uses Claude Code's specific configuration directory structure.

### How do I temporarily disable the mode without deleting the flag file?

Type "stop adhd mode" or "normal mode" in your chat session. The skill's internal persistence rules detect these phrases and disable the injection for the remainder of that specific session while leaving the flag file intact for future sessions.