Feature Request: Lazy-Loading for Plugins and Skills

Resolved 💬 3 comments Opened Jan 1, 2026 by leonagente Closed Jan 5, 2026

Feature Request: Lazy-Loading for Plugins and Skills

Problem

Currently, all installed plugins load their full metadata (tool schemas, agent descriptions, skill descriptions) into context at session startup. With many plugins installed, this consumes significant context tokens before any work begins.

Example from my setup:

  • MCP tools: ~14k tokens
  • Custom agents: ~6.5k tokens
  • Skills: ~20k+ tokens
  • Total overhead: ~40-50k tokens (20-25% of context)

This leaves less room for actual conversation, code, and file contents.

Proposed Solution

Implement tiered/lazy loading for plugins:

Tier 1: Names Only (Always Loaded)

Load only plugin/skill names at startup (~50 tokens each instead of 500-2000):

Available: majestic-engineer, document-skills, ralph-wiggum...

Tier 2: Descriptions (On-Demand)

When Claude detects a potential match based on name/user request, load the full description to confirm relevance.

Tier 3: Full Schema (On-Use)

Load complete tool schemas, examples, and reference docs only when the skill/tool is actually invoked.

Alternative: User-Controlled Loading

Allow users to mark plugins as "on-demand" in settings:

{
  "pluginLoading": {
    "majestic-sales@marketplace": "on-demand",
    "majestic-engineer@marketplace": "eager",
    "document-skills@marketplace": "on-demand"
  }
}
  • eager (default): Current behavior, full metadata at startup
  • on-demand: Name only at startup, full metadata when referenced

Benefits

  1. More context for actual work - 30-40k tokens freed up
  2. Faster startup - Less to process initially
  3. Scales better - Users can install many plugins without penalty
  4. User control - Power users can optimize their setup

Considerations

  • MCP server connections still need to be established upfront (but schemas could lazy-load)
  • Hooks must remain eager (event-driven)
  • Could add slight latency on first skill use (acceptable tradeoff)

Current Workaround

Manually disabling plugins in settings.json, but this is all-or-nothing and requires restart to change.

Environment

  • Claude Code CLI
  • Heavy plugin user (10+ plugins, 50+ skills)
  • Context-constrained workflows (large codebases)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