Skip to content

feat(plugin): Add official Claude Code plugins for Repomix#893

Merged
yamadashy merged 7 commits intomainfrom
feat/repomix-plugin
Oct 13, 2025
Merged

feat(plugin): Add official Claude Code plugins for Repomix#893
yamadashy merged 7 commits intomainfrom
feat/repomix-plugin

Conversation

@yamadashy
Copy link
Copy Markdown
Owner

Add official Repomix plugins for Claude Code that enable seamless AI-powered codebase analysis through MCP server integration and convenient slash commands.

Summary

This PR introduces two complementary plugins for Claude Code:

1. repomix-mcp (MCP Server Plugin)

Foundation plugin that integrates Repomix's MCP server with Claude Code, providing 7 powerful tools:

  • pack_codebase: Package local codebases with AI-optimized format
  • pack_remote_repository: Analyze GitHub repositories directly
  • grep_repomix_output: Search packed files with regex
  • read_repomix_output: Read packed output with partial reading support
  • attach_packed_output: Reuse existing packed files
  • file_system_read_file: Read files with Secretlint security scanning
  • file_system_read_directory: List directory contents

2. repomix-commands (Slash Commands Plugin)

Provides natural language-oriented commands for quick operations:

  • /pack-local: Pack local codebases with flexible natural language requests
  • /pack-remote: Pack and analyze remote GitHub repositories

Key Features

  • Natural Language Interface: Commands interpret user intent rather than requiring rigid syntax
  • Security-First: Built-in Secretlint scanning for sensitive information
  • Tree-sitter Compression: ~70% token reduction for large codebases
  • Always Latest: Uses npx repomix@latest to ensure latest version
  • Comprehensive Documentation: Includes help references and usage examples

Plugin Structure

.claude-plugin/
└── marketplace.json              # Plugin marketplace definition

.claude/plugins/
├── repomix-mcp/
│   ├── .claude-plugin/
│   │   └── plugin.json          # MCP plugin metadata
│   └── .mcp.json                # MCP server configuration
└── repomix-commands/
    ├── .claude-plugin/
    │   └── plugin.json          # Commands plugin metadata
    └── commands/
        ├── pack-local.md        # Local pack command
        └── pack-remote.md       # Remote pack command

Usage Examples

Via MCP Tools (Automatic)

User: "Analyze this codebase"
Claude: [Automatically uses pack_codebase tool]

User: "Pack the yamadashy/repomix repository"
Claude: [Automatically uses pack_remote_repository tool]

Via Slash Commands

User: /pack-local
User: "Pack this project as markdown with compression"

User: /pack-remote yamadashy/repomix
User: "Pack only TypeScript files from the react repository"

Benefits

  • 🎯 Seamless Integration: Claude can directly analyze codebases without manual preparation
  • 🚀 Efficient Workflow: Eliminates need to manually generate and upload files
  • 🔒 Security Built-in: Automatic Secretlint scanning prevents sensitive data exposure
  • 📊 Token Optimization: Tree-sitter compression for large codebases
  • 💬 Natural Language: Flexible, conversational command interface

Testing

The plugins have been tested with:

  • Local codebase packing with various options
  • Remote repository analysis (GitHub)
  • Natural language command interpretation
  • Help documentation access

Related

  • MCP Server Documentation: Already exists in website/client/src/en/guide/mcp-server.md
  • Repomix CLI: All existing functionality preserved

Checklist

  • Plugin structure follows Claude Code conventions
  • Natural language command interpretation documented
  • Security considerations (Secretlint integration)
  • Help and documentation sections included
  • Uses npx repomix@latest for latest version
  • Run npm run test
  • Run npm run lint

Copilot AI review requested due to automatic review settings October 13, 2025 14:35
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces official Claude Code plugins for Repomix, enabling seamless AI-powered codebase analysis through MCP server integration and natural language slash commands.

  • Adds MCP server plugin for direct tool integration with 7 powerful analysis capabilities
  • Provides slash commands plugin for quick, conversational codebase operations
  • Implements security-first approach with built-in Secretlint scanning and token optimization

