Opt-in Invocation vs Always-On Mode in i-have-adhd: Complete Setup Guide

The i-have-adhd skill supports two activation methods: opt-in invocation requires running /i-have-adhd or $i-have-adhd per session, while always-on mode automatically applies rules via a flag file at ~/.claude/.i-have-adhd-always or Gemini extension installation.

The i-have-adhd repository by ayghri provides an AI assistant skill designed to optimize interactions for ADHD workflows. When configuring opt-in invocation vs always-on mode, users choose between manual session-based activation or persistent automatic application. Both methods ultimately load the same rule set from skills/i-have-adhd/SKILL.md, but differ significantly in trigger mechanisms and persistence.

Understanding the Two Activation Methods

Opt-in Invocation (Command Mode)

Opt-in invocation requires explicit user action to activate the skill for a single session. This mode uses the disable-model-invocation: true flag in the skill's front-matter to ensure nothing happens until manually triggered.

To activate in Claude Code:

/i-have-adhd

To activate in Codex:

$i-have-adhd

Once activated, the ruleset remains active only for the current session. To deactivate before the session ends, type:

stop adhd mode

Or alternatively:

normal mode

Always-On Mode (Extension/Flag File)

Always-on mode automatically injects the ADHD ruleset at the start of every session without requiring manual invocation. This persistence is achieved through two possible mechanisms:

  1. Flag file method: Create ~/.claude/.i-have-adhd-always (or $CLAUDE_CONFIG_DIR/.i-have-adhd-always)
  2. Gemini extension method: Install the skill as a Gemini extension

When using the flag file approach, a session-start hook checks for the file's existence and automatically loads the rules. To disable, remove the flag file:

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

How the Mechanisms Work Under the Hood

Opt-in Architecture

In the opt-in approach, the skill resides in skills/i-have-adhd/ and remains dormant until explicitly called. The front-matter configuration disable-model-invocation: true prevents automatic loading, ensuring the rules only apply when the user types the specific trigger command. This design gives users complete control over when ADHD-optimized formatting and response patterns are applied.

Always-On Architecture

The always-on implementation relies on hooks/always-on.sh, a session-start hook registered in hooks/hooks.json. When Claude Code initializes a session, the hook executes and checks for the presence of $CLAUDE_CONFIG_DIR/.i-have-adhd-always. If the flag file exists, the hook reads skills/i-have-adhd/SKILL.md, strips its YAML front-matter, and prints the full ruleset before every assistant reply.

This mechanism ensures the ADHD ruleset is injected automatically at the start of every session, affecting all replies until the flag file is removed or the hook is disabled.

Configuration Examples

Enable Opt-in Mode (Per-Session Usage)

For Claude Code users who prefer manual activation:


# Start a new Claude session

# Type the trigger to activate:

/i-have-adhd

# The skill stays active for this session only.

# When finished, type:

stop adhd mode

For Codex users:


# In a Codex session:

$i-have-adhd

# Deactivate with:

stop adhd mode

Enable Always-On Mode via Flag File

Create the persistence flag:

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

From this point forward, every Claude session automatically starts with the ADHD ruleset active. To remove always-on behavior:

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

Enable Always-On Mode via Gemini Extension

Install as a system extension:

gemini extensions install https://github.com/ayghri/i-have-adhd

# Verify installation:

gemini extensions list

The extension loads GEMINI.md, which imports the full skill rules. To uninstall:

gemini extensions uninstall i-have-adhd

Disable the Always-On Hook (Opt-in Only)

If you prefer strict opt-in behavior without the automatic hook checking, edit or delete the hook entry in hooks/hooks.json:


# Remove or comment out this entry:

# "command": "sh \"${CLAUDE_PLUGIN_ROOT}/hooks/always-on.sh\""

Removing this entry prevents the automatic injection entirely, forcing reliance on manual command invocation.

Key Files and Implementation Details

File Purpose
skills/i-have-adhd/SKILL.md Contains the full ADHD-style rule set loaded by both modes
hooks/always-on.sh Session-start hook that checks for the flag file and injects rules
hooks/hooks.json Registers always-on.sh as a Claude Code automatic hook
INSTALL.md Detailed installation instructions for both activation methods
README.md Quick overview and usage examples

According to the ayghri/i-have-adhd source code, the critical difference between modes lies in when the SKILL.md content is loaded: opt-in loads only on explicit command trigger, while always-on loads via the shell hook at session initialization.

Summary

  • Opt-in invocation requires manual activation via /i-have-adhd (Claude) or $i-have-adhd (Codex) and persists only for the current session
  • Always-on mode uses a flag file at ~/.claude/.i-have-adhd-always or Gemini extension installation to automatically apply rules every session
  • The disable-model-invocation: true setting prevents automatic loading in opt-in mode
  • hooks/always-on.sh and hooks/hooks.json manage the automatic injection mechanism
  • Both modes reference the same rule definitions in skills/i-have-adhd/SKILL.md

Frequently Asked Questions

What is the difference between opt-in and always-on mode in i-have-adhd?

Opt-in mode requires you to type a specific command (/i-have-adhd or $i-have-adhd) to activate the skill for that single session, while always-on mode automatically applies the ADHD ruleset at the start of every session through either a flag file or extension installation. Opt-in gives you session-by-session control, whereas always-on provides persistent behavior across all sessions.

How do I completely disable always-on mode?

Delete the flag file by running rm ~/.claude/.i-have-adhd-always in your terminal, or uninstall the Gemini extension using gemini extensions uninstall i-have-adhd. If you installed the Claude Code hook, you may also need to remove the entry from hooks/hooks.json to prevent future automatic checks.

Can I use both opt-in and always-on modes simultaneously?

While technically possible, it is redundant because always-on mode already loads the rules automatically, making manual invocation unnecessary. If the flag file exists, the rules are already active, so typing the opt-in command would have no additional effect. Choose the method that best fits your workflow consistency needs.

Where are the actual ADHD rules defined?

The complete rule set is defined in skills/i-have-adhd/SKILL.md. Both activation methods ultimately read and apply this file's contents; the opt-in command loads it on demand, while the always-on hook reads it at session start, strips the YAML front-matter, and injects the rules into the conversation context.

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 →