How Does the i-have-adhd Plugin Help Manage Tasks? A Technical Guide to ADHD-Focused AI Responses
TLDR: The i-have-adhd plugin reshapes AI responses into actionable, bite-sized checklists by injecting ADHD-focused rules directly into the system prompt, ensuring every output starts with an immediate next step and includes specific time estimates.
The ayghri/i-have-adhd repository provides an OpenCode plugin that addresses executive function challenges by restructuring how language models communicate task instructions. By embedding ten specific guidelines into the model's prompt through the experimental.chat.system.transform hook, it eliminates cognitive overhead and transforms verbose explanations into low-friction, task-centric instructions.
Core Architecture of the i-have-adhd Plugin
The plugin consists of three integrated components that work together to modify model behavior at the prompt level.
The SKILL.md Rule Set
Located at skills/i-have-adhd/SKILL.md, this file encodes the canonical ten guidelines that govern response formatting. These rules enforce structured outputs including leading with the next action, numbering multi-step tasks, and providing specific time estimates for each step. The markdown file serves as the source-of-truth that the plugin injects into system prompts when activated.
The OpenCode Plugin Loader
The JavaScript module .opencode/plugins/i-have-adhd.mjs registers the skill directory with OpenCode and exposes the /i-have-adhd command for session-based activation. This module handles plugin initialization and manages the optional always-on mode through the experimental.chat.system.transform hook, which prepends content to the system prompt before each model invocation.
How the Plugin Transforms Task Management
When activated, the plugin modifies every model response to reduce decision paralysis and cognitive load through specific structural constraints.
The Five ADHD-Focused Response Rules
According to the SKILL.md source code, the plugin enforces these key behavioral changes:
- Immediate next step – The first line must always be a concrete action performable right now, not background context.
- Numbered steps – Multi-step work breaks into short, numbered lists with single bounded actions per item.
- Time estimates – Each step includes concrete durations (e.g., "≈ 5 min") to aid planning and reduce time blindness.
- Visible wins – Completed steps receive highlight markers to provide instant progress feedback and dopamine reinforcement.
- No tangents – The model addresses only the current issue before introducing new concerns, maintaining tight focus.
Always-On Mode and Persistence
For continuous assistance, the plugin checks for the existence of ~/.config/opencode/.i-have-adhd-always. When this flag file is present, the experimental.chat.system.transform hook prepends a header and the complete rule set to every system prompt automatically. Users disable this persistent mode by saying "stop adhd mode" or removing the flag file.
Practical Implementation Examples
To activate the plugin for a single session, use the slash command:
/i-have-adhd
This produces responses where the first line is immediately actionable:
Run `npm install jsonwebtoken`, then edit `src/auth.ts:42`.
To enable persistent ADHD mode across all turns, create the flag file:
touch ~/.config/opencode/.i-have-adhd-always
Once enabled, every response begins with a header indicator and applies the full ruleset:
ADHD MODE ACTIVE (always‑on). The ruleset below applies to every response...
Configure the plugin in opencode.json by referencing the module path:
{
"plugin": ["./.opencode/plugins/i-have-adhd.mjs"]
}
The plugin then generates structured output like:
1. Open `src/auth.ts`
2. Replace `verifyToken` (lines 42‑58) with the snippet below
3. Run `npm test -- auth.spec.ts`
Summary
- The i-have-adhd plugin modifies AI behavior by injecting rules from
skills/i-have-adhd/SKILL.mdinto system prompts via theexperimental.chat.system.transformhook. - The
.opencode/plugins/i-have-adhd.mjsmodule provides the/i-have-adhdcommand and manages always-on functionality. - Persistent mode activates via
~/.config/opencode/.i-have-adhd-alwaysand ensures consistent formatting across all turns. - Responses follow strict formatting: immediate actions, numbered steps, time estimates, and progress tracking to reduce cognitive load.
- The architecture eliminates executive function hurdles for users managing complex tasks by removing ambiguity and decision points.
Frequently Asked Questions
What files control the i-have-adhd plugin behavior?
The core behavior is defined in skills/i-have-adhd/SKILL.md, which contains the ten guidelines for ADHD-focused responses. The implementation logic resides in .opencode/plugins/i-have-adhd.mjs, while hooks/always-on.mjs provides reference implementations for adapting the functionality to other runtimes.
How do I enable the plugin permanently?
Create an empty file at ~/.config/opencode/.i-have-adhd-always. This triggers the experimental.chat.system.transform hook to prepend the rule set to every system prompt. To disable, either remove the file or tell the model "stop adhd mode".
What makes the responses ADHD-friendly?
The plugin enforces five specific constraints derived from the SKILL.md rules: leading with immediate next steps, numbering multi-step tasks, providing concrete time estimates, highlighting completed wins, and preventing tangential information. These rules reduce cognitive load and decision paralysis associated with executive dysfunction.
Can I use this plugin outside of OpenCode?
While designed for OpenCode, the hooks/always-on.mjs file serves as a reference implementation showing how to adapt the experimental.chat.system.transform functionality to other runtimes. The SKILL.md rules remain applicable to any system capable of prompt injection.
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 →