gemini-cli icon indicating copy to clipboard operation
gemini-cli copied to clipboard

feat(hooks): Hook System Documentation

Open Edilmo opened this issue 4 weeks ago • 4 comments

TLDR

Creates comprehensive documentation for hook development, plugin creation, and migration from Claude Code, with practical examples and tutorials.

Dive Deeper

This documentation is essential for hook ecosystem adoption. It should include: 1) Hook development guide with examples for each event type, 2) Plugin development tutorial showing how to create npm-based hook plugins with dependency injection, 3) Migration guide from Claude Code with step-by-step instructions and common patterns, 4) Best practices for hook security and performance, 5) Troubleshooting guide for common hook issues. The documentation also includes an example that serves as both comprehensive documentation and a template for advanced hook users.

Reviewer Test Plan

  • Verify documentation covers all hook events and types
  • Test example configurations work correctly
  • Validate plugin development tutorial produces working plugins
  • Test migration guide with real Claude Code configurations
  • Ensure documentation is clear and comprehensive for developers
  • Validate comprehensive showcase example (see Appendix A) works end-to-end
  • Follow the steps of the advance example and validate is working.

Testing Matrix

🍏 🪟 🐧
npm run x
npx x
Docker
Podman - -
Seatbelt x - -

Linked issues / bugs

Closes #9140

Edilmo avatar Dec 01 '25 17:12 Edilmo

Summary of Changes

Hello @Edilmo, I'm Gemini Code Assist[^1]! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the Gemini CLI by integrating a robust and extensible hook system. This allows users to intercept and modify the agent's workflow at critical junctures, enabling advanced customizations like dynamic context injection, security validations, and cross-session memory. The changes are accompanied by thorough documentation and a migration path for users transitioning from Claude Code.

Highlights

  • Comprehensive Hook System: Introduced a new hook system allowing customization of agent behavior at various lifecycle points, including SessionStart, SessionEnd, PreCompress, BeforeModel, AfterModel, BeforeToolSelection, and Notification events.
  • Extensive Documentation: Added detailed guides on hook development, best practices for security and performance, and a comprehensive example of a 'Smart Development Workflow Assistant' integrating all hook events.
  • Claude Code Migration Utility: Provided a migration tool to convert existing Claude Code hooks to the Gemini CLI format, including event and tool name mapping.
  • CLI Management for Hooks: Implemented /hooks slash commands (panel, enable, disable) to manage and view configured hooks directly within the Gemini CLI UI.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with :thumbsup: and :thumbsdown: on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

[^1]: Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

gemini-code-assist[bot] avatar Dec 01 '25 17:12 gemini-code-assist[bot]

@jkcinouye should review docs here as well prior to merging 👍

jackwotherspoon avatar Dec 01 '25 18:12 jackwotherspoon

Note: The new docs will also need to be added to sidebar.json.

jkcinouye avatar Dec 01 '25 20:12 jkcinouye

Note: The new docs will also need to be added to sidebar.json.

Done

Edilmo avatar Dec 02 '25 01:12 Edilmo