gemini-extension
Professional-grade Gemini CLI extension including universal hooks, agent skills, modular rules, and specialized agents.
Open source Open in the app JSON README (API)
About
Professional-grade Gemini CLI extension including universal hooks, agent skills, modular rules, and specialized agents.
Details
- Kind
- Plugins
- Topic
- AI, RAG & memory
- Publisher
- patrickquijano
- Origin
- gemini
- Category
- ferramentas
- Version
- 1.0.0
- Last push
- 2026-08-01T13:13:29Z
- Repository state
- ativo
- Language
- Shell
- Added
- 2026-08-30 14:13:39
- Updated
- 2026-08-30 14:13:39
- Origin id
patrickquijano/gemini-extension
README
# Gemini Extension A professional-grade extension for Gemini CLI providing universal linting and formatting hooks. ## Universal Hooks This extension automatically formats and lints files whenever they are modified via `write_file` or `replace`. It supports a wide array of languages and frameworks by detecting installed binaries on your system. ### Supported Languages & Tools To enable support for a specific language, install the corresponding tools listed below: | Language / Framework | Extensions | Formatting Tools | Linting Tools | | :------------------- | :------------------------------------------- | :--------------------------------------- | :-------------------------------- | | **JS / TS** | `.js`, `.ts`, `.jsx`, `.tsx`, `.mjs`, `.cjs` | [Biome], [Prettier] | [Biome], [ESLint] | | **Python** | `.py`, `.pyi` | [Ruff], [Black] | [Ruff], [Flake8] | | **Go** | `.go` | `gofmt` | [golangci-lint] | | **Rust** | `.rs` | `rustfmt` | [Clippy] | | **PHP / Laravel** | `.php` | [Laravel Pint], [PHP-CS-Fixer], [PHPCBF] | [Laravel Pint], `php -l`, [PHPCS] | | **.NET** | `.cs`, `.vb`, `.fs`, `.cshtml`, `.razor` | [dotnet format], [CSharpier] | [dotnet format] | | **C / C++** | `.c`, `.cpp`, `.h`, `.hpp`, `.cc`, `.cxx` | [clang-format] | [clang-tidy] | | **Java** | `.java` | [google-java-format] | [Checkstyle] | | **Ruby** | `.rb`, `.rake` | [RuboCop] | [RuboCop] | | **Swift** | `.swift` | [SwiftFormat] | [SwiftLint] | | **Kotlin** | `.kt`, `.kts` | [ktlint] | [detekt], [ktlint] | | **Shell** | `.sh`, `.bash`, `.zsh` | [shfmt] | [ShellCheck] | | **Web** | `.html`, `.css`, `.scss`, `.yaml`, `.md` | [Prettier] | [Stylelint] (CSS) | | **Frameworks** | `.vue`, `.svelte`, `.astro` | [Biome], [Prettier] | [Biome], [ESLint] | [Biome]: https://biomejs.dev/ [Prettier]: https://prettier.io/ [ESLint]: https://eslint.org/ [Ruff]: https://docs.astral.sh/ruff/ [Black]: https://black.readthedocs.io/ [Flake8]: https://flake8.pycqa.org/ [golangci-lint]: https://golangci-lint.run/ [Clippy]: https://doc.rust-lang.org/clippy/ [Laravel Pint]: https://laravel.com/docs/pint [PHP-CS-Fixer]: https://cs.symfony.com/ [PHPCBF]: https://github.com/squizlabs/PHP_CodeSniffer [PHPCS]: https://github.com/squizlabs/PHP_CodeSniffer [dotnet format]: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-format [CSharpier]: https://csharpier.com/ [clang-format]: https://clang.llvm.org/docs/ClangFormat.html [clang-tidy]: https://clang.llvm.org/extra/clang-tidy/ [google-java-format]: https://github.com/google/google-java-format [Checkstyle]: https://checkstyle.sourceforge.io/ [RuboCop]: https://rubocop.org/ [SwiftFormat]: https://github.com/nicklockwood/SwiftFormat [SwiftLint]: https://github.com/realm/SwiftLint [ktlint]: https://pinterest.github.io/ktlint/ [detekt]: https://detekt.dev/ [shfmt]: https://github.com/mvdan/sh [ShellCheck]: https://www.shellcheck.net/ [Stylelint]: https://stylelint.io/ ### Configuration Hooks are registered in `hooks/hooks.json` and executed via POSIX-compliant scripts in `hooks/scripts/`. - **Event:** `AfterTool` (triggers after file-modifying tools). - **Timeout:** 15 seconds per hook. - **Protocol:** Standard Gemini CLI JSON protocol (stdin/stdout). ## Framework-Specific Modular Rules This extension provides robust, enterprise-grade rules for specific frameworks. These rules are **not** imported by default to keep the global context lean. To use these rules in your project, import them into your project's `GEMINI.md` using the following syntax: ### Next.js ```markdown <!-- Imported from: @patrickquijano/gemini-extension/rules/nextjs/architecture.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nextjs/code-quality.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nextjs/dependency-management.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nextjs/documentation.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nextjs/naming-conventions.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nextjs/performance.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nextjs/security.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nextjs/testing.md --> ``` ### .NET ```markdown <!-- Imported from: @patrickquijano/gemini-extension/rules/dotnet/architecture.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/dotnet/code-quality.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/dotnet/dependency-management.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/dotnet/documentation.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/dotnet/naming-conventions.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/dotnet/performance.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/dotnet/security.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/dotnet/testing.md --> ``` ### Laravel ```markdown <!-- Imported from: @patrickquijano/gemini-extension/rules/laravel/architecture.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/laravel/code-quality.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/laravel/dependency-management.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/laravel/documentation.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/laravel/error-handling.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/laravel/naming-conventions.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/laravel/performance.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/laravel/security.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/laravel/testing.md --> ``` ### Nuxt.js ```markdown <!-- Imported from: @patrickquijano/gemini-extension/rules/nuxtjs/architecture.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nuxtjs/code-quality.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nuxtjs/dependency-management.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nuxtjs/documentation.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nuxtjs/naming-conventions.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nuxtjs/performance.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nuxtjs/security.md --> <!-- Imported from: @patrickquijano/gemini-extension/rules/nuxtjs/testing.md --> ```