# i-have-adhd as Custom Command vs Extension in Gemini CLI: Complete Installation Guide

> Install i-have-adhd in Gemini CLI as a custom command or extension. Get ADHD friendly output for every response with this complete guide. Learn installation steps now.

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

---

**You can install the i-have-adhd skill in Gemini CLI either by copying a `.toml` file to `~/.gemini/commands` (custom command) or by running `gemini extensions install` (extension), with both methods ultimately applying the same ADHD-friendly output rules from [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) to every response.**

The `ayghri/i-have-adhd` repository provides a Gemini CLI skill designed to restructure AI outputs for ADHD-friendly readability. Located under `skills/i-have-adhd`, this tool modifies how Gemini presents information throughout your session. Understanding whether to deploy it as a custom command or an extension depends on your workflow preferences, installation requirements, and portability needs.

## How the Custom Command Route Works

The **custom command** mechanism relies on a self-contained TOML configuration that Gemini CLI loads at startup.

When you place the [`gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/gemini.toml) file (found at [`skills/i-have-adhd/agents/gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/gemini.toml) in the repository) into your local `~/.gemini/commands` directory, the CLI registers `/i-have-adhd` as an executable command. Gemini CLI reads every file in `~/.gemini/commands` during initialization, making the command available immediately in any active terminal session.

This approach stores the command definition locally and takes precedence over extensions because custom commands are loaded first in the initialization sequence.

## How the Extension Route Works

The **extension** mechanism uses a JSON manifest that describes the skill to Gemini CLI's extension system.

The repository provides [`gemini-extension.json`](https://github.com/ayghri/i-have-adhd/blob/main/gemini-extension.json) at the root level, which contains metadata including the command name, version, and paths to contextual documentation. When you run `gemini extensions install https://github.com/ayghri/i-have-adhd`, the CLI fetches this manifest and automatically pulls the associated [`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md) file and the core rules from [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md).

After installation, the command appears in `gemini extensions list` and executes via the same `/i-have-adhd` invocation, but routes through the extension management system rather than direct file loading.

## Key Differences: Custom Command vs Extension

Understanding the technical distinctions helps you choose the appropriate deployment method for your environment.

**Location and Priority**
- **Custom commands** reside in `~/.gemini/commands` and load before extensions, giving them precedence if naming conflicts occur.
- **Extensions** install into the CLI's extension registry and load after custom commands, making them secondary in the priority chain.

**Installation Workflow**
- **Custom command**: Manual file placement. You copy [`skills/i-have-adhd/agents/gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/gemini.toml) to `~/.gemini/commands/i-have-adhd.toml` using `cp`, `curl`, or a setup script.
- **Extension**: Repository-based installation. Run `gemini extensions install <repo-url>` to fetch the manifest and dependencies automatically.

**Portability and Sharing**
- **Custom command** works offline after the initial file transfer but requires manual synchronization across multiple machines.
- **Extension** enables version-controlled distribution. The manifest in [`gemini-extension.json`](https://github.com/ayghri/i-have-adhd/blob/main/gemini-extension.json) ensures consistent behavior across different installations when you run the install command on new systems.

**Discoverability**
- **Custom commands** remain invisible to CLI inventory commands; you must inspect `~/.gemini/commands` directly to see what is installed.
- **Extensions** appear in `gemini extensions list`, providing a centralized view of installed functionality.

## Installation Examples

Both methods ultimately feed the same prompt rules from [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) to Gemini CLI, producing identical output formatting.

### Install as a Custom Command

```bash

# Create the commands directory if it doesn't exist

mkdir -p ~/.gemini/commands

# Download the command definition from the repository

curl -fsSL https://raw.githubusercontent.com/ayghri/i-have-adhd/main/skills/i-have-adhd/agents/gemini.toml \
  -o ~/.gemini/commands/i-have-adhd.toml

# Start a new Gemini CLI session or reload your shell

# Then activate the mode

/i-have-adhd

```

### Install as an Extension

```bash

# Install directly from the GitHub repository

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

# Verify the installation

gemini extensions list

# Activate the mode (same invocation as custom command)

/i-have-adhd

```

### Deactivating the Skill

Regardless of installation method, exit the ADHD-friendly formatting mode by typing:

```bash
stop adhd mode

```

## Core Files Reference

The repository structure supports both installation methods through specific configuration files:

- **[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)**: Contains the 10 output rules that restructure Gemini's responses for ADHD-friendly formatting, applied for the duration of the session.
- **[`skills/i-have-adhd/agents/gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/gemini.toml)**: The self-contained custom command definition used when manually installing to `~/.gemini/commands`.
- **[`gemini-extension.json`](https://github.com/ayghri/i-have-adhd/blob/main/gemini-extension.json)**: The root-level extension manifest that defines the package metadata and entry points for the extension installation route.
- **[`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md)**: Human-readable documentation packaged with the extension to describe functionality to users browsing installed extensions.
- **[`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json)**: Generic Antigravity-style plugin descriptor used by other agent systems in the repository ecosystem.

## Summary

- **Custom commands** provide offline capability and higher precedence by placing [`gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/gemini.toml) in `~/.gemini/commands`, requiring manual file management.
- **Extensions** offer easier distribution and centralized management through [`gemini-extension.json`](https://github.com/ayghri/i-have-adhd/blob/main/gemini-extension.json), accessible via `gemini extensions install`.
- Both methods use the same underlying rules from [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) and activate with `/i-have-adhd`.
- Custom commands load before extensions, giving them priority in the Gemini CLI initialization order.
- Deactivate either installation type by saying "stop adhd mode" in the chat interface.

## Frequently Asked Questions

### Can I use both installation methods simultaneously?

Yes, but the custom command takes precedence. If you install `i-have-adhd` as both a custom command and an extension, Gemini CLI loads the version from `~/.gemini/commands` first and ignores the extension version due to the loading priority sequence. To use the extension version, remove the `.toml` file from your commands directory.

### Does the extension installation require internet access every time I use the command?

No. After running `gemini extensions install https://github.com/ayghri/i-have-adhd`, the CLI caches the files locally. Subsequent invocations of `/i-have-adhd` work offline using the cached version of [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) and the extension manifest. You only need internet connectivity when updating to a new version.

### What happens if I move the custom command file after installation?

If you delete or move `~/.gemini/commands/i-have-adhd.toml` while Gemini CLI is running, the command becomes unavailable in new terminal sessions. Existing sessions may retain cached behavior until restarted. To restore functionality, replace the file or reinstall via the extension route.

### How do I update to the latest version of the i-have-adhd skill?

For **custom commands**, rerun the `curl` command to download the latest [`gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/gemini.toml) from the repository main branch, overwriting your existing file. For **extensions**, run `gemini extensions update i-have-adhd` or `gemini extensions install --force` to pull the latest changes from the repository according to the [`gemini-extension.json`](https://github.com/ayghri/i-have-adhd/blob/main/gemini-extension.json) manifest.