# Why the i-have-adhd Always-On Flag Requires a Specific Plugin Version

> Discover why the i-have-adhd always-on flag needs plugin version 0.1.0 or later. Learn about the SessionStart hook dependency for optimal functionality.

- Repository: [Ayoub Ghriss/i-have-adhd](https://github.com/ayghri/i-have-adhd)
- Tags: deep-dive
- Published: 2026-07-22

---

**The always-on flag only functions with plugin version 0.1.0 or later because it depends on a SessionStart hook that executes [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) at the start of every session, which earlier versions lack.**

The **always-on flag** in the `ayghri/i-have-adhd` repository provides persistent ADHD-focused assistance by automatically injecting the ruleset into every Claude Code session. However, this feature requires specific hook infrastructure within the plugin itself to operate. Without the correct version installed, the flag file is silently ignored and the behavior never activates.

## How the Always-On Mechanism Works

The always-on feature operates through a file-based flag system. When you create the file `~/.claude/.i-have-adhd-always`, you signal the plugin to activate persistent mode. At session start, the system checks for this flag and, if present, injects the contents of [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) into the conversation context.

This process relies on the [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) script (lines 10-15 and 29-30), which performs three critical functions: checking for the flag file's existence, loading the SKILL.md ruleset, and printing an activation banner. The script references the specific path `~/.claude/.i-have-adhd-always` to determine whether to proceed with injection.

## The SessionStart Hook Dependency

The core requirement that ties the always-on flag to a specific version is the **SessionStart hook** implementation. According to the source code in [`hooks/hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json), the plugin registers [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) to execute automatically at the start of every Claude Code session.

This hook infrastructure was introduced in **plugin version 0.1.0**. Older releases of the `i-have-adhd` plugin do not contain the `hooks/` directory or the [`hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks.json) configuration file. Consequently, even if you create the flag file on disk, the absence of the hook means no script runs to check for it or load the ruleset.

## Version Compatibility and File Structure

To verify your plugin includes the necessary components, check for these specific files in your installation:

- [`hooks/hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json) – Registers the SessionStart hook (present only in v0.1.0+)
- [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) – The executable script that processes the flag file
- [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) – The ruleset content injected when the flag is active

If your installation predates version 0.1.0, these files are missing entirely, breaking the always-on functionality chain.

## Enabling and Troubleshooting the Always-On Flag

To activate the feature with a compatible version:

```bash

# Create the flag file to enable always-on mode

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

```

To disable it:

```bash

# Remove the flag file to disable always-on mode

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

```

If the always-on behavior fails to activate despite creating the flag file, update the plugin to ensure the SessionStart hook is present:

```bash

# Update to the version containing hooks/hooks.json

claude plugin marketplace update i-have-adhd

```

The troubleshooting documentation in [`INSTALL.md`](https://github.com/ayghri/i-have-adhd/blob/main/INSTALL.md) (lines 99-100) specifically notes this version requirement, indicating that users must update to the release that includes the hook infrastructure for the flag to function.

## Summary

- The always-on flag requires **plugin version 0.1.0 or later** to function because earlier versions lack the SessionStart hook infrastructure.
- The feature depends on [`hooks/hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json) registering [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) to execute at session start.
- The script checks for `~/.claude/.i-have-adhd-always` and injects [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) when present.
- Update the plugin using `claude plugin marketplace update i-have-adhd` if the flag appears ineffective.

## Frequently Asked Questions

### What plugin version do I need for the always-on flag to work?

You need **version 0.1.0 or later**. This version introduced the [`hooks/hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json) file and the [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) script that checks for the flag file at session start. Earlier versions lack this infrastructure entirely.

### Why is my always-on flag file being ignored?

If you created `~/.claude/.i-have-adhd-always` but see no effect, you are likely running a plugin version older than 0.1.0. Without the SessionStart hook defined in [`hooks/hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json), the system never executes the script that reads the flag file. Update the plugin to resolve this.

### Where is the always-on logic implemented in the source code?

The logic resides in [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) (specifically lines 10-15 and 29-30), which checks for the flag file and loads the ruleset. The hook registration that triggers this script is defined in [`hooks/hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json). The actual ruleset content comes from [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md).

### Can I use the always-on feature without updating the plugin?

No. The always-on functionality fundamentally requires the SessionStart hook mechanism introduced in version 0.1.0. There is no workaround to enable this feature in earlier versions because the necessary hook infrastructure and script files are absent from those releases.