Skip to content

Plugin System

SANDCODE looks for plugins in two locations:

  1. .sandcode-plugin/ — primary location
  2. .claude-plugin/ — fallback for Claude Code compatibility
my-plugin/
├── .sandcode-plugin/
│ ├── manifest.json
│ ├── hooks/
│ │ └── pre-tool.sh
│ └── tools/
│ └── my-tool.sh
{
"name": "my-plugin",
"version": "1.0.0",
"description": "My custom plugin",
"tools": ["my-tool"],
"hooks": {
"preToolUse": "hooks/pre-tool.sh"
}
}

Plugins can reference their root directory using:

  • ${SANDCODE_PLUGIN_ROOT} — recommended
  • ${CLAUDE_PLUGIN_ROOT} — backward compatible

SANDCODE includes a plugin marketplace manager (src/utils/plugins/marketplaceManager.ts) that can discover and install community plugins.

The plugin system is backward compatible with Claude Code’s plugin format. If a .sandcode-plugin/ directory is not found, SANDCODE falls back to checking .claude-plugin/.