MoonshotAI / MoonshotAI/kimi-cli
Feature Request: Claude-compatible local plugin support
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 11.4k
- Forks
- 1.3k
- Avg merge
- 9h 47m
- Merged PRs (30d)
- 2
Description
What feature would you like to see?
Add a Claude-compatible local plugin compatibility layer to Kimi Code CLI.
This is intended to address a real user need already raised in the repo, especially around whether Kimi can work with Claude-style plugins and local plugin ecosystems. Related discussion: #1566. It is also adjacent to skill/plugin discovery requests such as #1705.
Proposed v1 scope:
- Load local Claude-compatible plugins via
--plugin-dir /path/to/plugin - Auto-discover plugins from
~/.kimi/claude-plugins/ - Recognize
.claude-plugin/plugin.json - Support these plugin components on a best-effort basis:
skills/commands/agents/hooks/hooks.json.mcp.jsonsettings.json(agentkey only)
- Keep plugin hooks and MCP session-scoped only
- Keep slash-command invocation for plugin commands/skills
- Expose a concise plugin capability summary in model-visible context so goal-oriented user requests can benefit from installed plugin capabilities without relying on a broad natural-language hard router
Important non-goals for v1:
- No marketplace / install / reload-plugins workflow
- No
.lsp.json - No mutation of persistent user MCP config such as
~/.kimi/mcp.json - No claim of full Claude runtime compatibility; unsupported fields should be warned and skipped or surfaced as advisory context
Why this seems valuable:
- It would let Kimi interoperate with an existing local plugin ecosystem instead of requiring every plugin to be rewritten into Kimi's current lightweight plugin format
- It helps users who already rely on Claude-style plugin layouts (
commands,skills,hooks,.mcp.json) move workflows into Kimi more incrementally - It provides a practical compatibility path without forcing Kimi to adopt Claude-specific product workflows like marketplace/install upfront
I already have a working implementation in my fork and can open a draft PR if this aligns with the roadmap. The implementation currently covers:
- local plugin loading and auto-discovery
- namespaced plugin skill/command registration
- plugin hooks and MCP loading as session-scoped runtime extras
- plugin default agent handling from
settings.json - model-visible capability summary for installed plugin skills/commands
- tests for discovery / commands / agents / hooks / MCP / router / capability summary / slash-command integration
Latest local verification from the forked branch:
pytest: 99 passedruff: cleanpyright: clean
If this direction is acceptable, I can open a draft PR from my fork next.
Additional information
Fork branch with implementation:
GTC2080/kimi-cli:GTC/claude-plugin-compat
Behavior notes from the current implementation:
- explicit slash commands remain the deterministic path
- broad natural-language hard routing was intentionally removed in favor of a narrower bare-invocation fallback plus model-visible capability summaries
- plugin agents are supported as selected default agents, but are not advertised as autonomous model-executable actions in the capability summary
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the proposed behavior and the existing implementation in the GTC2080/kimi-cli:GTC/claude-plugin-compat fork, since the issue names no repository files or entry points. Run the reported pytest suite and verify the v1 boundaries, including session-scoped hooks and MCP, supported plugin components, and the listed non-goals.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100