Reviewed Changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.claude-plugin/marketplace.json Defines the plugin marketplace structure with two complementary plugins
.claude/plugins/repomix-mcp/.mcp.json Configures MCP server to run repomix with latest version via npx
.claude/plugins/repomix-mcp/.claude-plugin/plugin.json Metadata for the foundation MCP integration plugin
.claude/plugins/repomix-commands/.claude-plugin/plugin.json Metadata for the slash commands plugin with MCP dependency
.claude/plugins/repomix-commands/commands/pack-local.md Documentation for local codebase packing command
.claude/plugins/repomix-commands/commands/pack-remote.md Documentation for remote repository analysis command

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @yamadashy, I'm Gemini Code Assist1! 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 integrates Repomix's advanced AI-powered codebase analysis capabilities directly into Claude Code. By introducing two new plugins, it enables users to seamlessly analyze both local and remote repositories, search through outputs, and read files using natural language commands. This integration aims to significantly streamline development workflows, enhance security through automated scanning, and optimize token usage for large codebases, providing a more efficient and intuitive experience for developers.

Highlights

  • New Claude Code Plugins: Introduced two official Repomix plugins for Claude Code: repomix-mcp for core codebase analysis tools and repomix-commands for natural language slash commands.
  • Repomix MCP Server Integration: The repomix-mcp plugin provides 7 powerful tools for AI-powered codebase analysis, including packing local/remote repositories, searching packed files, and reading file system contents with security scanning.
  • Natural Language Slash Commands: The repomix-commands plugin adds user-friendly slash commands like /pack-local and /pack-remote, enabling intuitive interaction for packing local and remote codebases.
  • Enhanced Security and Efficiency: Key features include built-in Secretlint scanning for sensitive information, Tree-sitter compression for ~70% token reduction, and the use of npx repomix@latest to ensure up-to-date functionality.
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 👍 and 👎 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.

Footnotes

  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.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Oct 13, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Adds a marketplace manifest listing two plugins. Introduces the repomix-commands plugin (manifest plus docs for packing local and remote repos). Adds the repomix-mcp plugin (manifest plus MCP config invoking npx repomix --mcp). Updates .gitignore to ignore only root-level .mcp.json. The commands plugin declares a dependency on the MCP plugin.

Changes

Cohort / File(s) Summary of Changes
Marketplace manifest
.claude-plugin/marketplace.json
New marketplace descriptor defining two plugins: repomix-mcp and repomix-commands, with metadata and a requires link from commands to mcp.
Repomix Commands plugin
.claude/plugins/repomix-commands/.claude-plugin/plugin.json, .claude/plugins/repomix-commands/commands/pack-local.md, .claude/plugins/repomix-commands/commands/pack-remote.md
Adds plugin manifest for repomix-commands and two docs detailing how to pack local and remote repositories using Repomix CLI options and examples.
Repomix MCP plugin
.claude/plugins/repomix-mcp/.claude-plugin/plugin.json, .claude/plugins/repomix-mcp/.mcp.json
Adds plugin manifest for repomix-mcp and MCP server config to run npx -y repomix --mcp.
Git ignore update
.gitignore
Narrows ignore pattern from .mcp.json to /.mcp.json (root-only).

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant Claude as Claude Code
  participant Commands as repomix-commands Plugin
  participant MCP as repomix-mcp (MCP Server)
  participant CLI as repomix CLI

  User->>Claude: Slash command (e.g., /pack-remote ...)
  Claude->>Commands: Parse intent and options
  Note right of Commands: Generates CLI invocation\n(e.g., npx repomix@latest --remote ...)

  alt Requires MCP integration
    Commands->>MCP: Ensure dependency (requires repomix-mcp)
  end

  Claude->>MCP: Start MCP server session
  MCP->>CLI: npx -y repomix --mcp
  CLI-->>MCP: Capabilities/Responses
  MCP-->>Claude: Results (pack output / status)
  Claude-->>User: Output or next steps
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The title clearly and concisely summarizes the primary change of adding official Claude Code plugins for Repomix, directly reflecting the main functionality introduced in the pull request.
Description Check ✅ Passed The description adheres to the repository template by providing a clear summary of the changes and including a “## Checklist” section with the required test and lint items, while also offering detailed context, usage examples, and related information.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces two new Claude Code plugins for Repomix, repomix-mcp and repomix-commands, which is a great feature for integrating Repomix with AI workflows. The changes are well-structured and include comprehensive documentation for the new slash commands and MCP tools. The plugin configurations are mostly correct. I have a few suggestions to improve consistency across the plugin metadata files and to ensure the latest version of repomix is always used, aligning with the stated goals of the PR.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages bot commented Oct 13, 2025

