feat(hooks): Hook System Documentation
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
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
/hooksslash 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.
@jkcinouye should review docs here as well prior to merging 👍
Note: The new docs will also need to be added to sidebar.json.
Note: The new docs will also need to be added to sidebar.json.
Done