A Claude Code PreToolUse hook that prevents Claude from reading files that match patterns in .claudeignore files, similar to how .gitignore works.
- Reads
.claudeignorepatterns from the current working directory - Supports standard gitignore-style patterns
- Works as a Claude Code PreToolUse hook
- Exits with code 2 when a path is ignored, preventing Claude from reading the file
- Filters out comments (lines starting with #) and empty lines
Run the init command in your project directory:
npx -y claudeignore initThis will:
- Create a
.claudeignorefile if it doesn't exist - Set up
.claude/settings.jsonwith the necessary hook configuration - If
.claude/settings.jsonalready exists, it will show you the template configuration for manual merging
- Create a
.claudeignorefile in your project root with patterns to ignore:
.env
*.secret
- Configure Claude Code to use this as a PreToolUse hook by adding to
.claude/settings.json:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Read",
"hooks": [
{
"type": "command",
"command": "npx -y claudeignore"
}
]
}
]
}
}Initializes claude-ignore configuration in your project:
- Creates
.claudeignorefile from template if it doesn't exist - Creates
.claude/settings.jsonwith hook configuration if it doesn't exist - Shows template configuration for manual merging if
.claude/settings.jsonalready exists
Checks if a file should be ignored based on .claudeignore patterns. This is used internally by Claude Code as a PreToolUse hook.
When Claude tries to read a file, this hook:
- Reads
.claudeignorepatterns from the current directory - Checks if the file path matches any ignore patterns
- If matched, exits with code 2 to block the read operation
- If not matched, allows Claude to proceed with reading the file
- Install dependencies:
npm install- Build the library:
npm run build- Watch mode for development:
npm run dev- Type checking:
npm run typecheck