Deploying repomix with  Cloudflare Pages  Cloudflare Pages

Latest commit: c7e5fd3
Status: ✅  Deploy successful!
Preview URL: https://e5529d37.repomix.pages.dev
Branch Preview URL: https://feat-repomix-plugin.repomix.pages.dev

View logs

@codecov
Copy link
Copy Markdown

codecov bot commented Oct 13, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 74.66%. Comparing base (299a83b) to head (c7e5fd3).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #893   +/-   ##
=======================================
  Coverage   74.66%   74.66%           
=======================================
  Files         109      109           
  Lines        7653     7653           
  Branches     1433     1433           
=======================================
  Hits         5714     5714           
  Misses       1939     1939           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@claude
Copy link
Copy Markdown
Contributor

claude bot commented Oct 13, 2025

Pull Request Review

Thank you for this excellent addition of official Claude Code plugins for Repomix! This is a well-structured implementation that will significantly improve the developer experience. Here's my detailed feedback:

✅ Strengths

  1. Clear Plugin Architecture: The separation of concerns between repomix-mcp (foundation) and repomix-commands (convenience layer) is well-designed
  2. Natural Language Interface: The shift to intent-based command interpretation (commits 3c63de0, c4d041d) is excellent and aligns with Claude Code's conversational nature
  3. Version Pinning: Using npx repomix@latest ensures users always get the latest features
  4. Comprehensive Documentation: Command files include clear examples and guidance for Claude to interpret user intent
  5. Good Commit Structure: Commits follow Conventional Commits and have descriptive bodies explaining the "why"

📝 Suggestions & Considerations

1. Configuration & Version Management

MCP Server Version Pinning

In .claude/plugins/repomix-mcp/.mcp.json:7-8, consider whether npx -y repomix --mcp should also use @latest:

"args": [
  "-y",
  "repomix@latest",  // Consider adding @latest for consistency
  "--mcp"
]

Rationale: Commands use @latest but MCP config doesn't. This could lead to version inconsistencies if npx caches an older version.

2. .gitignore Pattern Specificity

In .gitignore:47, the change from .mcp.json to /.mcp.json is good, but consider:

# Current (in this PR)
/.mcp.json

# Consideration: Also ignore in plugin directories?
/.mcp.json
.claude/plugins/*/.mcp.json  # Or is this intentional to commit?

Question: Should the plugin's .mcp.json files be committed (as they are in this PR), or are they meant to be user-specific? The current approach commits them, which seems correct for distributed plugins.

3. Plugin Metadata Consistency

Minor inconsistency between marketplace and plugin metadata:

  • marketplace.json:19: "github" keyword only in marketplace
  • plugin.json:8: Doesn't include "github" keyword

Consider synchronizing keywords between marketplace and individual plugin definitions for consistency.

4. Documentation Enhancement Opportunities

Command Documentation

Both command files are excellent but could benefit from:

  1. Error Handling Guidance: What should Claude do if npx repomix@latest fails?

    ## Troubleshooting
    
    If the command fails:
    - Check if the directory exists (for local packs)
    - Verify GitHub repository URL format (for remote packs)
    - Ensure network connectivity (for remote operations)
  2. Output Location: Where does the output go by default?

    ## Output Location
    
    By default, Repomix creates:
    - Local: `repomix-output.xml` (or .md/.json based on style)
    - Remote: Same as local
    
    Use `--output <path>` to customize.
5. Security & Performance Considerations

Remote Repository Access

In pack-remote.md, consider adding guidance about:

  1. Repository Size: Large repositories might take significant time

    ## Performance Note
    
    For large repositories (>100MB), consider:
    - Using `--include` to filter specific directories
    - Enabling `--compress` for token optimization
    - Informing users about expected wait time
  2. Rate Limiting: GitHub API rate limits could affect remote packing

    ## GitHub Considerations
    
    Remote packing uses GitHub APIs which have rate limits.
    If you encounter rate limit errors, wait a few minutes and retry.

Secretlint Mention

The PR description mentions Secretlint scanning, but this isn't documented in the command files. Consider adding a security section to both commands:

## Security

Repomix includes built-in Secretlint scanning to prevent accidental exposure of:
- API keys and tokens
- Passwords and credentials  
- Private keys
- Other sensitive information

Files flagged by security checks will be excluded from the output.
6. Testing Considerations

Since this PR adds new files rather than modifying existing code, traditional unit tests may not apply. However, consider:

  1. Integration Testing: Manual testing checklist (already mentioned in PR description ✅)
  2. Documentation Testing: Verify all example commands actually work
  3. Schema Validation: If Claude Code has a schema for plugin.json/marketplace.json, validate against it

Suggestion: Add a simple test script or documentation for testing plugins:

# Could add to package.json scripts
"test:plugins": "node scripts/validate-plugin-schema.js"

🔍 Code Quality Assessment

Adherence to CLAUDE.md Guidelines

Following guidelines:

  • Commit messages follow Conventional Commits with proper scopes
  • Commit bodies explain the "why"
  • Clear, descriptive documentation
  • No code logic changes (only config/documentation)

JSON Structure

All JSON files are valid and well-formatted:

  • marketplace.json: Proper structure with clear metadata
  • plugin.json: Consistent across both plugins
  • .mcp.json: Valid MCP server configuration

🎯 Final Recommendation

Approval with minor suggestions: This is a solid implementation that's ready to merge. The suggestions above are mostly enhancements rather than critical issues.

Before Merging:

  1. ✅ Verify the PR checklist items:

    • Run npm run test (though no test changes needed)
    • Run npm run lint (though no code changes)
  2. Consider addressing:

    • Version consistency in MCP config (@latest)
    • Optional: Enhanced documentation for error handling and output locations

Post-Merge Recommendations:

  1. User Documentation: Consider adding a guide to the website about these plugins
  2. Example Usage Video/GIF: Visual demonstration could help adoption
  3. Feedback Loop: Monitor user feedback for common issues or confusion points

Great work on this feature! The natural language approach and thoughtful plugin architecture will make Repomix much more accessible within Claude Code. 🚀

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
.claude/plugins/repomix-commands/commands/pack-local.md (1)

68-69: Wrap the documentation link to satisfy markdownlint

markdownlint (MD034) flags bare URLs. Please wrap the docs URL in Markdown link syntax to keep the docs lint-clean.

-- Check the official documentation at https://github.com/yamadashy/repomix
+- Check the official documentation at [github.com/yamadashy/repomix](https://github.com/yamadashy/repomix)
.claude/plugins/repomix-commands/commands/pack-remote.md (1)

57-76: Format the bare URLs to appease markdownlint

markdownlint (MD034) complains about the bare GitHub URLs. Wrapping them in Markdown link syntax keeps the docs lint-friendly.

-npx repomix@latest --remote https://github.com/facebook/react
+npx repomix@latest --remote [https://github.com/facebook/react](https://github.com/facebook/react)
-- Check the official documentation at https://github.com/yamadashy/repomix
+- Check the official documentation at [github.com/yamadashy/repomix](https://github.com/yamadashy/repomix)
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 023d7f1 and c4d041d.

📒 Files selected for processing (7)
  • .claude-plugin/marketplace.json (1 hunks)
  • .claude/plugins/repomix-commands/.claude-plugin/plugin.json (1 hunks)
  • .claude/plugins/repomix-commands/commands/pack-local.md (1 hunks)
  • .claude/plugins/repomix-commands/commands/pack-remote.md (1 hunks)
  • .claude/plugins/repomix-mcp/.claude-plugin/plugin.json (1 hunks)
  • .claude/plugins/repomix-mcp/.mcp.json (1 hunks)
  • .gitignore (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
.claude/plugins/repomix-commands/commands/pack-remote.md

14-14: Bare URL used

(MD034, no-bare-urls)


76-76: Bare URL used

(MD034, no-bare-urls)

.claude/plugins/repomix-commands/commands/pack-local.md

69-69: Bare URL used

(MD034, no-bare-urls)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Build and run (windows-latest, 24.x)
  • GitHub Check: Test (windows-latest, 22.x)
  • GitHub Check: Cloudflare Pages

Add official Repomix plugin for Claude Code that enables AI-powered codebase analysis through MCP (Model Context Protocol) server integration.

Features:
- MCP server configuration for Repomix integration
- Marketplace definition for plugin distribution
- Support for 7 MCP tools: pack_codebase, pack_remote_repository, grep_repomix_output, read_repomix_output, attach_packed_output, file_system_read_file, file_system_read_directory
- Built-in security scanning with Secretlint
- Tree-sitter compression support for large codebases

Plugin structure:
- .claude-plugin/marketplace.json: Plugin marketplace definition
- .claude/plugins/repomix-mcp/.claude-plugin/plugin.json: Plugin metadata
- .claude/plugins/repomix-mcp/.mcp.json: MCP server configuration

This enables Claude Code to directly analyze codebases, pack repositories, and perform comprehensive code analysis using Repomix's powerful features.
Add slash commands plugin for quick Repomix operations, providing convenient commands to pack local and remote repositories.

Commands:
- /pack-local: Pack local codebase with various options
  - Supports directory specification, style selection, compression, filtering
  - Options: --style, --include, --ignore, --compress, --copy, --include-diffs, --include-logs

- /pack-remote: Pack and analyze remote GitHub repositories
  - Supports multiple repository URL formats (owner/repo, full URLs, branch/commit URLs)
  - Options: --style, --include, --ignore, --compress, --copy

Features:
- Simple slash command interface for common Repomix operations
- Comprehensive option support for customization
- Built-in usage examples and documentation
- Requires repomix-mcp plugin for full functionality

Plugin structure:
- .claude/plugins/repomix-commands/.claude-plugin/plugin.json: Plugin metadata
- .claude/plugins/repomix-commands/commands/pack-local.md: Local pack command
- .claude/plugins/repomix-commands/commands/pack-remote.md: Remote pack command
- Updated marketplace.json with repomix-commands entry

This enables quick codebase packaging without typing full CLI commands.
Update command documentation to use simpler 'Examples' instead of 'Example usage' for better readability.
Refactor slash commands to interpret natural language requests instead of rigid command-line style invocations. This makes the commands more Claude-friendly and flexible.

Changes:
- Remove argument-hint frontmatter (no longer needed for rigid args)
- Add 'User Intent Examples' section showing various natural language requests
- Add 'Your Responsibilities' section to guide Claude's interpretation
- Restructure documentation to focus on understanding user intent
- Update examples to show natural language → command translation
- Remove rigid 'Run: ...' instructions

Benefits:
- Users can express requests naturally in various ways
- Claude interprets intent and constructs appropriate commands
- More flexible and intuitive user experience
- Better aligned with Claude Code's conversational interface
Update commands to use 'npx repomix@latest' instead of 'npx repomix' to ensure users always run the latest version of Repomix.
Add guidance to check help with -h/--help flag and link to official documentation when encountering issues or needing more information about available options.
Address code review feedback from Gemini Code Assist and CodeRabbit:

1. Update repomix-commands description to include specific command names (/pack-local, /pack-remote)
2. Update repomix-mcp description to match marketplace.json (add 'Foundation plugin' context)
3. Add 'github' keyword to repomix-mcp plugin for better discoverability
4. Update .mcp.json to use 'repomix@latest' instead of 'repomix' to ensure latest version

These changes improve consistency across plugin definitions and ensure users always get the latest Repomix version.
@yamadashy yamadashy force-pushed the feat/repomix-plugin branch from 21acd19 to c7e5fd3 Compare October 13, 2025 14:48
@claude
Copy link
Copy Markdown
Contributor

claude bot commented Oct 13, 2025

PR Review: Claude Code Plugins for Repomix

Great work on adding official Claude Code plugin support! This is a valuable addition that will improve the developer experience. Here's my review:

✅ Strengths

  1. Well-structured plugin architecture - Clean separation between MCP server plugin and slash commands plugin
  2. Comprehensive documentation - Both command files include clear examples and natural language interpretation guidance
  3. Security consideration - Uses npx repomix@latest to ensure latest version with security fixes
  4. Smart dependency management - repomix-commands correctly declares dependency on repomix-mcp
  5. User-friendly - Natural language interface makes commands accessible to non-technical users

🔍 Code Quality & Best Practices

Details

Plugin Structure ✅

The plugin structure follows Claude Code conventions well:

  • Proper .claude-plugin/plugin.json metadata files
  • Correct marketplace.json format
  • Appropriate use of categories ("integration" for MCP, "productivity" for commands)

Documentation Quality ✅

Both command files (pack-local.md and pack-remote.md) are well-written with:

  • Clear user intent examples
  • Comprehensive option documentation
  • Practical command examples
  • Help/documentation references

Configuration ✅

The .mcp.json configuration is minimal and correct, using npx -y repomix@latest --mcp to ensure the latest version is always used.

🐛 Potential Issues

Details

1. Missing Tests ⚠️

The PR checklist shows tests haven't been run yet. While this is plugin configuration (not code), consider:

  • Adding validation tests for JSON files
  • Testing that the MCP server starts correctly with the provided configuration
  • Verifying the plugin structure is valid

2. .gitignore Pattern Change 🔍

The change from .mcp.json to /.mcp.json is correct (only ignores root-level file), but this means .claude/plugins/repomix-mcp/.mcp.json will now be tracked. This is intentional and correct for the plugin, but worth noting in case there are other .mcp.json files in subdirectories that should be ignored.

Suggestion: Consider if the pattern should be:

/.mcp.json
**/.agents/

