# How to Make i-have-adhd Always-On in Claude Code

> Make i-have-adhd always-on in Claude Code by creating the flag file ~/.claude/.i-have-adhd-always. Enjoy persistent ADHD mode in all your sessions.

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

---

**Create the flag file `~/.claude/.i-have-adhd-always` to enable persistent ADHD mode across all Claude Code sessions.**

The **i-have-adhd** skill for Claude Code provides structured support for users with ADHD, but manually invoking it each session can be tedious. This guide explains how to configure always-on mode using the repository's SessionStart hook system, as implemented in [`ayghri/i-have-adhd`](https://github.com/ayghri/i-have-adhd).

## How Always-On Mode Works

Claude Code automatically executes **SessionStart hooks** defined in [[`hooks/hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json)](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json) every time a new session begins. The i-have-adhd repository registers [[`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh)](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) to run at startup.

The script performs three operations:

1. **Checks for the flag file** at `$HOME/.claude/.i-have-adhd-always` (or `$CLAUDE_CONFIG_DIR/.i-have-adhd-always` if the environment variable is set)
2. **Loads the ruleset** from [[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md), stripping YAML front-matter
3. **Prints the activation banner** and injects the rules into the session context

If the flag file is absent, the script exits silently without modifying the session.

## Enabling Always-On Mode

### Step 1: Create the Flag File

Run this command once per user account:

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

```

The path respects the `CLAUDE_CONFIG_DIR` environment variable if you use a custom Claude configuration directory.

### Step 2: Verify Activation

Start a new Claude Code session:

```bash
claude code

```

You will see an activation banner 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/youruser/.claude/.i-have-adhd-always to turn always-on off for good.

<rules from SKILL.md>

```

This confirms the [[`always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/always-on.sh)](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) hook successfully detected your flag file and loaded the complete skill ruleset.

## Managing Always-On Mode

### Disable Temporarily for One Session

Type this command in any active session:

```text
stop adhd mode

```

This suppresses ADHD mode for the current session only. The next session will reactivate automatically.

### Disable Permanently

Remove the flag file to stop automatic activation:

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

```

Future sessions will start without ADHD mode unless you manually invoke `/i-have-adhd`.

## Key Implementation Files

| File | Purpose |
|------|---------|
| [[`hooks/hooks.json`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json)](https://github.com/ayghri/i-have-adhd/blob/main/hooks/hooks.json) | Registers [`always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/always-on.sh) as a SessionStart hook |
| [[`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh)](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) | Shell script that checks the flag and loads rules |
| [[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) | Complete ruleset injected when always-on is active |
| [[`README.md`](https://github.com/ayghri/i-have-adhd/blob/main/README.md)](https://github.com/ayghri/i-have-adhd/blob/main/README.md) | Documents the `touch` shortcut for users |

The flag file approach—documented in the repository's README as "Want it on every session? `touch ~/.claude/.i-have-adhd-always`"—provides a stateless, portable mechanism that requires no code changes to the skill itself.

## Summary

- **Create** `~/.claude/.i-have-adhd-always` to enable always-on mode permanently
- **Start Claude Code** normally—no additional commands needed
- **Type** `stop adhd mode` to disable for a single session
- **Delete** the flag file to remove always-on mode entirely

This configuration leverages Claude Code's native hook system to automate skill activation without modifying core functionality.

## Frequently Asked Questions

### What happens if I delete the flag file during an active session?

Deleting `~/.claude/.i-have-adhd-always` mid-session does not affect the current session. The [[`always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/always-on.sh)](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) hook runs only at SessionStart. Changes take effect on your next Claude Code launch.

### Can I use a custom config directory instead of `~/.claude`?

Yes. Set the `CLAUDE_CONFIG_DIR` environment variable before launching Claude Code. The script checks `$CLAUDE_CONFIG_DIR/.i-have-adhd-always` first, falling back to `$HOME/.claude/` only if the variable is unset.

### Why does the banner appear even when I haven't typed a command?

The SessionStart hook executes automatically when Claude Code initializes, before you see the prompt. This design ensures ADHD mode rules are present in the system prompt from the first interaction, not after a manual trigger.