This repository provides tools to manage both public (CLAUDE.md) and private (CLAUDE_PRIVATE.md) configuration files for Claude Code, while ensuring private configuration files are automatically excluded from version control.
- CLAUDE.md: Project-specific instructions that can be safely committed to version control
- CLAUDE_PRIVATE.md: Private/sensitive instructions that should never be committed (API keys, personal preferences, private system details, etc.)
Run the included setup script to configure your global gitignore:
./setup-claude-private-gitignore.shThis script will:
- Check if you have a global gitignore file configured
- Create one if it doesn't exist (at
~/.gitignore_global) - Add
CLAUDE_PRIVATE.mdto the global gitignore if not already present - Configure git to use the global gitignore file
If you prefer to set this up manually:
-
Check your current global gitignore:
git config --global core.excludesfile
-
Create or edit the global gitignore file:
echo "CLAUDE_PRIVATE.md" >> ~/.gitignore_global
-
Configure git to use it:
git config --global core.excludesfile ~/.gitignore_global
- Public Instructions: Add general, non-sensitive project instructions to
CLAUDE.md - Private Instructions: Add sensitive or personal instructions to
CLAUDE_PRIVATE.md - Commit Safely: Only
CLAUDE.mdfiles will be tracked by git;CLAUDE_PRIVATE.mdfiles are automatically ignored globally
- Security: Never accidentally commit sensitive information
- Flexibility: Use private instructions across all your repositories
- Simplicity: One-time setup applies to all repositories on your system
README.md: This filesetup-claude-private-gitignore.sh: Automated setup scriptcommands/global-claude-private.md: Slash command for Claude Code to perform setup
- Git installed and configured
- Bash shell
- Claude Code CLI (for automated setup script)