This would keep the root exclusion while being explicit about other exclusions.

3. Missing Documentation Updates 📝

The MCP server documentation (website/client/src/en/guide/mcp-server.md) mentions Claude Code at line 69-75, but doesn't reference the new official plugins. Consider adding a section like:

### Official Claude Code Plugins

For the easiest setup in Claude Code, install the official Repomix plugins:
- **repomix-mcp**: Foundation plugin providing MCP server integration
- **repomix-commands**: Slash commands for quick operations (`/pack-local`, `/pack-remote`)

See the [plugin documentation](.claude-plugin/marketplace.json) for installation instructions.

4. README Update Missing 📄

The main README.md doesn't mention the new Claude Code plugins. Consider adding a section under the MCP Server or Quick Start section highlighting this integration.

🎯 Suggestions for Improvement

Details

1. Plugin Installation Instructions

Add a section in the README or create .claude/plugins/repomix-mcp/README.md and .claude/plugins/repomix-commands/README.md with:

  • Installation instructions
  • Usage examples
  • Troubleshooting tips

2. Version Strategy

Currently using "version": "1.0.0" in all plugin files. Consider:

  • Using semver that matches Repomix releases
  • Adding a comment about version sync strategy
  • Documenting the versioning approach

3. Error Handling Guidance

The command files could include a troubleshooting section for common issues:

  • What to do if npx fails
  • Network issues with @latest
  • Permission problems

4. Examples in Plugin Metadata

Consider adding example usage to the plugin descriptions in marketplace.json:

"description": "Slash commands for quick Repomix operations. Use /pack-local to pack current directory or /pack-remote owner/repo to analyze GitHub repos."

5. Multi-language Support

Since the website has multi-language docs (de, es, fr, hi, id), consider if plugin documentation should also be translated or at least reference the multi-language docs.

🔒 Security Considerations

Details

✅ Good Security Practices

  1. Always uses latest version - npx repomix@latest ensures security fixes are automatically picked up
  2. Leverages existing security - Relies on Repomix's built-in Secretlint scanning
  3. No hardcoded credentials - Configuration uses command-line tools only

⚠️ Considerations

  1. npx execution - Users should be aware that npx downloads and executes code. This is standard practice but worth documenting
  2. Network dependency - Requires internet access for npx repomix@latest to work. Consider mentioning offline alternatives or fallbacks

⚡ Performance Considerations

Details
  1. Cold start time - npx repomix@latest downloads package on first run. Consider mentioning this in documentation or suggesting npm install -g repomix for frequent users
  2. Always fetching latest - While good for security, this adds network overhead. For CI/CD or air-gapped environments, document how to use a pinned version

📊 Test Coverage

Details

Missing test coverage for:

  • JSON schema validation for plugin files
  • MCP server initialization with provided config
  • Plugin dependency resolution (repomix-commands requires repomix-mcp)

Recommendation:
Add integration tests that:

  1. Validate all JSON files against their schemas
  2. Test that the MCP server starts correctly
  3. Verify plugin structure follows Claude Code conventions

📋 Checklist Items

Before merging, please ensure:

  • Run npm run test - currently unchecked
  • Run npm run lint - currently unchecked
  • Update MCP server documentation to reference the new plugins
  • Update README.md to mention Claude Code integration
  • Consider adding plugin-specific README files
  • Add tests for JSON validation if feasible

💡 Overall Assessment

