What Files Does the i-have-adhd Plugin Install?

The i-have-adhd plugin installs a TypeScript extension file, a skill directory containing LLM configurations, optional automation hooks, and JSON metadata manifests when added to a PI environment.

The i-have-adhd plugin, maintained in the ayghri/i-have-adhd repository, is a PI (Prompt Interface) package that organizes its assets into a predictable directory structure. When you install it via pi add i-have-adhd, the PI loader discovers and registers these files based on declarations in the package.json manifest.

Extension Files

The plugin contributes runtime logic through a single TypeScript extension file located at extensions/i-have-adhd.ts. This file registers output-shaping logic with the PI runtime during initialization.

According to the source code, the PI loader locates this file through the pi.extensions array defined in package.json:

{
  "pi.extensions": [
    "extensions/i-have-adhd.ts"
  ]
}

Skill Assets

The plugin installs a complete skill tree under the skills/i-have-adhd/ directory. These files define the behavior and configuration for the LLM interactions:

The PI loader discovers these assets through the pi.skills array in package.json, which points to the skills/ directory root.

Plugin Metadata

Two manifest files provide essential configuration data:

plugin.json contains minimal metadata including the plugin name and description. The PI loader reads this file first to identify the package before processing other assets.

package.json serves as the npm-style manifest that declares both the pi.extensions and pi.skills arrays. This file also provides versioning, licensing information, and dependency management for the ayghri/i-have-adhd package.

Optional Automation Hooks

The plugin includes three "always-on" hook scripts that execute automatically when the host environment enables them:

  • hooks/always-on.sh — Bash script for Unix-like systems
  • hooks/always-on.ps1 — PowerShell script for Windows environments
  • hooks/always-on.mjs — JavaScript (Node.js) script for cross-platform compatibility

These hooks are defined in hooks/hooks.json and are copied into the host's .pi/hooks directory during installation if the host configuration permits always-on automation.

Documentation and License Files

While not part of the runtime installation, the package ships with several documentation files: README.md, INSTALL.md, GEMINI.md, and LICENSE. These provide developer guidance and legal information but are not registered by the PI loader.

How the Installation Process Works

When you add the plugin to a PI project, the following sequence occurs:

  1. The PI loader reads package.json to identify the pi.extensions and pi.skills entries
  2. It registers extensions/i-have-adhd.ts as an active extension
  3. It makes the entire skills/i-have-adhd tree available as a callable skill
  4. It copies hook files to .pi/hooks/ if always-on automation is enabled

You can verify the installation by checking your pi.json configuration:

{
  "plugins": [
    "i-have-adhd"
  ]
}

To invoke the installed skill from a prompt:

{
  "skill": "i-have-adhd",
  "input": "Summarize the meeting notes."
}

To manually run the always-on hook for testing:

bash ./hooks/always-on.sh

Summary

Frequently Asked Questions

What is the purpose of the extensions/i-have-adhd.ts file?

The extensions/i-have-adhd.ts file contains TypeScript code that registers output-shaping logic with the PI runtime. It executes when the plugin loads and modifies how the PI system processes responses or handles specific workflows.

How does the PI loader discover the skill files?

The PI loader reads the pi.skills array in package.json, which declares the path to the skills/ directory. It then automatically registers all files under skills/i-have-adhd/, including the SKILL.md description and the agent configuration files in the agents/ subdirectory.

Are the always-on hooks required for the plugin to function?

No, the hooks are optional. The plugin functions fully without them. The scripts in hooks/always-on.sh, hooks/always-on.ps1, and hooks/always-on.mjs only execute if the host PI environment explicitly enables "always-on" hook automation in its configuration.

Where is the plugin configuration defined?

The primary configuration is defined in package.json through the pi.extensions and pi.skills arrays. Additional metadata resides in plugin.json, while specific LLM parameters are configured in skills/i-have-adhd/agents/openai.yaml and skills/i-have-adhd/agents/gemini.toml.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →