i-have-adhd as Custom Command vs Extension in Gemini CLI: Complete Installation Guide
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 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 file (found at 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 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 file and the core rules from 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/commandsand 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.tomlto~/.gemini/commands/i-have-adhd.tomlusingcp,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.jsonensures 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/commandsdirectly 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 to Gemini CLI, producing identical output formatting.
Install as a Custom Command
# 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
# 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:
stop adhd mode
Core Files Reference
The repository structure supports both installation methods through specific configuration files:
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: The self-contained custom command definition used when manually installing to~/.gemini/commands.gemini-extension.json: The root-level extension manifest that defines the package metadata and entry points for the extension installation route.GEMINI.md: Human-readable documentation packaged with the extension to describe functionality to users browsing installed extensions.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.tomlin~/.gemini/commands, requiring manual file management. - Extensions offer easier distribution and centralized management through
gemini-extension.json, accessible viagemini extensions install. - Both methods use the same underlying rules from
skills/i-have-adhd/SKILL.mdand 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 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 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 manifest.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →