📦 deps(thirdparty): update snapshots
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# Environment Variables Reference
|
||||
|
||||
Claude Code exposes environment variables for plugins to reference paths and configuration.
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Variable | Available In | Purpose |
|
||||
|----------|-------------|---------|
|
||||
| `${CLAUDE_PLUGIN_ROOT}` | plugin.json config | Plugin installation directory |
|
||||
| `$CLAUDE_PROJECT_DIR` | Hook scripts (runtime) | User's project root |
|
||||
| `$file` | PostToolUse hooks | Affected file path |
|
||||
|
||||
## The Key Distinction
|
||||
|
||||
**`${CLAUDE_PLUGIN_ROOT}`** - Where your plugin is installed
|
||||
|
||||
- Use in `plugin.json` for hooks, MCP servers, and resources
|
||||
- Resolved at config parse time
|
||||
- References files that **ship with** your plugin
|
||||
|
||||
**`$CLAUDE_PROJECT_DIR`** - Where the user is working
|
||||
|
||||
- Available to hook scripts at runtime
|
||||
- References the user's project files
|
||||
- Use when your plugin needs to **operate on** user code
|
||||
|
||||
## Common Pattern: Both Together
|
||||
|
||||
A hook that loads plugin config but operates on user files:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Load config from plugin installation
|
||||
CONFIG="${CLAUDE_PLUGIN_ROOT}/config/rules.json"
|
||||
|
||||
# Operate on user's project
|
||||
TARGET="$CLAUDE_PROJECT_DIR/src"
|
||||
|
||||
jq -r '.patterns[]' "$CONFIG" | while read pattern; do
|
||||
grep -r "$pattern" "$TARGET"
|
||||
done
|
||||
```
|
||||
|
||||
## In plugin.json
|
||||
|
||||
```json
|
||||
{
|
||||
"hooks": {
|
||||
"PreToolUse": [{
|
||||
"matcher": "Write",
|
||||
"hooks": [{
|
||||
"type": "command",
|
||||
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/validate.sh"
|
||||
}]
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The script `validate.sh` receives `$CLAUDE_PROJECT_DIR` at runtime.
|
||||
|
||||
## Variable Syntax
|
||||
|
||||
- **Config files** (plugin.json): Use `${VARIABLE}` with braces
|
||||
- **Shell scripts**: Use `$VARIABLE` (standard shell syntax)
|
||||
Reference in New Issue
Block a user