This is a solid addition that will significantly improve the developer experience for Claude Code users. The plugin structure is clean, documentation is thorough, and the approach is sound.

Recommendation: Approve with minor documentation updates suggested above.

The main action items before merging:

  1. ✅ Run tests and linting (as per checklist)
  2. 📝 Update documentation to reference the new plugins
  3. 🧪 Consider adding JSON validation tests

Great work! This will make Repomix much more accessible to Claude Code users. 🎉

@claude
Copy link
Copy Markdown
Contributor

claude bot commented Oct 13, 2025

Pull Request Review

This PR adds official Claude Code plugins for Repomix, enabling seamless integration with Claude Code through MCP server and slash commands. Overall, this is a well-structured and valuable addition to the project.

Strengths

  1. Clear Plugin Architecture: The separation between repomix-mcp (foundation) and repomix-commands (user-facing) is well-designed, with proper dependency declaration.

  2. Excellent Documentation: The command files (pack-local.md, pack-remote.md) are comprehensive with clear examples and user intent guidance.

  3. Version Management: Using npx repomix@latest ensures users always get the latest version without manual updates.

  4. Minimal Code Changes: Only configuration files added, with a sensible .gitignore update to allow the plugin-specific .mcp.json while excluding root-level config.

Code Quality and Best Practices

Details

All JSON files are well-formed and follow consistent formatting. The markdown command files are well-structured with clear frontmatter, comprehensive user intent examples, detailed option documentation, practical command examples, and help references.

The file organization aligns with Claude Code plugin conventions.

Potential Issues

Details
  1. Missing Tests: The PR checklist shows tests are not run yet. Run npm run test and npm run lint before merging.

  2. Version Consistency: All plugins use version 1.0.0 which seems appropriate for an initial release. Consider documenting the versioning strategy for these plugins.

  3. .gitignore Change: The change to /.mcp.json is correct - it excludes root-level .mcp.json while allowing plugin-specific ones.

Security Considerations

Details

Positive aspects:

  • Secretlint Integration referenced in documentation aligns with existing MCP server security features
  • npx with -y flag is acceptable since it installs the official repomix@latest package
  • No credential storage

Recommendations:

  • Document that users should review Repomix output before sharing, especially when using --copy flag
  • Consider adding a security note in plugin descriptions about what data is processed

Performance Considerations

Details

Using npx repomix@latest on every invocation will check for the latest version each time. This is an acceptable trade-off for this use case. Commands properly document the --compress option for large codebases. No direct performance impact since these are configuration files.

Documentation and Consistency

Details

The plugin documentation aligns well with:

  • Existing MCP server documentation at website/client/src/en/guide/mcp-server.md
  • CLI option names and behavior
  • Security features (Secretlint, Tree-sitter compression)

Consider adding a reference to the MCP server documentation page for users who want deeper understanding.

Test Coverage

Details

Tests not yet run (per checklist). Since these are pure configuration files, traditional unit tests may not be applicable. However, consider manual testing checklist and JSON schema validation.

Adherence to Project Guidelines

Details

Based on CLAUDE.md review:

Followed:

  • Commit message follows Conventional Commits format with proper scope
  • PR description includes summary and checklist
  • Clear documentation in English

Pending:

  • Tests and lint need to be run before merge

Final Recommendations

Before Merging (REQUIRED):

  1. Run npm run test and npm run lint
  2. Manually test the plugins in Claude Code

Recommended:
3. Add a brief note in .gitignore explaining the /.mcp.json change
4. Document versioning strategy for plugins

Future Enhancements:

  • Consider adding plugin installation instructions to the main README
  • Add plugin changelog or version history
  • Consider metrics/telemetry to understand plugin usage

Overall Assessment

Category Rating Notes
Code Quality 5/5 Clean, well-structured configuration files
Documentation 5/5 Comprehensive and clear
Security 4/5 Good integration with existing security features
Testing 3/5 Needs completion before merge
Architecture 5/5 Well-designed plugin separation
Overall 4/5 Excellent PR, pending test completion

Conclusion

This is a high-quality PR that adds valuable functionality to Repomix. The plugin architecture is well-designed, documentation is excellent, and the integration approach is sound.

Recommendation: Approve pending completion of tests and lint checks (as indicated in the checklist).

Great work! This will significantly improve the Repomix experience for Claude Code users.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants