How to Create Custom Command Triggers for the i-have-adhd Skill: Beyond /i-have-adhd and $i-have-adhd

You can create custom command triggers for the i-have-adhd skill by adding new agent configuration files that reference the same SKILL.md rule set, enabling multiple invocation patterns like /focus-now or $adhd-mode without duplicating any logic.

The i-have-adhd repository provides a lightweight, file-based skill that reshapes LLM outputs to be action-first and ADHD-friendly. Unlike complex plugins, it requires no code execution—just declarative configuration files that instruct the host assistant how to transform responses. The default triggers are /i-have-adhd and $i-have-adhd, but the architecture makes extending these trivial. This article shows how to create custom command triggers by leveraging the existing agent configuration system according to the ayghri/i-have-adhd source code.

How the Skill Architecture Enables Custom Triggers

The i-have-adhd skill separates behavior from invocation mechanism. The core rules live in a single Markdown file, while agent configurations define how users trigger those rules.

Component Purpose Key File
Skill definition 10 rules for ADHD-friendly output (lead with action, numbered steps, no tangents) skills/i-have-adhd/SKILL.md
Agent configuration YAML/TOML files that register commands with specific assistants skills/i-have-adhd/agents/openai.yaml, gemini.toml
Plugin manifest JSON discovery file for Claude, Codex, and other hosts plugin.json
Always-on hook Bash script for session-start auto-loading hooks/always-on.sh

Because SKILL.md contains all behavior logic, any new agent file automatically inherits the same transformation rules. You only change how users invoke the skill.

Creating a Custom Trigger: Step-by-Step

Follow these steps to add a custom command trigger like /focus-now or $adhd-mode:

1. Copy and Modify an Existing Agent File

Start with the closest existing agent configuration. For OpenAI-compatible assistants, copy skills/i-have-adhd/agents/openai.yaml:


# File: skills/i-have-adhd/agents/custom.yaml

interface:
  display_name: "Focus Now"
  short_description: "Alias for i-have-adhd with shorter trigger"
  default_prompt: "Use $i-have-adhd to make this response action-first."
policy:
  allow_implicit_invocation: true

Key fields to modify:

  • display_name – Human-readable name shown in command palettes
  • short_description – Help text explaining the trigger's purpose
  • default_prompt – References the original skill via $i-have-adhd or /i-have-adhd

2. Register the New Trigger in plugin.json

If your host assistant requires explicit command enumeration, add the new trigger to plugin.json:

{
  "name": "i-have-adhd",
  "version": "1.0.0",
  "commands": [
    "/i-have-adhd",
    "$i-have-adhd",
    "/focus-now",
    "$adhd-mode"
  ],
  "agents": [
    "skills/i-have-adhd/agents/openai.yaml",
    "skills/i-have-adhd/agents/custom.yaml"
  ]
}

3. Test and Reload

After placing the new agent file, reload the plugin or restart your assistant:


# Example: Reload Claude plugins

claude plugin reload i-have-adhd

# Or fully restart the assistant

claude restart

Now typing /focus-now triggers the same ADHD-friendly transformation as the default /i-have-adhd.

Always-On Mode: Trigger Without Typing Commands

The hooks/always-on.sh script enables session-start auto-loading, making custom triggers behave as if they're always active.

How it works:

The script checks for a flag file at ~/.claude/.i-have-adhd-always (or platform-equivalent paths). If present, it injects the full SKILL.md rules at session start without requiring any slash command.


# Enable always-on behavior

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

# Disable always-on behavior

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

Custom trigger integration: Since always-on mode uses the same SKILL.md source, custom triggers you create will automatically respect this flag. No modifications to always-on.sh are needed—the script loads the skill definition universally.

Platform-Specific Custom Trigger Examples

Claude/Codex (YAML Configuration)


# File: skills/i-have-adhd/agents/quick-focus.yaml

interface:
  display_name: "Quick Focus"
  short_description: "One-word trigger for ADHD mode"
  default_prompt: "Apply i-have-adhd rules: lead with next action, number steps, no preamble."
policy:
  allow_implicit_invocation: true
  invocation_patterns:
    - "/qf"
    - "$focus"

Gemini (TOML Configuration)


# File: ~/.gemini/commands/adhd-mode.toml

[command]
name = "adhd-mode"
description = "Shorthand for i-have-adhd rules"
trigger = "/adhd"
skill_path = "/path/to/i-have-adhd/skills/i-have-adhd/SKILL.md"
allow_implicit = true

OpenAI GPTs (JSON Configuration)

{
  "name": "Focus Mode",
  "description": "Custom trigger for ADHD-friendly responses",
  "instructions": "Use the rules from /path/to/i-have-adhd/skills/i-have-adhd/SKILL.md for all responses.",
  "conversation_starters": ["/focus", "/now"]
}

Critical Configuration Details

When creating custom command triggers, respect these constraints from the source implementation:

  • allow_implicit_invocation: true – Required for the assistant to recognize the trigger without explicit /plugin_name prefixes
  • Unique trigger names – Avoid collisions with built-in assistant commands; check your host's namespace first
  • Relative skill paths – Use absolute paths in default_prompt or skill_path fields to prevent resolution failures
  • No logic duplication – Always reference the canonical SKILL.md rather than copying rule text

Programmatic Invocation Example

Trigger custom commands via API or CLI:

import subprocess
import json
import os

def invoke_custom_trigger(prompt, trigger="/focus-now"):
    """
    Programmatically trigger i-have-adhd with custom command.
    Assumes codex CLI and plugin are installed.
    """
    full_prompt = f"{trigger} {prompt}"
    
    result = subprocess.check_output(
        ["codex", "run", "--model", "gpt-4o", "--prompt", full_prompt],
        env={**os.environ, "I_HAVE_ADHD_ALWAYS": "1"},  # Respect always-on flag

        text=True
    )
    
    return json.loads(result)

# Usage

response = invoke_custom_trigger(
    "Explain Python list comprehensions",
    trigger="$adhd-mode"
)
print(response["output"])  # Action-first, numbered steps, no tangents

Complete File Reference for Custom Triggers

File Purpose Custom Trigger Relevance
skills/i-have-adhd/SKILL.md Core 10-rule behavior definition Never modify—all triggers reference this
skills/i-have-adhd/agents/openai.yaml Template for OpenAI-compatible triggers Copy and modify for custom triggers
skills/i-have-adhd/agents/gemini.toml Template for Gemini triggers Copy and modify for custom triggers
plugin.json Command registry for discovery hosts Update when adding new trigger names
hooks/always-on.sh Session auto-loader No changes needed—works with all triggers
INSTALL.md Platform-specific installation guides Reference for path conventions

Summary

  • Custom command triggers for i-have-adhd require only new agent configuration files, not code changes
  • Copy existing YAML/TOML agents from skills/i-have-adhd/agents/ and modify display_name, short_description, and invocation patterns
  • Reference SKILL.md directly in default_prompt to inherit all 10 ADHD-friendly rules automatically
  • Update plugin.json if your host requires explicit command registration
  • Always-on mode via hooks/always-on.sh works universally—no per-trigger configuration needed
  • Maintain allow_implicit_invocation: true to enable natural trigger recognition

Frequently Asked Questions

How many custom triggers can I create for i-have-adhd?

You can create unlimited custom triggers. Each trigger is a lightweight agent configuration file (typically under 20 lines) pointing to the same SKILL.md. The repository imposes no limits—only your host assistant's namespace constraints apply.

Do custom triggers require reinstalling the plugin?

No. Place the new agent file in skills/i-have-adhd/agents/ and reload the plugin with your host's reload command (e.g., claude plugin reload). The skill logic in SKILL.md remains unchanged, so existing functionality persists.

Can I use emoji or special characters in trigger names?

depends on your host assistant. The i-have-adhd skill itself accepts any trigger string that the host parses and routes to SKILL.md. Test emoji triggers like /🎯 or $⚡ with your specific platform, as some sanitize or reject non-alphanumeric command prefixes.

Will custom triggers work with always-on mode enabled?

Yes. The hooks/always-on.sh script loads SKILL.md unconditionally at session start, making all rules active regardless of which trigger you configured. Custom triggers remain available for explicit invocation when always-on is disabled.

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 →