My Claude Code Project's Starter Settings
My Claude Code project's starter settings and Claude Code hooks and slash commands which include the following MCP servers
Claude Code Hooks
The Claude Code hook is for STOP which uses Terminal-Notifier to show macOS desktop notifications whenever Claude Code stops and finishes it's response https://github.com/centminmod/terminal-notifier-setup.
Claude Code Slash Commands
/anthropic Commands
-
/apply-thinking-to- Expert prompt engineering specialist that applies Anthropic's extended thinking patterns to enhance prompts with advanced reasoning frameworks- Transforms prompts using progressive reasoning structure (open-ended → systematic)
- Applies sequential analytical frameworks and systematic verification with test cases
- Includes constraint optimization, bias detection, and extended thinking budget management
- Usage:
/apply-thinking-to @/path/to/prompt-file.md
-
/convert-to-todowrite-tasklist-prompt- Converts complex, context-heavy prompts into efficient TodoWrite tasklist-based methods with parallel subagent execution- Achieves 60-70% speed improvements through parallel processing
- Transforms verbose workflows into specialized task delegation
- Prevents context overflow through strategic file selection (max 5 files per task)
- Usage:
/convert-to-todowrite-tasklist-prompt @/path/to/original-slash-command.md
-
/update-memory-bank- Simple command to update CLAUDE.md and memory bank files- Usage:
/update-memory-bank
- Usage:
/ccusage Commands
/ccusage-daily- Generates comprehensive Claude Code usage cost analysis and statistics- Runs
ccusage dailycommand and parses output into structured markdown - Provides executive summary with total costs, peak usage days, and cache efficiency
- Creates detailed tables showing daily costs, token usage, and model statistics
- Includes usage insights, recommendations, and cost management analysis
- Usage:
/ccusage-daily
- Runs
/cleanup Commands
/cleanup-context- Memory bank optimization specialist for reducing token usage in documentation- Removes duplicate content and eliminates obsolete files
- Consolidates overlapping documentation while preserving essential information
- Implements archive strategies for historical documentation
- Achieves 15-25% token reduction through systematic optimization
- Usage:
/cleanup-context
/documentation Commands
/create-readme-section- Generate specific sections for README files with professional formatting- Creates well-structured sections like Installation, Usage, API Reference, Contributing, etc.
- Follows markdown best practices with proper headings, code blocks, and formatting
- Analyzes project context to provide relevant content
- Matches existing README style and tone
- Usage:
/create-readme-section "Create an installation section for my Python project"
/security Commands
-
/security-audit- Perform comprehensive security audit of the codebase- Identifies potential vulnerabilities using OWASP guidelines
- Checks authentication, input validation, data protection, and API security
- Categorizes issues by severity (Critical, High, Medium, Low)
- Provides specific remediation steps with code examples
- Usage:
/security-audit
-
/check-best-practices- Analyze code against language-specific best practices- Detects languages and frameworks to apply relevant standards
- Checks naming conventions, code organization, error handling, and performance
- Provides actionable feedback with before/after code examples
- Prioritizes impactful improvements over nitpicks
- Usage:
/check-best-practices
/architecture Commands
/explain-architecture-pattern- Identify and explain architectural patterns in the codebase- Analyzes project structure and identifies design patterns
- Explains rationale behind architectural decisions
- Provides visual representations with diagrams
- Shows concrete implementation examples
- Usage:
/explain-architecture-pattern
/promptengineering Commands
-
/convert-to-test-driven-prompt- Transform requests into Test-Driven Development style prompts- Defines explicit test cases with Given/When/Then format
- Includes success criteria and edge cases
- Structures prompts for red-green-refactor cycle
- Creates measurable, specific test scenarios
- Usage:
/convert-to-test-driven-prompt "Add user authentication feature"
-
/batch-operations-prompt- Optimize prompts for multiple file operations and parallel processing- Identifies parallelizable tasks to maximize efficiency
- Groups operations by conflict potential
- Integrates with TodoWrite for task management
- Includes validation steps between batch operations
- Usage:
/batch-operations-prompt "Update all API calls to use new auth header"
/refactor Commands
/refactor-code- Analysis-only refactoring specialist that creates comprehensive refactoring plans without modifying code- Analyzes code complexity, test coverage, and architectural patterns
- Identifies safe extraction points and refactoring opportunities
- Creates detailed step-by-step refactoring plans with risk assessment
- Generates timestamped reports in
reports/refactor/directory - Focuses on safety, incremental progress, and maintainability
- Usage:
/refactor-code
Claude Code settings
Configure Claude Code with global and project-level settings, and environment variables.
Claude Code offers a variety of settings to configure its behavior to meet your needs. You can configure Claude Code by running the /config command when using the interactive REPL.
Settings files
The settings.json file is our official mechanism for configuring Claude
Code through hierarchical settings:
- User settings are defined in
~/.claude/settings.jsonand apply to all projects. - Project settings are saved in your project directory:
.claude/settings.jsonfor settings that are checked into source control and shared with your team.claude/settings.local.jsonfor settings that are not checked in, useful for personal preferences and experimentation. Claude Code will configure git to ignore.claude/settings.local.jsonwhen it is created.
Available settings
settings.json supports a number of options:
| Key | Description | Example |
|---|---|---|
apiKeyHelper |
Custom script, to be executed in /bin/sh, to generate an auth value. This value will generally be sent as X-Api-Key, Authorization: Bearer, and Proxy-Authorization: Bearer headers for model requests |
/bin/generate_temp_api_key.sh |
cleanupPeriodDays |
How long to locally retain chat transcripts (default: 30 days) | 20 |
env |
Environment variables that will be applied to every session | {"FOO": "bar"} |
includeCoAuthoredBy |
Whether to include the co-authored-by Claude byline in git commits and pull requests (default: true) |
false |
permissions |
See table below for structure of permissions. |
Permission settings
| Keys | Description | Example |
|---|---|---|
allow |
Array of permission rules to allow tool use | [ "Bash(git diff:*)" ] |
deny |
Array of permission rules to deny tool use | [ "WebFetch", "Bash(curl:*)" ] |
additionalDirectories |
Additional working directories that Claude has access to | [ "../docs/" ] |
defaultMode |
Default permission mode when opening Claude Code | "acceptEdits" |
disableBypassPermissionsMode |
Set to "disable" to prevent bypassPermissions mode from being activated. See managed policy settings |
"disable" |
Settings precedence
Settings are applied in order of precedence:
- Enterprise policies (see IAM documentation)
- Command line arguments
- Local project settings
- Shared project settings
- User settings
Environment variables
Claude Code supports the following environment variables to control its behavior:
All environment variables can also be configured in [`settings.json`](#available-settings). This is useful as a way to automatically set environment variables for each session, or to roll out a set of environment variables for your whole team or organization.| Variable | Purpose |
|---|---|
ANTHROPIC_API_KEY |
API key sent as X-Api-Key header, typically for the Claude SDK (for interactive usage, run /login) |
ANTHROPIC_AUTH_TOKEN |
Custom value for the Authorization and Proxy-Authorization headers (the value you set here will be prefixed with Bearer ) |
ANTHROPIC_CUSTOM_HEADERS |
Custom headers you want to add to the request (in Name: Value format) |
ANTHROPIC_MODEL |
Name of custom model to use (see Model Configuration) |
ANTHROPIC_SMALL_FAST_MODEL |
Name of Haiku-class model for background tasks |
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION |
Override AWS region for the small/fast model when using Bedrock |
BASH_DEFAULT_TIMEOUT_MS |
Default timeout for long-running bash commands |
BASH_MAX_TIMEOUT_MS |
Maximum timeout the model can set for long-running bash commands |
BASH_MAX_OUTPUT_LENGTH |
Maximum number of characters in bash outputs before they are middle-truncated |
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR |
Return to the original working directory after each Bash command |
CLAUDE_CODE_API_KEY_HELPER_TTL_MS |
Interval in milliseconds at which credentials should be refreshed (when using apiKeyHelper) |
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL |
Skip auto-installation of IDE extensions (defaults to false) |
CLAUDE_CODE_MAX_OUTPUT_TOKENS |
Set the maximum number of output tokens for most requests |
CLAUDE_CODE_USE_BEDROCK |
Use Bedrock |
CLAUDE_CODE_USE_VERTEX |
Use Vertex |
CLAUDE_CODE_SKIP_BEDROCK_AUTH |
Skip AWS authentication for Bedrock (e.g. when using an LLM gateway) |
CLAUDE_CODE_SKIP_VERTEX_AUTH |
Skip Google authentication for Vertex (e.g. when using an LLM gateway) |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC |
Equivalent of setting DISABLE_AUTOUPDATER, DISABLE_BUG_COMMAND, DISABLE_ERROR_REPORTING, and DISABLE_TELEMETRY |
DISABLE_AUTOUPDATER |
Set to 1 to disable automatic updates. This takes precedence over the autoUpdates configuration setting. |
DISABLE_BUG_COMMAND |
Set to 1 to disable the /bug command |
DISABLE_COST_WARNINGS |
Set to 1 to disable cost warning messages |
DISABLE_ERROR_REPORTING |
Set to 1 to opt out of Sentry error reporting |
DISABLE_NON_ESSENTIAL_MODEL_CALLS |
Set to 1 to disable model calls for non-critical paths like flavor text |
DISABLE_TELEMETRY |
Set to 1 to opt out of Statsig telemetry (note that Statsig events do not include user data like code, file paths, or bash commands) |
HTTP_PROXY |
Specify HTTP proxy server for network connections |
HTTPS_PROXY |
Specify HTTPS proxy server for network connections |
MAX_THINKING_TOKENS |
Force a thinking for the model budget |
MCP_TIMEOUT |
Timeout in milliseconds for MCP server startup |
MCP_TOOL_TIMEOUT |
Timeout in milliseconds for MCP tool execution |
MAX_MCP_OUTPUT_TOKENS |
Maximum number of tokens allowed in MCP tool responses (default: 25000) |
VERTEX_REGION_CLAUDE_3_5_HAIKU |
Override region for Claude 3.5 Haiku when using Vertex AI |
VERTEX_REGION_CLAUDE_3_5_SONNET |
Override region for Claude 3.5 Sonnet when using Vertex AI |
VERTEX_REGION_CLAUDE_3_7_SONNET |
Override region for Claude 3.7 Sonnet when using Vertex AI |
VERTEX_REGION_CLAUDE_4_0_OPUS |
Override region for Claude 4.0 Opus when using Vertex AI |
VERTEX_REGION_CLAUDE_4_0_SONNET |
Override region for Claude 4.0 Sonnet when using Vertex AI |
Configuration options
We are in the process of migrating global configuration to settings.json.
claude config will be deprecated in place of settings.json
To manage your configurations, use the following commands:
- List settings:
claude config list - See a setting:
claude config get <key> - Change a setting:
claude config set <key> <value> - Push to a setting (for lists):
claude config add <key> <value> - Remove from a setting (for lists):
claude config remove <key> <value>
By default config changes your project configuration. To manage your global configuration, use the --global (or -g) flag.
Global configuration
To set a global configuration, use claude config set -g <key> <value>:
| Key | Description | Example |
|---|---|---|
autoUpdates |
Whether to enable automatic updates (default: true). When enabled, Claude Code automatically downloads and installs updates in the background. Updates are applied when you restart Claude Code. |
false |
preferredNotifChannel |
Where you want to receive notifications (default: iterm2) |
iterm2, iterm2_with_bell, terminal_bell, or notifications_disabled |
theme |
Color theme | dark, light, light-daltonized, or dark-daltonized |
verbose |
Whether to show full bash and command outputs (default: false) |
true |
Tools available to Claude
Claude Code has access to a set of powerful tools that help it understand and modify your codebase:
| Tool | Description | Permission Required |
|---|---|---|
| Agent | Runs a sub-agent to handle complex, multi-step tasks | No |
| Bash | Executes shell commands in your environment | Yes |
| Edit | Makes targeted edits to specific files | Yes |
| Glob | Finds files based on pattern matching | No |
| Grep | Searches for patterns in file contents | No |
| LS | Lists files and directories | No |
| MultiEdit | Performs multiple edits on a single file atomically | Yes |
| NotebookEdit | Modifies Jupyter notebook cells | Yes |
| NotebookRead | Reads and displays Jupyter notebook contents | No |
| Read | Reads the contents of files | No |
| TodoRead | Reads the current session's task list | No |
| TodoWrite | Creates and manages structured task lists | No |
| WebFetch | Fetches content from a specified URL | Yes |
| WebSearch | Performs web searches with domain filtering | Yes |
| Write | Creates or overwrites files | Yes |
Permission rules can be configured using /allowed-tools or in permission settings.
Extending tools with hooks
You can run custom commands before or after any tool executes using Claude Code hooks.
For example, you could automatically run a Python formatter after Claude modifies Python files, or prevent modifications to production configuration files by blocking Write operations to certain paths
Claude Code MCP Servers
Gemini CLI MCP Server
claude mcp add gemini-cli /pato/to/.venv/bin/python /pato/to//mcp_server.py -s user -e GEMINI_API_KEY='GEMINI_API_KEY' -e OPENROUTER_API_KEY='OPENROUTER_API_KEY'
Cloudflare MCP Documentation
claude mcp add --transport sse cf-docs https://docs.mcp.cloudflare.com/sse -s user
Context 7 MCP Server
claude mcp add --transport sse context7 https://mcp.context7.com/sse -s user
Notion MCP Server
claude mcp add-json notionApi '{"type":"stdio","command":"npx","args":["-y","@notionhq/notion-mcp-server"],"env":{"OPENAPI_MCP_HEADERS":"{\"Authorization\": \"Bearer ntn_API_KEY\", \"Notion-Version\": \"2022-06-28\"}"}}' -s user