# How to Make i-have-adhd Always-On: Enable Permanent ADHD Mode for Claude

> Enable i-have-adhd always-on mode for Claude. Learn how to create a flag file to activate permanent ADHD mode automatically for every session.

- Repository: [Ayoub Ghriss/i-have-adhd](https://github.com/ayghri/i-have-adhd)
- Tags: how-to-guide
- Published: 2026-07-30

---

**Create a flag file named `.i-have-adhd-always` in your Claude configuration directory (default `~/.claude`) to automatically activate the i-have-adhd ruleset for every new Claude session without manual invocation.**

The `i-have-adhd` repository by ayghri includes an automated hook system that eliminates the need to manually load the ADHD formatting ruleset for each conversation. By leveraging the always-on hook mechanism, you can persistently enable the project's output style across all Claude sessions. This guide explains how the automatic activation works and how to configure it using the built-in flag file system.

## How the Always-On Hook System Works

The repository ships with a **SessionStart hook** that automatically checks for an activation flag and injects the skill definition when present. According to the ayghri/i-have-adhd source code, this mechanism operates through three coordinated components:

### SessionStart Hook Registration

The file [`hooks/hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json) registers a `SessionStart` hook that executes [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) every time Claude initializes a new session. This registration ensures the script runs automatically before any user interaction begins.

### Flag File Detection Logic

Inside [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) (lines 10-15), the script checks for the existence of `.i-have-adhd-always` within the `$CLAUDE_CONFIG_DIR` directory (falling back to `~/.claude`). If the file is absent, the script exits silently and the skill remains inactive. When present, execution continues to the loading phase.

### Skill Loading and Injection

When the flag file exists, the script locates [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md), strips the YAML front-matter, and prints the ruleset to the session output (lines 18-30 of [`always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/always-on.sh)). This injection happens at session start, making the ADHD formatting rules immediately available without manual commands.

## Enabling i-have-adhd Always-On Mode

To activate permanent mode, you only need to create the flag file. No modifications to the source code are required.

### Default Configuration Directory

Create the flag file in the default Claude configuration location:

```bash

# Create the configuration directory if it doesn't exist

mkdir -p "$HOME/.claude"

# Create the always-on flag file

touch "$HOME/.claude/.i-have-adhd-always"

```

After running these commands, every new Claude session will automatically load the ADHD ruleset.

### Custom Configuration Directory

If you use a custom `$CLAUDE_CONFIG_DIR` location:

```bash

# Set your custom configuration path

export CLAUDE_CONFIG_DIR="$HOME/.my-claude"

# Create the directory and flag file

mkdir -p "$CLAUDE_CONFIG_DIR"
touch "$CLAUDE_CONFIG_DIR/.i-have-adhd-always"

```

The hook respects the `$CLAUDE_CONFIG_DIR` environment variable and will check for the flag file at your specified location.

## Managing and Verifying Always-On Status

Once enabled, the always-on behavior persists until explicitly disabled.

### Disabling Always-On Mode

To stop automatic activation, remove the flag file:

```bash
rm "$HOME/.claude/.i-have-adhd-always"

```

Or if using a custom path:

```bash
rm "$CLAUDE_CONFIG_DIR/.i-have-adhd-always"

```

On the next session start, the hook will detect the missing file and exit silently, leaving the skill inactive.

### Verifying Successful Activation

When the hook runs successfully, you will see output similar to:

```

ADHD MODE ACTIVE (always-on). The ruleset below applies to every response. "stop adhd mode" turns it off for this session; delete /home/you/.claude/.i-have-adhd-always to turn always-on off for good.

[…rules from SKILL.md…]

```

This confirmation indicates that [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) successfully located your flag file and injected 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 session.

## Summary

- **Flag file location**: Create `.i-have-adhd-always` in `$CLAUDE_CONFIG_DIR` (defaults to `~/.claude`) to enable automatic activation.
- **Hook mechanism**: [`hooks/hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json) registers a `SessionStart` hook that runs [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) at every session start.
- **Activation logic**: The script checks for the flag file (lines 10-15) and loads [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) (lines 18-30) when present.
- **Persistence**: The skill remains active for all sessions until you delete the flag file.
- **No code changes required**: Simply creating or removing the flag file toggles the always-on behavior.

## Frequently Asked Questions

### What happens if the flag file exists but I want to disable ADHD mode for a single session?

Type "stop adhd mode" during the session. This disables the ruleset for the current conversation only, without affecting the always-on flag file. The next new session will automatically reactivate the mode because the flag file remains in place.

### Can I move the always-on flag file to a different location?

No, the flag file must reside in the Claude configuration directory as defined by `$CLAUDE_CONFIG_DIR` (defaulting to `~/.claude`). The [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) script specifically checks this location. If you need the file elsewhere, you must symlink it to the required path or change your `$CLAUDE_CONFIG_DIR` environment variable.

### Does the always-on hook modify my Claude installation?

No. The hook operates read-only: it checks for file existence and outputs the contents of [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md). It does not write to Claude's core files, modify system settings, or permanently alter the Claude environment beyond the current session's output injection.

### Why does my session not show the ADHD ruleset after creating the flag file?

Verify that the flag file is named exactly `.i-have-adhd-always` (including the leading dot) and is located in the correct directory. Also ensure that `$CLAUDE_CONFIG_DIR` points to your expected location if you use a custom path. The hook runs at session start, so you must start a new Claude session after creating the file—reloading or refreshing an existing session will not trigger the hook.