How to Configure i-have-adhd Plugin Settings: Complete Setup Guide
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:
{
"plugin": ["./.opencode/plugins/i-have-adhd.mjs"]
}
Save this entry in your 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, 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 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:
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) 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:
# 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 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:
# 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:
/i-have-adhd
This command, defined in .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 youropencode.jsonplugins array. - Skill discovery happens automatically via the
confighook in lines 49-53 of the plugin, which injects the skills directory intoconfig.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-adhdcommand 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.
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 →